Repository navigation
ci: run the release build on PRs and fix its aarch64 and macOS jobs - #619
adriencaccia wants to merge 3 commits into
Conversation
[Medium impact] The PR appears safe to merge; no actionable issues were found. SummaryReplaces explicit
Reviews (1) · Last reviewed commit: "build: inline aarch64 atomics in musl C ..." · Reviewed by Greptile |
Merging this PR will not alter performance2 warnings
Comparing Footnotes
|
GuillaumeLagrange
left a comment
There was a problem hiding this comment.
lgtm, @not-matthias FYI in case we ever need to troubleshoot this
`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>
df1e3ad to
dac1f13
Compare
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>
673134d to
b2e2f52
Compare
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>
The v5.7.0 Release workflow failed on two targets that PR CI never built the release way.
aarch64-unknown-linux-muslfailed to link withundefined reference to __aarch64_ldadd4_sync(job): dist setsRUSTFLAGSfor musl targets, which makes cargo ignore the-lgccintarget.aarch64-unknown-linux-musl.rustflags, whilemusl-build's plaincargo buildkept it.aarch64-apple-darwinnever started, since GitHub no longer runs themacos-14runner dist 0.31.0 picks.PRs now run the release build itself in place of
musl-build(pr-run-mode = "upload": artifacts stay on the workflow run, only a tag push publishes). The vendored C code is compiled with-mno-outline-atomics, so the link needs nothing from libgcc; it only changes three attach-time atomics in libbpf, as the ring buffer read path uses plain acquire/release loads. The macOS build runs onmacos-latest, as CI does.cargo buildof the musl targets (musl-build)dist buildof all 3 release targets__aarch64_ldadd4_syncundefinedmacos-14not supportedmacos-latestThe CI commit alone reproduces the aarch64 failure on this PR (job). With all three commits every target builds (run), and the aarch64 binary is static and runs
codspeed --versionin Alpine arm64.Refs COD-4123