build(ci): Build linux-arm64 on GitHub's native arm64 runners - #662
Merged
Conversation
The aarch64 build was the only entry in the matrix that needed `cross`, and paying for it meant installing cargo-binstall and cross on every run, ordered carefully around the cache restore so that binstall didn't skip an install whose binary was never actually materialised. GitHub now hosts arm64 Linux runners, so the target can simply be built natively on `ubuntu-24.04-arm` with the same steps every other entry in the matrix uses. With nothing left to switch on, the `builder` matrix key goes too. Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
This pull request simplifies the CI build workflow by switching the Linux ARM64 build from cross to GitHub Actions’ native ARM64 runner (ubuntu-24.04-arm), making the ARM64 build follow the same native cargo build flow as the other matrix entries.
Changes:
- Migrated the
linux-arm64matrix entry to run natively onubuntu-24.04-armand buildaarch64-unknown-linux-gnuwithcargo. - Removed the
buildermatrix key and the conditionalcrossinstallation step (and its cache-ordering workaround comment). - Standardized the build step to always run
cargo build --release --target ....
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #662 +/- ##
=======================================
Coverage 76.83% 76.83%
=======================================
Files 31 31
Lines 2612 2612
=======================================
Hits 2007 2007
Misses 605 605 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Switches the
linux-arm64build fromcrossto GitHub's native arm64 runners (ubuntu-24.04-arm, free for public repositories).What changed
buildmatrix: the arm64 Linux entry now runs onubuntu-24.04-armand buildsaarch64-unknown-linux-gnunatively.crossinstall step, along with the comment documenting why it had to be ordered before the cache restore (binstall would otherwise see cross as installed and skip materialising the binary).cargo, thebuildermatrix key is gone.No extra setup is needed for the target: the dependency graph is pure Rust apart from aws-lc-sys, which builds against the runner's own toolchain the same way it does on the amd64 entry.
Why
The arm64 build was the only reason the workflow installed
crossat all, and keeping that install correct required careful ordering againstSwatinem/rust-cache. On a native arm64 runner the target builds with exactly the same steps as every other entry in the matrix.Verification
CI on this PR builds
linux-arm64on the native runner; the release-only steps (artifact upload, Docker packaging) are unchanged and consume the same artifact name as before.Generated by Claude Code