Update after nwaku cleanup #253
This file contains hidden or 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
| on: | |
| pull_request: | |
| push: | |
| branches: | |
| - master | |
| name: Codecov | |
| jobs: | |
| test-and-coverage: | |
| runs-on: ubuntu-latest | |
| env: | |
| CARGO_INCREMENTAL: 0 | |
| RUSTFLAGS: "-C instrument-coverage" | |
| LLVM_PROFILE_FILE: "coverage-%p-%m.profraw" | |
| steps: | |
| # 1️⃣ Checkout the repo | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| # 2️⃣ Install Rust toolchain (nightly required for coverage) | |
| - name: Set up Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| toolchain: nightly | |
| components: llvm-tools-preview | |
| # 3️⃣ Cache build artifacts for faster CI | |
| - name: Cache cargo build | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.cargo/registry | |
| ~/.cargo/git | |
| target | |
| key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
| # 4️⃣ Build and test with coverage instrumentation | |
| - name: Run tests | |
| run: | | |
| cargo build --all-features | |
| cargo test --all-features | |
| # 5️⃣ Install grcov | |
| - name: Install grcov | |
| run: cargo install grcov | |
| # 6️⃣ Generate lcov report | |
| - name: Generate coverage report | |
| run: | | |
| mkdir -p coverage | |
| grcov . \ | |
| --binary-path ./target/debug/ \ | |
| -s . \ | |
| -t lcov \ | |
| --branch \ | |
| --ignore-not-existing \ | |
| --ignore '../*' \ | |
| --ignore "/*" \ | |
| -o coverage/tests.lcov | |
| # 7️⃣ Upload to Codecov | |
| - name: Upload coverage to Codecov | |
| uses: codecov/codecov-action@v4 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} # only needed for private repos | |
| files: coverage/tests.lcov | |
| fail_ci_if_error: true | |
| flags: unittests | |
| name: rust-codecov |