Release a static aarch64 Linux binary #13
Loading…
Reference in a new issue
No description provided.
Delete branch "ci/arm64"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #12
What
A release tag now publishes
sporah-<version>-aarch64-linux.tar.gznext to the x86_64 one. It is cross-compiled on the existing x86 runner with zig and cargo-zigbuild, and smoke-tested under qemu. CI builds aarch64 on every PR, so a broken cross-build shows up before tagging. The README install picks the architecture withuname -m, and its checksum step now also works with busyboxsha256sum.Blast radius
Tier: trunk (the repo has no CLAUDE.md with a blast-radius list, so everything counts as trunk)
Trunk paths touched:
.forgejo/workflows/release.yml,.forgejo/workflows/ci.yml,.forgejo/scripts/install-zig.sh(new),README.mdGate / rollback: revert this merge commit. Earlier releases only have x86_64, and nothing else depends on the aarch64 asset.
Proof
cargo test: 9 passed.file: x86_64 is "static-pie linked" and aarch64 is "statically linked". Both printsporah-cli 0.1.0and fetch live Berlin data; aarch64 ran underqemu-aarch64-static. Both tarballs andSHA256SUMSare produced./bin/ls(withfile5.44, as in the CI image).ci.ymlcross-aarch64 job steps, in a fresh rust:1-bookworm container: the build succeeds; the cargo-zigbuild install took about 12s and the build about 18s.Review
Reviewer: fresh-context review at
high, then atmediumon the fixes: 15 findings, all low. 9 fixed, 1 refuted (busybox empty-input pass; tested and it exits 1). 5 declined or accepted: a qemu crash should block the release; the arch list covers only two targets, each built with a different command; about 12s to compile cargo-zigbuild and no CI cache are acceptable; network fetches are pinned and sha256-checked.Review-Confidence: 40/100. Every changed file was opened and the review depth was right, but four findings were closed with reasoning rather than evidence, and the new crash and timeout branches were never run.
Confidence by part
Merge with Create merge commit, so the commit trailers are kept.
🤖 Generated with Claude Code
@ -0,0 +12,4 @@cargo_zigbuild_version=0.23.4rustup target add aarch64-unknown-linux-muslcurl -sSfL --retry 3 -o /tmp/zig.tar.xz \Would rather see a zig-related image in the infrastructure project created so the builds don't have to download every time.
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.