From 0d36a273bb58ffd0172efacd828e7171d954b41c Mon Sep 17 00:00:00 2001 From: Paul Nothaft Date: Wed, 7 Jan 2026 22:17:33 +0100 Subject: [PATCH] fix(ci): add QEMU setup for multi-arch builds and skip for PRs - Add docker/setup-qemu-action for proper ARM64 emulation - Skip QEMU setup for PR builds (amd64 only) - Fix QEMU "Illegal instruction" errors during npm ci --- .github/workflows/docker-build.yml | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 482f3af1..23dc13c0 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -49,14 +49,20 @@ jobs: # For main/develop/tags, build multi-arch if [[ "${{ github.event_name }}" == "pull_request" ]]; then echo "platforms=linux/amd64" >> $GITHUB_OUTPUT + echo "skip_qemu=true" >> $GITHUB_OUTPUT else echo "platforms=linux/amd64,linux/arm64" >> $GITHUB_OUTPUT + echo "skip_qemu=false" >> $GITHUB_OUTPUT fi + - name: Set up QEMU + if: steps.platforms.outputs.skip_qemu != 'true' + uses: docker/setup-qemu-action@v3 + with: + platforms: arm64 + - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - with: - platforms: ${{ steps.platforms.outputs.platforms }} - name: Log in to Container Registry if: github.event_name != 'pull_request' || github.event.inputs.push == 'true' @@ -140,14 +146,20 @@ jobs: # For main/develop/tags, build multi-arch if [[ "${{ github.event_name }}" == "pull_request" ]]; then echo "platforms=linux/amd64" >> $GITHUB_OUTPUT + echo "skip_qemu=true" >> $GITHUB_OUTPUT else echo "platforms=linux/amd64,linux/arm64" >> $GITHUB_OUTPUT + echo "skip_qemu=false" >> $GITHUB_OUTPUT fi + - name: Set up QEMU + if: steps.platforms.outputs.skip_qemu != 'true' + uses: docker/setup-qemu-action@v3 + with: + platforms: arm64 + - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - with: - platforms: ${{ steps.platforms.outputs.platforms }} - name: Log in to Container Registry if: github.event_name != 'pull_request' || github.event.inputs.push == 'true'