From 90d8a299c3017e71447b0f6cff23e61130733734 Mon Sep 17 00:00:00 2001 From: kingchenc Date: Sat, 23 May 2026 20:21:03 +0200 Subject: [PATCH] ci(fuzz): install cargo-fuzz from a prebuilt binary The previous `cargo install cargo-fuzz --locked` resolved against cargo-fuzz's own Cargo.lock which pins to rustix 0.36.5. That rustix version still annotates its source with internal #[rustc_*] attributes, and the current nightly compiler rejects those attributes from out-of-tree crates, so cargo-fuzz never finished compiling on CI: error: attributes starting with `rustc` are reserved for use by the `rustc` compiler --> rustix-0.36.5/src/backend/linux_raw/io/errno.rs:28 error: could not compile `rustix` (lib) due to 4 previous errors error: failed to compile `cargo-fuzz v0.13.1` Switch the install to taiki-e/install-action, the same prebuilt-binary provider we already use for cargo-llvm-cov. That skips the full transitive-dependency compile and lets the fuzz-smoke job actually run. --- .github/workflows/ci.yml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8720fa60..ab871f7d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -159,7 +159,16 @@ jobs: workspaces: fuzz - name: Install cargo-fuzz - run: cargo install cargo-fuzz --locked + # Use the prebuilt binary from taiki-e/install-action instead of + # `cargo install cargo-fuzz --locked`. The latter resolves the + # version graph from cargo-fuzz's own Cargo.lock, which pins to + # rustix 0.36.5 — a version that still uses internal `rustc_*` + # attributes the modern nightly compiler rejects, so the install + # never gets off the ground. The prebuilt binary avoids the entire + # transitive-dep compile. + uses: taiki-e/install-action@e0eafa9a0d485c37f97c0f7beb930a58a2facbac # v2.79.4 + with: + tool: cargo-fuzz - name: Fuzz csv_reader (30 s) run: cargo +nightly fuzz run csv_reader -- -max_total_time=30