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.
This commit is contained in:
antondlr
2025-08-14 02:10:13 +02:00
committed by GitHub
parent ee1b0ae2ff
commit 5ebb44e222
7 changed files with 44 additions and 45 deletions

View File

@@ -1,7 +1,3 @@
[env] [env]
# Set the number of arenas to 16 when using jemalloc. # Set the number of arenas to 16 when using jemalloc.
JEMALLOC_SYS_WITH_MALLOC_CONF = "abort_conf:true,narenas:16" JEMALLOC_SYS_WITH_MALLOC_CONF = "abort_conf:true,narenas:16"
# FIXME: sccache temporarily disabled due to Windows issues
[build]
rustc-wrapper = ""

View File

@@ -13,7 +13,7 @@ jobs:
build-and-upload-to-s3: build-and-upload-to-s3:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v5
- name: Setup mdBook - name: Setup mdBook
uses: peaceiris/actions-mdbook@v1 uses: peaceiris/actions-mdbook@v1

View File

@@ -64,7 +64,7 @@ jobs:
VERSION: ${{ needs.extract-version.outputs.VERSION }} VERSION: ${{ needs.extract-version.outputs.VERSION }}
VERSION_SUFFIX: ${{ needs.extract-version.outputs.VERSION_SUFFIX }} VERSION_SUFFIX: ${{ needs.extract-version.outputs.VERSION_SUFFIX }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v5
- name: Update Rust - name: Update Rust
if: env.SELF_HOSTED_RUNNERS == 'false' if: env.SELF_HOSTED_RUNNERS == 'false'
run: rustup update stable run: rustup update stable

View File

@@ -20,7 +20,7 @@ jobs:
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@v4 uses: actions/checkout@v5
- name: Run mdbook server - name: Run mdbook server
run: | run: |

View File

@@ -16,7 +16,7 @@ jobs:
dockerfile-ubuntu: dockerfile-ubuntu:
runs-on: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "linux", "CI", "large"]') || 'ubuntu-latest' }} runs-on: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "linux", "CI", "large"]') || 'ubuntu-latest' }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v5
- name: Build Docker image - name: Build Docker image
run: | run: |
@@ -34,7 +34,7 @@ jobs:
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
needs: dockerfile-ubuntu needs: dockerfile-ubuntu
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v5
- name: Install Kurtosis - name: Install Kurtosis
run: | run: |
@@ -102,7 +102,7 @@ jobs:
needs: dockerfile-ubuntu needs: dockerfile-ubuntu
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v5
- name: Install Kurtosis - name: Install Kurtosis
run: | run: |
@@ -138,7 +138,7 @@ jobs:
needs: dockerfile-ubuntu needs: dockerfile-ubuntu
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v5
- name: Install Kurtosis - name: Install Kurtosis
run: | run: |
@@ -181,7 +181,7 @@ jobs:
matrix: matrix:
network: [sepolia, devnet] network: [sepolia, devnet]
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v5
- name: Install Kurtosis - name: Install Kurtosis
run: | run: |
@@ -224,7 +224,7 @@ jobs:
fork: [electra, fulu] fork: [electra, fulu]
offline_secs: [120, 300] offline_secs: [120, 300]
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v5
- name: Install Kurtosis - name: Install Kurtosis
run: | run: |
@@ -268,7 +268,7 @@ jobs:
'doppelganger-protection-failure-test', 'doppelganger-protection-failure-test',
] ]
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v5
- name: Check that success job is dependent on all others - name: Check that success job is dependent on all others
run: | run: |
exclude_jobs='checkpoint-sync-test|genesis-sync-test' exclude_jobs='checkpoint-sync-test|genesis-sync-test'

View File

@@ -52,7 +52,7 @@ jobs:
needs: extract-version needs: extract-version
steps: steps:
- name: Checkout sources - name: Checkout sources
uses: actions/checkout@v4 uses: actions/checkout@v5
- name: Get latest version of stable Rust - name: Get latest version of stable Rust
if: env.SELF_HOSTED_RUNNERS == 'false' if: env.SELF_HOSTED_RUNNERS == 'false'
run: rustup update stable run: rustup update stable
@@ -160,7 +160,7 @@ jobs:
steps: steps:
# This is necessary for generating the changelog. It has to come before "Download Artifacts" or else it deletes the artifacts. # This is necessary for generating the changelog. It has to come before "Download Artifacts" or else it deletes the artifacts.
- name: Checkout sources - name: Checkout sources
uses: actions/checkout@v4 uses: actions/checkout@v5
with: with:
fetch-depth: 0 fetch-depth: 0

View File

