From abfda8af8b0c2c0b80459a0bd6c2d596b8d8ecc4 Mon Sep 17 00:00:00 2001 From: BinFlip Date: Fri, 4 Sep 2026 20:10:43 -0700 Subject: [PATCH] ci: install nightly before stable in the publish job `dtolnay/rust-toolchain` makes the toolchain it installs the default, so installing nightly last left every unpinned `cargo` in `scripts/check.sh` running under nightly. The v0.6.0 publish died on `cargo clippy` -- nightly has no clippy -- and `coverage` would have died next on the missing llvm-tools. Nightly goes first now, carrying only the rustfmt that `cargo +nightly fmt` asks for by name, and stable lands last as the default with the two components the action's minimal profile does not ship. CI never caught this because each gate there gets its own job and its own toolchain; the publish job is the only place they share one. --- .github/workflows/publish.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 50d32c6..37bed3c 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -35,10 +35,12 @@ jobs: # is the last point at which a broken --all-features build or a failing # docs.rs build (Cargo.toml sets all-features = true for docs.rs) can still # be caught, and it is the point at which it matters most. - - uses: dtolnay/rust-toolchain@stable - uses: dtolnay/rust-toolchain@nightly with: components: rustfmt # rustfmt.toml uses nightly-only options + - uses: dtolnay/rust-toolchain@stable + with: + components: clippy, llvm-tools-preview - uses: taiki-e/install-action@cargo-deny - uses: taiki-e/install-action@cargo-llvm-cov - run: scripts/check.sh all