From 5ebb44e22275ecd9972e8b3c54fc38c35e9d9d62 Mon Sep 17 00:00:00 2001 From: antondlr Date: Thu, 14 Aug 2025 02:10:13 +0200 Subject: [PATCH] Try using sccache instead of disabling (#7873) We temporarily can't build sccache on windows runners, but it's still available on linux. this smol change lets us use it when available, instead of disabling across the board. The Windows runners now have a conditional check to disable (unset the `rustc-wrapper` env var) sccache in their entrypoint, just like the Linux ones have. Also the workflows no longer fail when `sccache --show-stats` fails. --- .cargo/config.toml | 4 -- .github/workflows/book.yml | 2 +- .github/workflows/docker.yml | 2 +- .github/workflows/linkcheck.yml | 2 +- .github/workflows/local-testnet.yml | 14 +++---- .github/workflows/release.yml | 4 +- .github/workflows/test-suite.yml | 61 +++++++++++++++-------------- 7 files changed, 44 insertions(+), 45 deletions(-) diff --git a/.cargo/config.toml b/.cargo/config.toml index 00f716825e..a408305c4d 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -1,7 +1,3 @@ [env] # Set the number of arenas to 16 when using jemalloc. JEMALLOC_SYS_WITH_MALLOC_CONF = "abort_conf:true,narenas:16" - -# FIXME: sccache temporarily disabled due to Windows issues -[build] -rustc-wrapper = "" diff --git a/.github/workflows/book.yml b/.github/workflows/book.yml index e9db3b6ab1..2834d9f36a 100644 --- a/.github/workflows/book.yml +++ b/.github/workflows/book.yml @@ -13,7 +13,7 @@ jobs: build-and-upload-to-s3: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Setup mdBook uses: peaceiris/actions-mdbook@v1 diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index e768208973..415f4db0e6 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -64,7 +64,7 @@ jobs: VERSION: ${{ needs.extract-version.outputs.VERSION }} VERSION_SUFFIX: ${{ needs.extract-version.outputs.VERSION_SUFFIX }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Update Rust if: env.SELF_HOSTED_RUNNERS == 'false' run: rustup update stable diff --git a/.github/workflows/linkcheck.yml b/.github/workflows/linkcheck.yml index 7e8d9135dd..cc7775c083 100644 --- a/.github/workflows/linkcheck.yml +++ b/.github/workflows/linkcheck.yml @@ -20,7 +20,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Run mdbook server run: | diff --git a/.github/workflows/local-testnet.yml b/.github/workflows/local-testnet.yml index 5cffb4e2fd..283f60ed31 100644 --- a/.github/workflows/local-testnet.yml +++ b/.github/workflows/local-testnet.yml @@ -16,7 +16,7 @@ jobs: dockerfile-ubuntu: runs-on: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "linux", "CI", "large"]') || 'ubuntu-latest' }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Build Docker image run: | @@ -34,7 +34,7 @@ jobs: runs-on: ubuntu-22.04 needs: dockerfile-ubuntu steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Install Kurtosis run: | @@ -102,7 +102,7 @@ jobs: needs: dockerfile-ubuntu runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Install Kurtosis run: | @@ -138,7 +138,7 @@ jobs: needs: dockerfile-ubuntu runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Install Kurtosis run: | @@ -181,7 +181,7 @@ jobs: matrix: network: [sepolia, devnet] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Install Kurtosis run: | @@ -224,7 +224,7 @@ jobs: fork: [electra, fulu] offline_secs: [120, 300] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Install Kurtosis run: | @@ -268,7 +268,7 @@ jobs: 'doppelganger-protection-failure-test', ] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Check that success job is dependent on all others run: | exclude_jobs='checkpoint-sync-test|genesis-sync-test' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d1d7db32ff..7c85cdd05c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -52,7 +52,7 @@ jobs: needs: extract-version steps: - name: Checkout sources - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Get latest version of stable Rust if: env.SELF_HOSTED_RUNNERS == 'false' run: rustup update stable @@ -160,7 +160,7 @@ jobs: steps: # This is necessary for generating the changelog. It has to come before "Download Artifacts" or else it deletes the artifacts. - name: Checkout sources - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: fetch-depth: 0 diff --git a/.github/workflows/test-suite.yml b/.github/workflows/test-suite.yml index 617c5258bf..faa2745f55 100644 --- a/.github/workflows/test-suite.yml +++ b/.github/workflows/test-suite.yml @@ -28,9 +28,6 @@ env: CARGO_INCREMENTAL: 0 # Enable portable to prevent issues with caching `blst` for the wrong CPU type TEST_FEATURES: portable - # FIXME: sccache disabled - RUSTC_WRAPPER: "" - SCCACHE_CACHE_SIZE: 0 jobs: check-labels: runs-on: ubuntu-latest @@ -84,7 +81,7 @@ jobs: # Use self-hosted runners only on the sigp repo. runs-on: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "linux", "CI", "large"]') || 'ubuntu-latest' }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 # Set Java version to 21. (required since Web3Signer 24.12.0). - uses: actions/setup-java@v4 with: @@ -107,7 +104,8 @@ jobs: - name: Run tests in release run: make nextest-release - name: Show cache stats - if: env.SELF_HOSTED_RUNNERS == 'true' && false + if: env.SELF_HOSTED_RUNNERS == 'true' + continue-on-error: true run: sccache --show-stats release-tests-windows: name: release-tests-windows @@ -115,7 +113,7 @@ jobs: if: needs.check-labels.outputs.skip_ci != 'true' runs-on: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "windows", "CI"]') || 'windows-2019' }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Get latest version of stable Rust if: env.SELF_HOSTED_RUNNERS == 'false' uses: moonrepo/setup-rust@v1 @@ -138,7 +136,8 @@ jobs: - name: Run tests in release run: make nextest-release - name: Show cache stats - if: env.SELF_HOSTED_RUNNERS == 'true' && false + if: env.SELF_HOSTED_RUNNERS == 'true' + continue-on-error: true run: sccache --show-stats beacon-chain-tests: name: beacon-chain-tests @@ -149,7 +148,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Get latest version of stable Rust if: env.SELF_HOSTED_RUNNERS == 'false' uses: moonrepo/setup-rust@v1 @@ -160,7 +159,8 @@ jobs: - name: Run beacon_chain tests for all known forks run: make test-beacon-chain - name: Show cache stats - if: env.SELF_HOSTED_RUNNERS == 'true' && false + if: env.SELF_HOSTED_RUNNERS == 'true' + continue-on-error: true run: sccache --show-stats http-api-tests: name: http-api-tests @@ -171,7 +171,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Get latest version of stable Rust if: env.SELF_HOSTED_RUNNERS == 'false' uses: moonrepo/setup-rust@v1 @@ -182,7 +182,8 @@ jobs: - name: Run http_api tests for all recent forks run: make test-http-api - name: Show cache stats - if: env.SELF_HOSTED_RUNNERS == 'true' && false + if: env.SELF_HOSTED_RUNNERS == 'true' + continue-on-error: true run: sccache --show-stats op-pool-tests: name: op-pool-tests @@ -192,7 +193,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Get latest version of stable Rust uses: moonrepo/setup-rust@v1 with: @@ -209,7 +210,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Get latest version of stable Rust uses: moonrepo/setup-rust@v1 with: @@ -237,7 +238,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Get latest version of stable Rust uses: moonrepo/setup-rust@v1 with: @@ -255,7 +256,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Get latest version of stable Rust if: env.SELF_HOSTED_RUNNERS == 'false' uses: moonrepo/setup-rust@v1 @@ -270,7 +271,8 @@ jobs: - name: Run tests in debug run: make nextest-debug - name: Show cache stats - if: env.SELF_HOSTED_RUNNERS == 'true' && false + if: env.SELF_HOSTED_RUNNERS == 'true' + continue-on-error: true run: sccache --show-stats state-transition-vectors-ubuntu: name: state-transition-vectors-ubuntu @@ -278,7 +280,7 @@ jobs: if: needs.check-labels.outputs.skip_ci != 'true' runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Get latest version of stable Rust uses: moonrepo/setup-rust@v1 with: @@ -295,7 +297,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Get latest version of stable Rust if: env.SELF_HOSTED_RUNNERS == 'false' uses: moonrepo/setup-rust@v1 @@ -306,7 +308,8 @@ jobs: - name: Run consensus-spec-tests with blst and fake_crypto run: make nextest-ef - name: Show cache stats - if: env.SELF_HOSTED_RUNNERS == 'true' && false + if: env.SELF_HOSTED_RUNNERS == 'true' + continue-on-error: true run: sccache --show-stats basic-simulator-ubuntu: name: basic-simulator-ubuntu @@ -314,7 +317,7 @@ jobs: if: needs.check-labels.outputs.skip_ci != 'true' runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Get latest version of stable Rust uses: moonrepo/setup-rust@v1 with: @@ -335,7 +338,7 @@ jobs: if: needs.check-labels.outputs.skip_ci != 'true' runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Get latest version of stable Rust uses: moonrepo/setup-rust@v1 with: @@ -356,7 +359,7 @@ jobs: if: needs.check-labels.outputs.skip_ci != 'true' runs-on: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "linux", "CI", "small"]') || 'ubuntu-latest' }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Get latest version of stable Rust if: env.SELF_HOSTED_RUNNERS == 'false' uses: moonrepo/setup-rust@v1 @@ -377,7 +380,7 @@ jobs: env: CARGO_INCREMENTAL: 1 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Get latest version of stable Rust uses: moonrepo/setup-rust@v1 with: @@ -407,7 +410,7 @@ jobs: name: check-msrv runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Install Rust at Minimum Supported Rust Version (MSRV) run: | metadata=$(cargo metadata --no-deps --format-version 1) @@ -421,7 +424,7 @@ jobs: if: needs.check-labels.outputs.skip_ci != 'true' runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Get latest version of nightly Rust uses: moonrepo/setup-rust@v1 with: @@ -449,7 +452,7 @@ jobs: if: needs.check-labels.outputs.skip_ci != 'true' runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Install dependencies run: sudo apt update && sudo apt install -y git gcc g++ make cmake pkg-config llvm-dev libclang-dev clang - name: Use Rust beta @@ -462,7 +465,7 @@ jobs: if: needs.check-labels.outputs.skip_ci != 'true' runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Get latest version of stable Rust uses: moonrepo/setup-rust@v1 with: @@ -476,7 +479,7 @@ jobs: if: needs.check-labels.outputs.skip_ci != 'true' runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Get latest version of stable Rust uses: moonrepo/setup-rust@v1 with: @@ -516,6 +519,6 @@ jobs: 'cargo-sort', ] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Check that success job is dependent on all others run: ./scripts/ci/check-success-job.sh ./.github/workflows/test-suite.yml test-suite-success