ci(rust): rewrite rust-ci.yml so the workflow actually registers#89
Merged
Conversation
The previous Rust CI workflow had been failing at the workflow-parse
layer since 2026-04-04. The symptoms in the Actions API are
characteristic: `name: ".github/workflows/rust-ci.yml"` (the file
path, not the declared `name: Rust CI`), 0 jobs ever scheduled, and
"This run likely failed because of a workflow file issue" in the
runner output. Every push for ~6 weeks reported failure for this
workflow specifically without ever running any of its jobs.
Because Rust CI is not a required status check, auto-merge was happy
to land PRs without it. ~25 PRs landed in this state.
I could not reproduce the parser failure offline (`actionlint` was
not available locally). Rather than spelunk through invisible-char
hunches, rewrite from a minimal template that is known to work in
GitHub Actions today and let CI tell us if it actually registers:
- drop the verbose comment header and SPDX-only line (keep one)
- simplify `on:` to its idiomatic form
- replace SHA-pinned actions with major-version tags
(`actions/checkout@v4`, `dtolnay/rust-toolchain@stable`/`@master`,
`Swatinem/rust-cache@v2`) — easier to maintain and matches what
works elsewhere in the org
- keep the MSRV matrix (`1.85`, `stable`) from V-L3-K1
- drop the `if: hashFiles('Cargo.toml') != ''` gate — this repo
has a Cargo.toml at root unconditionally, so the gate adds zero
value and is a source of parse-time complexity
- keep the dependency `test` → `check` so test only runs when
fmt+clippy are clean
Closes the "Rust CI never ran" debt accumulated across recent PRs.
Future Rust changes will land with real verification.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
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
Rust CI on verisimiser has been failing at the workflow-parse layer since 2026-04-04. Every push reported "workflow file issue" + 0 jobs ever scheduled, and the API returned
name: ".github/workflows/rust-ci.yml"(the file path) instead of the declaredname: Rust CI— characteristic of a parse-time failure GitHub can't surface a line number for.Because Rust CI is not a required status check, auto-merge happily landed PRs without it. About 25 recent PRs landed in this state.
Couldn't pin down the specific parser issue locally (
actionlintnot available). Rewrote from a minimal known-good template:on:form[1.85, stable]from V-L3-K1if: hashFiles('Cargo.toml') != ''gate (Cargo.toml is unconditional in this repo)test→checkdependencyTest plan
cargo fmt --check,cargo clippy -D warnings,cargo testall run for1.85+stableThis is the one PR where I genuinely want to see CI go green before merging — please don't auto-merge until check + test both report success.