From c45f802e2cd6d126d5cdce7e4cc0216e826f89cf Mon Sep 17 00:00:00 2001 From: plebhash Date: Tue, 16 Jun 2026 16:17:52 -0300 Subject: [PATCH 1/3] ci: install cargo-semver-checks via cargo-binstall --- .github/workflows/semver-check.yaml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/.github/workflows/semver-check.yaml b/.github/workflows/semver-check.yaml index 8183c35e73..fdb863899c 100644 --- a/.github/workflows/semver-check.yaml +++ b/.github/workflows/semver-check.yaml @@ -43,8 +43,18 @@ jobs: - name: Install dependencies run: sudo apt-get update && sudo apt-get install -y cmake + # Install cargo-binstall so tool installs below use prebuilt binaries. + - name: Install cargo-binstall + uses: cargo-bins/cargo-binstall@v1.20.0 + with: + version: "1.20.0" + + # Install cargo-semver-checks via cargo-binstall (no source build). + # Keep quick-install disabled to only use upstream release artifacts. - name: Install cargo-semver-checks - run: cargo install cargo-semver-checks --version 0.37.0 --locked + env: + GITHUB_TOKEN: ${{ github.token }} + run: cargo binstall --no-confirm --disable-telemetry --disable-strategies quick-install --locked cargo-semver-checks@0.37.0 - name: Run semver checks for sv2/buffer-sv2 working-directory: sv2/buffer-sv2 @@ -109,4 +119,3 @@ jobs: - name: Run semver checks for stratum-core working-directory: stratum-core run: cargo semver-checks - From c7c1d96605170b8e3865de06eb66c2d2a402e0c0 Mon Sep 17 00:00:00 2001 From: plebhash Date: Tue, 16 Jun 2026 16:18:16 -0300 Subject: [PATCH 2/3] ci: install cargo-nextest via cargo-binstall --- .github/workflows/integration-tests.yaml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/.github/workflows/integration-tests.yaml b/.github/workflows/integration-tests.yaml index e6298b4bd0..db91ae3e4e 100644 --- a/.github/workflows/integration-tests.yaml +++ b/.github/workflows/integration-tests.yaml @@ -67,10 +67,19 @@ jobs: run: | brew install capnp + # Install cargo-binstall so tool installs below use prebuilt binaries. + - name: Install cargo-binstall + uses: cargo-bins/cargo-binstall@v1.20.0 + with: + version: "1.20.0" + + # Install cargo-nextest via cargo-binstall (no source build). + # Keep quick-install disabled to only use upstream release artifacts. - name: Install cargo-nextest - run: cargo install cargo-nextest --version 0.9.100 --locked + env: + GITHUB_TOKEN: ${{ github.token }} + run: cargo binstall --no-confirm --disable-telemetry --disable-strategies quick-install --locked cargo-nextest@0.9.100 - name: Run Integration Tests Script if: steps.detect.outputs.should_run_integration_test == 'true' run: ./scripts/run-integration-tests.sh - From 6a3cc9d1dfff783c5d4ef59fcdd8c42a066f9688 Mon Sep 17 00:00:00 2001 From: plebhash Date: Tue, 16 Jun 2026 16:18:27 -0300 Subject: [PATCH 3/3] ci: install cargo-fuzz via cargo-binstall --- .github/workflows/fuzz_tests.yaml | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/.github/workflows/fuzz_tests.yaml b/.github/workflows/fuzz_tests.yaml index e7c611a09f..4634a2d902 100644 --- a/.github/workflows/fuzz_tests.yaml +++ b/.github/workflows/fuzz_tests.yaml @@ -25,8 +25,18 @@ jobs: run: | rustup override set ${{ steps.toolchain.outputs.name }} + # Install cargo-binstall so tool installs below use prebuilt binaries. + - name: Install cargo-binstall + uses: cargo-bins/cargo-binstall@v1.20.0 + with: + version: "1.20.0" + + # Install cargo-fuzz via cargo-binstall (no source build). + # Keep quick-install disabled to only use upstream release artifacts. - name: Install cargo-fuzz - run: cargo install cargo-fuzz + env: + GITHUB_TOKEN: ${{ github.token }} + run: cargo binstall --no-confirm --disable-telemetry --disable-strategies quick-install --locked cargo-fuzz - name: Checkout fuzzing corpus uses: actions/checkout@v4 @@ -36,6 +46,16 @@ jobs: - name: Run fuzz regressions run: | + # cargo-fuzz binaries installed via cargo-binstall can default to a + # musl target triple; derive the runner's rustc host triple so + # sanitizer builds run against the native target instead. + HOST_TARGET="$(rustc -vV | sed -n 's/^host: //p')" + + if [ -z "$HOST_TARGET" ]; then + echo "Failed to detect rustc host target" >&2 + exit 1 + fi + for TARGET in $(cargo fuzz list); do CORPUS_DIR="fuzz/repo-corpus/corpus/$TARGET" @@ -47,6 +67,7 @@ jobs: fi echo "==> Running fuzz target: $TARGET" - cargo fuzz run "$TARGET" "$CORPUS_DIR" -- -runs=0 -max_total_time=30 + # Keep target explicit to avoid sanitizer/libc mismatches when + # cargo-fuzz's bundled default target differs from the runner. + cargo fuzz run --target "$HOST_TARGET" "$TARGET" "$CORPUS_DIR" -- -runs=0 -max_total_time=30 done -