name: Coverage
on:
push:
branches: [ main, feature/* ]
pull_request:
branches: [ main ]
jobs:
coverage:
name: Coverage (tarpaulin)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Install cargo-tarpaulin
run: cargo install cargo-tarpaulin --locked
- name: Run coverage
run: |
cargo tarpaulin --out Xml --output-dir coverage || true
cargo tarpaulin --out Lcov --output-dir coverage || true
- name: Upload coverage artifacts
uses: actions/upload-artifact@v4
with:
name: coverage-report
path: coverage
- name: Upload to Codecov (optional)
uses: codecov/codecov-action@v4
with:
files: coverage/coverage.xml
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}