Skip to content

Publish GHCR image as multi-arch manifest (amd64 + arm64)#11

Merged
kderholtvisma merged 4 commits intomainfrom
kitt/task-multiarch-docker-build
Apr 18, 2026
Merged

Publish GHCR image as multi-arch manifest (amd64 + arm64)#11
kderholtvisma merged 4 commits intomainfrom
kitt/task-multiarch-docker-build

Conversation

@kderholtvisma
Copy link
Copy Markdown
Contributor

Summary

  • Adds docker/setup-qemu-action + docker/setup-buildx-action to docker-publish.yml so the release workflow can cross-build for arm64 via QEMU emulation on the amd64 runner.
  • Extends the existing docker/build-push-action with platforms: linux/amd64,linux/arm64 and GHA build cache (cache-from/to: type=gha,mode=max) so consumers on Apple Silicon / AWS Graviton get native arm64 binaries instead of emulating amd64.
  • Appends a Verify multi-arch manifest step that runs docker buildx imagetools inspect and hard-fails the job if either linux/amd64 or linux/arm64 is missing from the pushed manifest — no silent regressions if a future Deno base image drops an arch.

No Dockerfile changes: denoland/deno:2.6.6 already ships a multi-arch manifest, and the Dockerfile is arch-agnostic.

SHAs for the two new actions were resolved live from gh api releases/latest and pinned with version comments per existing repo discipline (docker/setup-qemu-action@ce360397 / docker/setup-buildx-action@4d04d5d9, both v4.0.0).

Test plan

  • CI (pr-check.yml) passes: deno fmt --check, deno lint, deno check main.ts, deno test --allow-net.
  • After merge, the first run of Release and Publish on main succeeds; the new Verify multi-arch manifest step reports both linux/amd64 and linux/arm64.
  • docker buildx imagetools inspect ghcr.io/tripletex/mcp-dependency-version:latest locally shows both platforms post-release.
  • Expect a ~1-3 min build-time increase on the release workflow due to QEMU-emulated arm64 build.

Match the minimal multi-arch pattern used in sibling repo
mcp-github-action. The cache and manifest-verify step were
added defensively but aren't required for arm64 support,
and setup-qemu-action's default platforms already cover
linux/amd64 and linux/arm64 so the explicit input was a no-op.
@kderholtvisma kderholtvisma merged commit e31d812 into main Apr 18, 2026
1 check passed
@kderholtvisma kderholtvisma deleted the kitt/task-multiarch-docker-build branch April 18, 2026 21:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant