From b9b57f16c04315ae77a33070d3f7fcc265451d75 Mon Sep 17 00:00:00 2001 From: Lucas Smith Date: Thu, 7 Mar 2024 05:05:35 +0000 Subject: [PATCH] fix: use matrix build --- .github/workflows/publish.yml | 10 ++++++++++ docker/buildx-and-push.sh | 8 +++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index ed5fb112e..f1bc73c36 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -7,6 +7,14 @@ on: jobs: build: runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + platform: + - linux/amd64 + - linux/arm/v6 + - linux/arm/v7 + - linux/arm64 steps: - uses: actions/checkout@v4 @@ -34,3 +42,5 @@ jobs: - name: Build and push the docker image run: ./docker/buildx-and-push.sh + env: + PLATFORM: ${{ matrix.platform }} diff --git a/docker/buildx-and-push.sh b/docker/buildx-and-push.sh index 889fe93ec..9665a8aa5 100755 --- a/docker/buildx-and-push.sh +++ b/docker/buildx-and-push.sh @@ -8,6 +8,12 @@ command -v docker >/dev/null 2>&1 || { SCRIPT_DIR="$(readlink -f "$(dirname "$0")")" MONOREPO_ROOT="$(readlink -f "$SCRIPT_DIR/../")" +# Get the platform from environment variable or set to linux/amd64 if not set +# quote the string to prevent word splitting +if [ -z "$PLATFORM" ]; then + PLATFORM="linux/amd64" +fi + APP_VERSION="$(git name-rev --tags --name-only $(git rev-parse HEAD) | head -n 1 | sed 's/\^0//')" GIT_SHA="$(git rev-parse HEAD)" @@ -17,7 +23,7 @@ echo "Git SHA: $GIT_SHA" docker buildx build \ -f "$SCRIPT_DIR/Dockerfile" \ - --platform=linux/amd64,linux/arm64 \ + --platform=$PLATFORM \ --progress=plain \ -t "documenso/documenso:latest" \ -t "documenso/documenso:$GIT_SHA" \