name: Coverage
on:
push:
branches: [master]
pull_request:
jobs:
coverage:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
checks: write
id-token: write
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: llvm-tools-preview
- uses: taiki-e/install-action@cargo-llvm-cov
- name: Collect coverage (tests)
run: |
cargo llvm-cov --workspace --locked --verbose --lcov --output-path lcov.info
- uses: actions/upload-artifact@v4
with:
name: lcov
path: lcov.info
- name: Upload to Codecov
uses: codecov/codecov-action@v5
with:
files: lcov.info
fail_ci_if_error: true
flags: rust
token: ${{ env.CODECOV_TOKEN }}