Skip to content

Build multi-arch image on native runners - #57

Merged
nresare merged 1 commit into
mainfrom
multiarch-image-build
Jul 16, 2026
Merged

Build multi-arch image on native runners#57
nresare merged 1 commit into
mainfrom
multiarch-image-build

Conversation

@nresare

@nresare nresare commented Jul 16, 2026

Copy link
Copy Markdown
Collaborator

Adapts the improved multi-arch container build/upload approach from the randomsecret project.

What changed

Replaces the single ubuntu-latest job that built both architectures via QEMU emulation (slow arm64) with three jobs and no emulation:

  • version — installs bktools and computes the content-hash image tag, exposing it as a job output.
  • build — a matrix that builds each arch on its own native runner (ubuntu-24.04 for amd64, ubuntu-24.04-arm for arm64), pushing each by digest with zstd compression.
  • merge — assembles the two digests into a single manifest list tagged with the content hash via docker buildx imagetools create.

Unchanged

  • Trigger: push to main + workflow_dispatch
  • Tag: bktools bktools-image-version-hash content hash
  • Registry: public.ecr.aws/q3z6g1h3/idcat
  • IAM role: idcat-ecr-publish

The Dockerfile needs no changes — each matrix runner builds natively for its own platform.

🤖 Generated with Claude Code

Replace the single QEMU-emulated build with a matrix that builds each
architecture on its own native runner (ubuntu-24.04 for amd64,
ubuntu-24.04-arm for arm64), pushes each by digest with zstd
compression, then assembles the manifest list in a merge job. This
drops slow arm64 emulation.

The bktools content hash is now computed in a dedicated version job and
consumed by the merge job when it tags the manifest list. Trigger,
registry, tag scheme and IAM role are unchanged.
@nresare
nresare merged commit 57bf3b2 into main Jul 16, 2026
2 checks passed
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