Skip to content

fix(ci): version lock Rust and zigbuild - #298

Merged
Aryex merged 1 commit into
mainfrom
fix/ci-arm64-zigbuild-unpinned
Aug 25, 2026
Merged

fix(ci): version lock Rust and zigbuild#298
Aryex merged 1 commit into
mainfrom
fix/ci-arm64-zigbuild-unpinned

Conversation

@Aryex

@Aryex Aryex commented Aug 24, 2026

Copy link
Copy Markdown
Collaborator

Summary

Unpinned Rust hit 1.98.0, which emits -Wl,--fix-cortex-a53-843419 on aarch64. Our pinned cargo-zigbuild 0.20.1 rejects it, so the arm64 link fails. Fix: pin Rust and the zig toolchain.

Issue link

None. CI regression from Rust stable drift (rust-lang/rust#155453).

Changes

  • Pin Rust to 1.98.0 via dtolnay/rust-toolchain (ci.yml + cd.yml).
  • Pin zig 0.13.0 + cargo-zigbuild 0.23.1 via pip in install-zigbuild.
  • Add .github/actions/** to CI's pull_request paths so action changes trigger CI.

Limitations

  • Pinned versions bumped by hand (Dependabot can).
  • musl test job + local dev still on unpinned rustup; a rust-toolchain.toml would cover them.

Testing

  • CI runs the previously-failing arm64 build.
  • cd.yml is release-triggered, so this PR doesn't exercise it.

Checklist

Before submitting the PR make sure the following are checked:

  • This Pull Request is related to an issue.
  • Commit message describe your changes
  • Commits are signed off (git commit -s) per the DCO.
  • Tests are added or updated.
  • CHANGELOG.md and documentation files are updated.
  • Linters have been run (bundle exec rubocop) and pass.
  • Destination branch is correct - main.

@Aryex
Aryex force-pushed the fix/ci-arm64-zigbuild-unpinned branch 3 times, most recently from 08e2c68 to 79bfa8c Compare August 24, 2026 22:25
@Aryex Aryex changed the title fix(ci): install zig/cargo-zigbuild unpinned to survive Rust toolchain drift fix(ci): pin Rust and zig/cargo-zigbuild toolchain in one install action Aug 24, 2026
@Aryex
Aryex force-pushed the fix/ci-arm64-zigbuild-unpinned branch 2 times, most recently from 90baac2 to 9c3befd Compare August 24, 2026 23:13
@Aryex Aryex changed the title fix(ci): pin Rust and zig/cargo-zigbuild toolchain in one install action fix(ci): version lock Rust and zigbuild Aug 24, 2026
The linux-gnu native build broke on aarch64 after Rust 1.98.0 began passing -Wl,--fix-cortex-a53-843419 to the linker (rust-lang/rust#155453), which the pinned cargo-zigbuild 0.20.1 did not recognise. The real cause was an unpinned Rust (install-rust used toolchain: stable) drifting past a stale-but-pinned cross-compiler. Lock both sides: install Rust via dtolnay/rust-toolchain pinned to 1.98.0 in ci.yml and cd.yml, and install zig 0.13.0 plus cargo-zigbuild 0.23.1 (0.23.0+ filters the arg) through pip in the install-zigbuild action.

The pip install pulls ziglang in as a dependency and cargo-zigbuild finds zig via python3 -m ziglang, so no zig binary needs to be on PATH. dtolnay's targets input adds the rustup target cargo-zigbuild needs, replacing the install-zigbuild rust-target input. Also add .github/actions/** to CI's pull_request path filter so changes to composite actions trigger the workflow.

Signed-off-by: Alex Le <alex.le@improving.com>
@Aryex
Aryex force-pushed the fix/ci-arm64-zigbuild-unpinned branch from 9c3befd to d482d2c Compare August 24, 2026 23:16
@Aryex Aryex changed the title fix(ci): version lock Rust and zigbuild fix(ci): pin Rust via dtolnay and lock zig/cargo-zigbuild versions Aug 24, 2026
@Aryex Aryex changed the title fix(ci): pin Rust via dtolnay and lock zig/cargo-zigbuild versions fix(ci): version lock Rust and zigbuild Aug 24, 2026
@Aryex
Aryex marked this pull request as ready for review August 24, 2026 23:19
@Aryex
Aryex merged commit ba8f3d0 into main Aug 25, 2026
21 checks passed
@Aryex
Aryex deleted the fix/ci-arm64-zigbuild-unpinned branch August 25, 2026 15:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants