Repository navigation
ci: fix the aarch64 musl and macOS release builds and run them on PRs - #623
Conversation
`pr-run-mode = "upload"` makes dist build every release artifact on pull requests and attach it to the workflow run; publishing still needs a tag push. The draft release job, the one custom job dist also runs on pull requests in this mode, skips them. This replaces `musl-build`, which built the musl targets with plain `cargo build` and so kept the `-lgcc` from `target.aarch64-unknown-linux-musl.rustflags`. dist sets `RUSTFLAGS`, which makes cargo ignore that table: the 5.7.0 aarch64 musl release failed to link while `musl-build` passed. Refs COD-4123 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The v5.7.0 release failed to link codspeed for aarch64-unknown-linux-musl: dist sets `RUSTFLAGS` for musl targets, which replaces the `-lgcc` from `target.aarch64-unknown-linux-musl.rustflags`, so libbpf's calls to gcc's outline-atomic helpers (`__aarch64_ldadd4_sync`) stayed unresolved. Compile the C code with `-mno-outline-atomics` instead, so the atomics are inlined and nothing is needed at link time, whatever `RUSTFLAGS` holds. Refs COD-4123 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
GitHub no longer runs macos-14 jobs ("The configuration
'macos-14-arm64-us-default' is not supported"), and dist 0.31.0 picks it for
aarch64-apple-darwin, so the v5.7.0 macOS build was cancelled before it
started. Use macos-latest, as CI does.
Refs COD-4123
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sync the action pins with the ones dependabot set in release.yml, otherwise regenerating downgrades them, and list the hand edits to redo after a regen. Refs COD-4123
Merging this PR will not alter performance2 warnings
Comparing Footnotes
|
[Medium impact] The PR appears safe to merge; no actionable defects were found. SummaryThis PR fixes the aarch64 musl link settings and moves macOS release builds to
|
Fixes the two release jobs that broke the 5.7.0 release, and makes every PR run the release build so the next such failure shows up before a release.
__aarch64_ldadd4_sync). The-lgccfromtarget.aarch64-unknown-linux-musl.rustflagsis dropped because dist setsRUSTFLAGS. The musl C code is now built with-mno-outline-atomics, so nothing is needed at link time. Only 3 atomics in libbpf change, all at attach time. Linking libgcc from memtrack's build script does not work: rustc places it before libbpf.macos-14, which GitHub no longer runs. The release now builds onmacos-latest, like CI. dist 0.34.0 defaults tomacos-15; the override stays so a retired image cannot break a release again.musl-buildused plaincargo build. It is replaced bypr-run-mode = "upload", which runs the dist build of every target on PRs without publishing.create-draft-releaseis skipped on PRs.release.ymland re-applied its two hand edits. Reusable workflows are now called with the$/self-repository syntax. The action pins indist-workspace.tomlwere behind the ones dependabot set inrelease.yml, so regenerating would have downgraded them; they are synced, and the config now lists the hand edits to redo after a regen.The first three commits come from #619, minus its release commit.
Refs COD-4123