This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: codecov-coverage | |
# This CI is run manually on-demand and performs a simple calculation of | |
# unit tests coverage and reports it to CodeCov | |
permissions: | |
contents: read | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- 'codecov-coverage' | |
jobs: | |
coverage: | |
runs-on: ubuntu-latest | |
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: | |
components: llvm-tools-preview | |
- name: Install cargo-llvm-cov | |
uses: taiki-e/install-action@cargo-llvm-cov | |
- name: Install nextest | |
uses: taiki-e/install-action@nextest | |
- name: Install protoc | |
uses: arduino/setup-protoc@v3 | |
- name: Generate lockfile if it doesn't exist | |
if: hashFiles('Cargo.lock') == '' | |
run: cargo generate-lockfile | |
- name: cargo llvm-cov | |
# Follow the test command in `coverage.yml` | |
# but without release mode to avoid long build times | |
run: cargo llvm-cov nextest --release --workspace --features=evm-tracing --lcov --output-path lcov.info | |
- name: Record Rust version | |
run: echo "RUST=$(rustc --version)" >> "$GITHUB_ENV" | |
- name: Upload to codecov.io | |
uses: codecov/codecov-action@v4 | |
with: | |
fail_ci_if_error: true | |
env_vars: OS,RUST | |
token: ${{ secrets.CODECOV_TOKEN }} |