@@ -28,9 +28,6 @@ env:
CARGO_INCREMENTAL: 0 CARGO_INCREMENTAL: 0
# Enable portable to prevent issues with caching `blst` for the wrong CPU type # Enable portable to prevent issues with caching `blst` for the wrong CPU type
TEST_FEATURES: portable TEST_FEATURES: portable
# FIXME: sccache disabled
RUSTC_WRAPPER: ""
SCCACHE_CACHE_SIZE: 0
jobs: jobs:
check-labels: check-labels:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -84,7 +81,7 @@ jobs:
# Use self-hosted runners only on the sigp repo. # Use self-hosted runners only on the sigp repo.
runs-on: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "linux", "CI", "large"]') || 'ubuntu-latest' }} runs-on: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "linux", "CI", "large"]') || 'ubuntu-latest' }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v5
# Set Java version to 21. (required since Web3Signer 24.12.0). # Set Java version to 21. (required since Web3Signer 24.12.0).
- uses: actions/setup-java@v4 - uses: actions/setup-java@v4
with: with:
@@ -107,7 +104,8 @@ jobs:
- name: Run tests in release - name: Run tests in release
run: make nextest-release run: make nextest-release
- name: Show cache stats - 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 run: sccache --show-stats
release-tests-windows: release-tests-windows:
name: release-tests-windows name: release-tests-windows
@@ -115,7 +113,7 @@ jobs:
if: needs.check-labels.outputs.skip_ci != 'true' if: needs.check-labels.outputs.skip_ci != 'true'
runs-on: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "windows", "CI"]') || 'windows-2019' }} runs-on: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "windows", "CI"]') || 'windows-2019' }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v5
- name: Get latest version of stable Rust - name: Get latest version of stable Rust
if: env.SELF_HOSTED_RUNNERS == 'false' if: env.SELF_HOSTED_RUNNERS == 'false'
uses: moonrepo/setup-rust@v1 uses: moonrepo/setup-rust@v1
@@ -138,7 +136,8 @@ jobs:
- name: Run tests in release - name: Run tests in release
run: make nextest-release run: make nextest-release
- name: Show cache stats - 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 run: sccache --show-stats
beacon-chain-tests: beacon-chain-tests:
name: beacon-chain-tests name: beacon-chain-tests
@@ -149,7 +148,7 @@ jobs:
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v5
- name: Get latest version of stable Rust - name: Get latest version of stable Rust
if: env.SELF_HOSTED_RUNNERS == 'false' if: env.SELF_HOSTED_RUNNERS == 'false'
uses: moonrepo/setup-rust@v1 uses: moonrepo/setup-rust@v1
@@ -160,7 +159,8 @@ jobs:
- name: Run beacon_chain tests for all known forks - name: Run beacon_chain tests for all known forks
run: make test-beacon-chain run: make test-beacon-chain
- name: Show cache stats - 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 run: sccache --show-stats
http-api-tests: http-api-tests:
name: http-api-tests name: http-api-tests
@@ -171,7 +171,7 @@ jobs:
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v5
- name: Get latest version of stable Rust - name: Get latest version of stable Rust
if: env.SELF_HOSTED_RUNNERS == 'false' if: env.SELF_HOSTED_RUNNERS == 'false'
uses: moonrepo/setup-rust@v1 uses: moonrepo/setup-rust@v1
@@ -182,7 +182,8 @@ jobs:
- name: Run http_api tests for all recent forks - name: Run http_api tests for all recent forks
run: make test-http-api run: make test-http-api
- name: Show cache stats - 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 run: sccache --show-stats
op-pool-tests: op-pool-tests:
name: op-pool-tests name: op-pool-tests
@@ -192,7 +193,7 @@ jobs:
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v5
- name: Get latest version of stable Rust - name: Get latest version of stable Rust
uses: moonrepo/setup-rust@v1 uses: moonrepo/setup-rust@v1
with: with:
@@ -209,7 +210,7 @@ jobs:
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v5
- name: Get latest version of stable Rust - name: Get latest version of stable Rust
uses: moonrepo/setup-rust@v1 uses: moonrepo/setup-rust@v1
with: with:
@@ -237,7 +238,7 @@ jobs:
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v5
- name: Get latest version of stable Rust - name: Get latest version of stable Rust
uses: moonrepo/setup-rust@v1 uses: moonrepo/setup-rust@v1
with: with:
@@ -255,7 +256,7 @@ jobs:
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v5
- name: Get latest version of stable Rust - name: Get latest version of stable Rust
if: env.SELF_HOSTED_RUNNERS == 'false' if: env.SELF_HOSTED_RUNNERS == 'false'
uses: moonrepo/setup-rust@v1 uses: moonrepo/setup-rust@v1
@@ -270,7 +271,8 @@ jobs:
- name: Run tests in debug - name: Run tests in debug
run: make nextest-debug run: make nextest-debug
- name: Show cache stats - 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 run: sccache --show-stats
state-transition-vectors-ubuntu: state-transition-vectors-ubuntu:
name: state-transition-vectors-ubuntu name: state-transition-vectors-ubuntu
@@ -278,7 +280,7 @@ jobs:
if: needs.check-labels.outputs.skip_ci != 'true' if: needs.check-labels.outputs.skip_ci != 'true'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v5
- name: Get latest version of stable Rust - name: Get latest version of stable Rust
uses: moonrepo/setup-rust@v1 uses: moonrepo/setup-rust@v1
with: with:
@@ -295,7 +297,7 @@ jobs:
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v5
- name: Get latest version of stable Rust - name: Get latest version of stable Rust
if: env.SELF_HOSTED_RUNNERS == 'false' if: env.SELF_HOSTED_RUNNERS == 'false'
uses: moonrepo/setup-rust@v1 uses: moonrepo/setup-rust@v1
@@ -306,7 +308,8 @@ jobs:
- name: Run consensus-spec-tests with blst and fake_crypto - name: Run consensus-spec-tests with blst and fake_crypto
run: make nextest-ef run: make nextest-ef
- name: Show cache stats - 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 run: sccache --show-stats
basic-simulator-ubuntu: basic-simulator-ubuntu:
name: basic-simulator-ubuntu name: basic-simulator-ubuntu
@@ -314,7 +317,7 @@ jobs:
if: needs.check-labels.outputs.skip_ci != 'true' if: needs.check-labels.outputs.skip_ci != 'true'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v5
- name: Get latest version of stable Rust - name: Get latest version of stable Rust
uses: moonrepo/setup-rust@v1 uses: moonrepo/setup-rust@v1
with: with:
@@ -335,7 +338,7 @@ jobs:
if: needs.check-labels.outputs.skip_ci != 'true' if: needs.check-labels.outputs.skip_ci != 'true'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v5
- name: Get latest version of stable Rust - name: Get latest version of stable Rust
uses: moonrepo/setup-rust@v1 uses: moonrepo/setup-rust@v1
with: with:
@@ -356,7 +359,7 @@ jobs:
if: needs.check-labels.outputs.skip_ci != 'true' if: needs.check-labels.outputs.skip_ci != 'true'
runs-on: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "linux", "CI", "small"]') || 'ubuntu-latest' }} runs-on: ${{ github.repository == 'sigp/lighthouse' && fromJson('["self-hosted", "linux", "CI", "small"]') || 'ubuntu-latest' }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v5
- name: Get latest version of stable Rust - name: Get latest version of stable Rust
if: env.SELF_HOSTED_RUNNERS == 'false' if: env.SELF_HOSTED_RUNNERS == 'false'
uses: moonrepo/setup-rust@v1 uses: moonrepo/setup-rust@v1
@@ -377,7 +380,7 @@ jobs:
env: env:
CARGO_INCREMENTAL: 1 CARGO_INCREMENTAL: 1
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v5
- name: Get latest version of stable Rust - name: Get latest version of stable Rust
uses: moonrepo/setup-rust@v1 uses: moonrepo/setup-rust@v1
with: with:
@@ -407,7 +410,7 @@ jobs:
name: check-msrv name: check-msrv
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v5
- name: Install Rust at Minimum Supported Rust Version (MSRV) - name: Install Rust at Minimum Supported Rust Version (MSRV)
run: | run: |
metadata=$(cargo metadata --no-deps --format-version 1) metadata=$(cargo metadata --no-deps --format-version 1)
@@ -421,7 +424,7 @@ jobs:
if: needs.check-labels.outputs.skip_ci != 'true' if: needs.check-labels.outputs.skip_ci != 'true'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v5
- name: Get latest version of nightly Rust - name: Get latest version of nightly Rust
uses: moonrepo/setup-rust@v1 uses: moonrepo/setup-rust@v1
with: with:
@@ -449,7 +452,7 @@ jobs:
if: needs.check-labels.outputs.skip_ci != 'true' if: needs.check-labels.outputs.skip_ci != 'true'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v5
- name: Install dependencies - name: Install dependencies
run: sudo apt update && sudo apt install -y git gcc g++ make cmake pkg-config llvm-dev libclang-dev clang run: sudo apt update && sudo apt install -y git gcc g++ make cmake pkg-config llvm-dev libclang-dev clang
- name: Use Rust beta - name: Use Rust beta
@@ -462,7 +465,7 @@ jobs:
if: needs.check-labels.outputs.skip_ci != 'true' if: needs.check-labels.outputs.skip_ci != 'true'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v5
- name: Get latest version of stable Rust - name: Get latest version of stable Rust
uses: moonrepo/setup-rust@v1 uses: moonrepo/setup-rust@v1
with: with:
@@ -476,7 +479,7 @@ jobs:
if: needs.check-labels.outputs.skip_ci != 'true' if: needs.check-labels.outputs.skip_ci != 'true'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v5
- name: Get latest version of stable Rust - name: Get latest version of stable Rust
uses: moonrepo/setup-rust@v1 uses: moonrepo/setup-rust@v1
with: with:
@@ -516,6 +519,6 @@ jobs:
'cargo-sort', 'cargo-sort',
] ]
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v5
- name: Check that success job is dependent on all others - 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 run: ./scripts/ci/check-success-job.sh ./.github/workflows/test-suite.yml test-suite-success