Skip to content

ci(release): build arm64 only for stable tags#72

Merged
Musiker15 merged 1 commit into
mainfrom
ci/release-arm64-stable-only
May 28, 2026
Merged

ci(release): build arm64 only for stable tags#72
Musiker15 merged 1 commit into
mainfrom
ci/release-arm64-stable-only

Conversation

@Musiker15
Copy link
Copy Markdown
Member

Summary

The release container build was ~13 min, dominated by the QEMU-emulated linux/arm64 cross-build. This makes arm64 conditional: pre-release tags (with a -, e.g. v0.3.0-beta) build amd64-only; stable vX.Y.Z tags keep the full signed multi-arch image.

platforms: ${{ contains(github.ref, '-') && 'linux/amd64' || 'linux/amd64,linux/arm64' }}

Rationale

  • The arm64 leg is QEMU-emulated on amd64 runners → several times slower than native; it's the bulk of the build time.
  • Beta self-hosters on arm (Raspberry Pi / ARM VPS) are vanishingly rare; the amd64 image everyone pulls today is unchanged.
  • Stable releases still get the full multi-arch, cosign-signed image with provenance + SBOM — no change to the supply-chain story for production artifacts.
  • Cuts beta releases to ~3–4 min.

Nothing else in the workflow changes (signing, attestation, SBOM, release notes all unchanged). Applies from the next tagged release; the already-published v0.3.0-beta is untouched.

Test plan

  • CI green (workflow lint)
  • Next beta tag: confirm the build runs amd64-only and finishes in ~3–4 min
  • Next stable tag: confirm multi-arch (amd64 + arm64) still builds + signs

🤖 Generated with Claude Code

The release container build took ~13 min, dominated by the
QEMU-emulated linux/arm64 cross-build. Pre-release tags (anything with
a `-`, e.g. v0.3.0-beta) now build amd64-only — beta self-hosters on
arm are vanishingly rare, so the slow emulated leg buys little there.
Stable vX.Y.Z tags keep the full signed multi-arch image.

Cuts beta releases to ~3-4 min; no change to stable releases or to the
amd64 image everyone actually pulls today.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

Signed-off-by: Moritz Kohm <moritz.kohm@gmail.com>
Signed-off-by: Musiker15 <info@musiker15.de>
@Musiker15 Musiker15 merged commit 06bf19b into main May 28, 2026
8 checks passed
@Musiker15 Musiker15 deleted the ci/release-arm64-stable-only branch May 28, 2026 16:23
@Musiker15 Musiker15 mentioned this pull request May 28, 2026
2 tasks
Musiker15 added a commit that referenced this pull request May 28, 2026
Promote the [Unreleased] block to [0.4.0-beta] (2026-05-28): live
cursors in the description editor (ADR 0011, behind the flag), the
Apache nonce-CSP fix, the 2FA dead-end fix, and the brand logo + PWA
icon set. Merge the two Added blocks, add a Changed note for the
arm64-only beta images (#72), refresh the compare links, and sync the
CLAUDE.md release markers (status + date + prod-fix notes).

Signed-off-by: Musiker15 <info@musiker15.de>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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