ci: bootstrap rustup in-workflow (runner image has no Rust) #47
Loading…
Reference in a new issue
No description provided.
Delete branch "ci-rust-setup"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes the dominant CI failure surfaced when Actions was enabled: the docker runner image ships no Rust, and both raw-
rustupanddtolnay/rust-toolchainsetups assumed one was present. Every Rust job now bootstraps rustup itself (proven in the actualcatthehacker/ubuntu:act-22.04image before writing). Full root-cause in the commit body.The PR's own CI run is the verification — watch whether the six Rust jobs get past the toolchain step.
🤖 Generated with Claude Code
First real CI run after enabling Actions went 14/19 red. Root cause, run down rather than guessed: the docker-executor runners (linux, linux-arm64, windows) use `catthehacker/ubuntu:act-22.04`, which carries node/curl/git but no Rust — `docker run … which cargo rustc rustup` returns nothing. The `macos` runner is a *host* executor on the dev box where cargo exists, which is exactly why the same `cargo-class corpora` job was green on macos and red on every other arch. Both Rust-setup styles in the repo assumed a compiler was already present: - raw `rustup toolchain install …` (wai-conformance, wai-neural-e2e) - `dtolnay/rust-toolchain` (wai-byte-equality, jouleclaw-public-surface, joule-code-conformance) — which is *not* a fix here: the action itself shells out to `rustup`, so it fails identically on an image without it. wai-byte-equality already used dtolnay and failed the same way; that is what ruled the action out. Every Rust job now bootstraps rustup itself, which works on both executor kinds: on the docker image it installs via rustup-init; on the macOS host it finds the existing rustup once ~/.cargo/bin is on PATH (launchd's PATH omits it). Proven in the actual runner image before writing it — `docker run catthehacker/ubuntu:act-22.04` + rustup-init installed 1.97.1 and compiled a binary clean. Scope: this fixes the *toolchain* step for all six Rust jobs. Jobs with further environment needs (wai-neural-e2e pulls a CPU torch + onnxruntime stack) may surface their own next failure — that is the following layer, not this one. The PR's own CI run is the verification. Co-Authored-By: Claude Opus 4.8 <[email protected]>