name: Codecov
permissions:
contents: read pull-requests: write
on:
push:
paths:
- "**/*.rs" - "**/*.json" - "**/*.lock" - "**/*.toml"
env:
CARGO_TERM_COLOR: always
CARGO_INCREMENTAL: 0
CARGO_PROFILE_TEST_DEBUG: 0
CARGO_PROFILE_RELEASE_LTO: true
CARGO_PROFILE_RELEASE_CODEGEN_UNITS: 1
jobs:
coverage:
name: Codecov Coverage
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
cache-all-crates: true
- uses: taiki-e/install-action@v2
with:
tool: cargo-tarpaulin
- name: Run tests with coverage
run: cargo tarpaulin --all-features --out xml --frozen --skip-clean
- name: Upload to codecov.io
uses: codecov/codecov-action@v6
with:
token: ${{ secrets.CODECOV_TOKEN }}