Skip to content

ci: Add native arm64 Docker builds to release workflow#1165

Open
nmarley wants to merge 1 commit into
zingolabs:devfrom
nmarley:multi-arch-docker
Open

ci: Add native arm64 Docker builds to release workflow#1165
nmarley wants to merge 1 commit into
zingolabs:devfrom
nmarley:multi-arch-docker

Conversation

@nmarley

@nmarley nmarley commented May 31, 2026

Copy link
Copy Markdown

Fixes #1164

Replace the single amd64 build job with a matrix strategy that runs native
builds on GitHub-hosted runners for each architecture (ubuntu-24.04 for amd64,
ubuntu-24.04-arm for arm64). A separate manifest job merges the per-arch images
into multi-arch tags via docker buildx imagetools create.

Both the default and no-tls image variants are built for each architecture,
producing four parallel build jobs. Cache keys are scoped per-arch and
per-variant to prevent collisions.

The Dockerfile requires no changes. All base images and build dependencies are
available for both architectures.

Tested at ghcr.io/nmarley/zaino:0.3.1-rc.1 with successful native builds
and verified multi-arch manifests for both linux/amd64 and linux/arm64.

@nachog00

nachog00 commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Sorry for the review delay, could you make this a draft, look into the conflicts and mark this review ready once that's clear?

@nachog00
nachog00 marked this pull request as draft July 1, 2026 15:07
Replace the single amd64 docker job with a matrix strategy that runs native
builds on GitHub-hosted runners for each architecture (ubuntu-24.04 for amd64,
ubuntu-24.04-arm for arm64). A separate manifest job merges the per-arch images
into multi-arch tags via docker buildx imagetools create.

Both the default and no-tls image variants are built for each architecture,
producing four parallel build jobs. Cache keys are scoped per-arch and
per-variant to prevent collisions.

Rebased onto current dev: keeps upstream's action versions and the workbench
get-rust-version probe while re-applying the multi-arch design.

The Dockerfile requires no changes. All base images and build dependencies are
available for both architectures.
@nmarley
nmarley force-pushed the multi-arch-docker branch from cfb72c2 to fa777c5 Compare July 16, 2026 04:30
@nmarley

nmarley commented Jul 16, 2026

Copy link
Copy Markdown
Author

Sorry for the delay, rebased onto current dev and ready for review. The multi-arch ARM64/AMD64 release workflow is tested and working.

@nmarley
nmarley marked this pull request as ready for review July 16, 2026 05:18
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.

Add multi-arch Docker images, particularly ARM64 alongside the default AMD64.

2 participants