fix(release): build aarch64-musl natively on arm64 runners, replace retired macos-13#155
Merged
Conversation
…etired macos-13 The aarch64-unknown-linux-musl leg cross-compiled a musl target with the glibc toolchain (CC=aarch64-linux-gnu-gcc), which aws-lc-sys cannot build with — the Build step failed on every release and no aarch64-linux asset has ever shipped. Build it natively on ubuntu-24.04-arm instead (free for public repos), using the same stock musl-tools recipe as the x86_64 leg, and drop the smoke-test skip since the binaries now run on their build runner. The x86_64-apple-darwin leg targeted macos-13, which GitHub has retired; the job queues forever and holds the release concurrency group open. Move it to macos-15-intel. Both failures also skipped the downstream npm-publish, homebrew-bump, and web-sync jobs, so v0.4.0 and v0.5.0 were never published there. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Contributor
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThe release workflow's build matrix is updated so aarch64-unknown-linux-musl and x86_64-apple-darwin builds run on native arm64 and macOS Intel runners respectively. Cross-compilation toolchain setup for musl is simplified, and the smoke test step now runs unconditionally for all targets. ChangesRelease Workflow Update
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
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.
Summary
Fixes the two release-pipeline failures that have blocked binary publishing since v0.4.0: the
aarch64-unknown-linux-muslbuild always fails, and thex86_64-apple-darwinjob queues forever because GitHub retiredmacos-13runners.Motivation & context
Release runs for v0.4.0 (#28446773996) and v0.5.0 (#28740238410) both failed the same way:
Buildstep fails. The job cross-compiled a musl target with the glibc cross toolchain (CC=aarch64-linux-gnu-gcc), whichaws-lc-sys(pulled in via rustls by the AWS SDK, libp2p-tls, and reqwest) can't build with. No aarch64-linux asset has ever shipped.macos-13was GitHub's last plain Intel image and has been retired — the job sitsqueuedindefinitely, holding the run (and therelease-mainconcurrency group) open.Because
release-binariesfails, the downstreamnpm-publish,homebrew-bump, andweb-syncjobs were skipped for both releases — nothing has been published to npm or the Homebrew tap.Kind of change
What changed
.github/workflows/release.ymlonly (no crate changes):aarch64-unknown-linux-muslnow builds onubuntu-24.04-arm(GitHub's native arm64 runners, free for public repos). The build is native, so the glibc cross-toolchain hack is deleted and the stockmusl-toolsrecipe matches the x86_64 leg exactly.--versiongate as every other target.x86_64-apple-darwinmoves from retiredmacos-13tomacos-15-intel, GitHub's supported Intel label.How a reviewer can verify
Reproduced the previously-failing target natively on arm64 with the exact workflow recipe (rustup target +
musl-tools, no cross env):Local repro ran until the machine's disk filled:
cc-rspicked upaarch64-linux-musl-gccfrom stockmusl-toolsand compiled deep into aws-lc-sys's C sources (the exact crate that broke the cross build) with no errors — the recipe is also identical to the x86_64-musl leg that already passes in CI. Runner labelsubuntu-24.04-armandmacos-15-intelare documented GitHub-hosted labels for public repos;actionlintis clean on the edited workflow. Final proof is the v0.5.1 release run this PR unlocks.Merging this lands a
fix(release)commit, so release-please will cut v0.5.1 with the repaired pipeline — that release should attach all five targets and un-skip npm/Homebrew/web-sync for the first time.Before you request review
cargo test --workspacepasses locally (N/A — workflow-only change, no Rust code touched)cargo fmt --allandcargo clippy --workspace --all-targets -- -D warningsare clean (N/A — no Rust changes)feat(...),fix(...),docs(...)).env.exampleupdated if behavior or config changed (or N/A)Notes for reviewers
release-mainconcurrency group.continue-on-errorbest-effort, unchanged.Summary by CodeRabbit