Skip to content

Update after nwaku cleanup #251

Update after nwaku cleanup

Update after nwaku cleanup #251

Workflow file for this run

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