diff --git a/.github/workflows/codecov-coverage.yml b/.github/workflows/codecov-coverage.yml index 096c087c19..2c03a84787 100644 --- a/.github/workflows/codecov-coverage.yml +++ b/.github/workflows/codecov-coverage.yml @@ -12,12 +12,42 @@ on: jobs: coverage: runs-on: ubuntu-latest - name: ubuntu / stable / coverage + name: Code Coverage steps: + # The build artifacts generated by Polkadot projects are already large + # and even larger when using llvm-cov. This step removes some of the larger and unused files + - name: Free disk space + run: | + echo "Freeing up disk space..." + sudo rm -rf /usr/share/dotnet + sudo rm -rf /usr/local/lib/android + sudo rm -rf /opt/ghc + sudo rm -rf "/usr/local/share/boost" + sudo rm -rf "$AGENT_TOOLSDIRECTORY" + sudo apt-get clean + docker rmi $(docker image ls -aq) + df -h + - uses: actions/checkout@v4 with: submodules: true + - name: Cache cargo registry & git sources + uses: actions/cache@v4 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/ + ~/.cargo/git/db/ + key: ${{ runner.os }}-cargo-unittest-${{ hashFiles('**/Cargo.lock') }} + restore-keys: | + ${{ runner.os }}-cargo-unittest-${{ hashFiles('**/Cargo.lock') }} + ${{ runner.os }}-cargo-unittest- + ${{ runner.os }}-cargo- + + - name: Run sccache + uses: mozilla-actions/sccache-action@v0.0.4 + - name: Install stable uses: dtolnay/rust-toolchain@stable with: @@ -29,12 +59,14 @@ jobs: - name: Install protoc uses: arduino/setup-protoc@v3 - - name: cargo generate-lockfile + - name: Generate lockfile if it doesn't exist if: hashFiles('Cargo.lock') == '' run: cargo generate-lockfile - name: cargo llvm-cov - run: cargo llvm-cov --locked --lcov --output-path lcov.info + # Follow the test command in `coverage.yml` + # but without release mode to avoid long build times + run: cargo llvm-cov nextest --workspace --features=evm-tracing --lcov --output-path lcov.info - name: Record Rust version run: echo "RUST=$(rustc --version)" >> "$GITHUB_ENV" @@ -44,3 +76,4 @@ jobs: with: fail_ci_if_error: true env_vars: OS,RUST + token: ${{ secrets.CODECOV_TOKEN }}