name: Code Coverage
on:
push:
jobs:
code_coverage:
runs-on: ubuntu-latest
steps:
- name: Setup code
uses: actions/checkout@v3
- name: Cache cargo files
uses: actions/cache@v3
with:
path: |
~/.cargo
target/
key: cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Setup Rust toolchain
run: |
rustup set profile minimal
rustup install stable
rustup override set stable
rustup component add clippy
rustup component add rustfmt
rustup component add llvm-tools-preview
cargo install cargo-llvm-cov
- name: Collect coverage data
run: cargo llvm-cov --all-features --lcov --output-path lcov.info
- name: Upload coverage
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: lcov.info
fail_ci_if_error: true