From da90591169f3870da95947defc7f935a580b3648 Mon Sep 17 00:00:00 2001 From: Blair Hamilton Date: Fri, 14 Aug 2026 14:16:52 -0400 Subject: [PATCH] ci(docker-release): register QEMU binfmt for multi-platform image builds The org is moving to true multi-arch images (linux/amd64 + linux/arm64) so dev rigs pull the native variant on any workstation OS/arch. Stevedore already passes the platforms list to one buildx invocation and its action sets up the docker-container builder; the runner just lacks binfmt handlers for the foreign arch. Must merge before any repo adds linux/arm64 to its .stevedore.yaml. Claude-Session: https://claude.ai/code/session_01RucWaqzHAh5kPo3XBEjEp1 --- .github/workflows/docker-release.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/docker-release.yml b/.github/workflows/docker-release.yml index 7947eaa..a797c37 100644 --- a/.github/workflows/docker-release.yml +++ b/.github/workflows/docker-release.yml @@ -159,6 +159,17 @@ jobs: - name: Expose GitHub runtime for buildx gha cache uses: crazy-max/ghaction-github-runtime@v3 + # Register QEMU binfmt handlers so buildx can build the non-native + # platforms the repos' .stevedore.yaml files list (linux/arm64 alongside + # linux/amd64 — dev rigs on Apple Silicon pull the arm64 variant). GitHub + # runners ship no binfmt handlers, so without this a multi-platform + # `buildx build` fails on the first foreign-arch stage. Harmless for + # callers that still build amd64-only. The stevedore action's own + # setup-buildx step creates the docker-container builder that consumes + # these handlers. + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + # Opt-in (private-modules: true): mint a short-lived, read-only token for # the org-wide pinpredict-argocd App so the build can fetch private # pinpredict modules without vendoring. contents:read across the org (the