@@ -42,7 +42,7 @@ inputs:
4242 docker-build-platforms :
4343 description : " Sets the target platforms for build"
4444 required : false
45- default : ' linux/amd64,linux/arm64 '
45+ default : ' linux/amd64'
4646 docker-build-provenance :
4747 description : " Generate provenance attestation for the build"
4848 required : false
@@ -155,11 +155,33 @@ runs:
155155 echo "tag=$TAG" >> $GITHUB_OUTPUT
156156 echo "tag_list=$TAG_LIST" >> $GITHUB_OUTPUT
157157
158- - name : Set up QEMU
159- if : inputs.docker-username != '' && inputs.docker-password != ''
160- uses : docker/setup-qemu-action@v3
161- with :
162- platforms : arm64,amd64
158+ - name : Verify Architecture Match
159+ shell : bash
160+ if : steps.preparation.outputs.build == 'true'
161+ run : |
162+ RUNNER_ARCH="${{ runner.arch }}" # X64 (AMD64) or ARM64
163+ TARGET_PLATFORMS="${{ inputs.docker-build-platforms }}"
164+
165+ echo "Runner CPU Architecture: $RUNNER_ARCH"
166+ echo "Requested Build Platforms: $TARGET_PLATFORMS"
167+
168+ # Check for AMD64 mismatch (Runner is X64, but user requests ONLY arm64, OR user requests multi-arch which requires emulation)
169+ if [[ "$RUNNER_ARCH" == "X64" ]]; then
170+ if [[ "$TARGET_PLATFORMS" == *"linux/arm64"* ]]; then
171+ echo "::error::Runner is X64 (Intel/AMD) but build includes 'linux/arm64'. This requires emulation. Aborting strictly."
172+ exit 1
173+ fi
174+ fi
175+
176+ # Check for ARM64 mismatch
177+ if [[ "$RUNNER_ARCH" == "ARM64" ]]; then
178+ if [[ "$TARGET_PLATFORMS" == *"linux/amd64"* ]]; then
179+ echo "::error::Runner is ARM64 (Apple Silicon/Graviton) but build includes 'linux/amd64'. This requires emulation. Aborting strictly."
180+ exit 1
181+ fi
182+ fi
183+
184+ echo "Architecture match verified for native build ✅"
163185
164186 - name : Set up Docker Buildx
165187 if : inputs.docker-username != '' && inputs.docker-password != ''
0 commit comments