ci(release): build and publish a linux-aarch64 sidecar #26
Reference in New Issue
Block a user
No description provided.
Delete Branch "ci/release-linux-aarch64"
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?
What & why
Step 2 of 4 in the installer's PLAN.md §5.2 (scope decision in docs#96).
The shard dials the sidecar out on loopback, so wherever ServUO runs, this binary has to run too — and Ampere/Graviton instances and Pi-class boxes are a realistic ServUO home. Until now this workflow cross-compiled x86_64 Linux and Windows only, which is why the installer refuses every arm64 host by name.
The part that isn't boilerplate
Cross-compiling this crate is not Rust-only:
sqlx'ssqlitefeature pullslibsqlite3-sys, which compiles bundled SQLite from C. So the build needs aCC/ARpair as well as a linker — the same shape the Windows step already carries for MinGW.And
libc6-dev-arm64-crossis named explicitly, becausegcc-aarch64-linux-gnuonly recommends it while this install passes--no-install-recommends. With the compiler alone the cross toolchain is present and SQLite still fails:That is the failure CI would have hit on the first arm64 release, and it is invisible until something in the dependency tree compiles C.
How it was tested
Both the failure and the fix were reproduced against this crate in a
rust:1-slim-bookwormcontainer — same base, same--no-install-recommendsdiscipline, same env vars the workflow now sets:release.ymlalso parses as YAML.The new binary is added to
SHA256SUMSand to the upload list. Both are required: the installer verifies each download against those sums, andsha256sum -cpasses silently over a file the sums list does not mention (the same asymmetry the bundle CI's gate 2 guards against from the other side).⚠ Merge order
installer#9 must land first. It teaches the bundle CI this asset name; an unrecognized
linkasset there is a hard failure by design, so a release published before it would redden the compose job and pin operators to a stale bundle until it was fixed.Checklist
AI-assisted contributions (required)
Claude Code (Opus 5). I have reviewed and understand every change, and take responsibility for it. AI-authored commits are marked with aCo-Authored-Bytrailer.License