name: Mutation Testing
on:
push:
branches: [ "main" ]
paths:
- 'src/**'
- 'Cargo.toml'
- 'Cargo.lock'
pull_request:
branches: [ "main" ]
paths:
- 'src/**'
- 'Cargo.toml'
- 'Cargo.lock'
env:
CARGO_TERM_COLOR: always
jobs:
mutants:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Cache cargo binaries
uses: actions/cache@v3
with:
path: |
~/.cargo/bin
~/.cargo/registry
~/.cargo/git
key: ${{ runner.os }}-cargo-mutants-${{ hashFiles('**/Cargo.lock') }}
- name: Install cargo-mutants
run: |
if ! command -v cargo-mutants &> /dev/null; then
cargo install cargo-mutants
fi
- name: Run mutation tests
run: cargo mutants --timeout 10