name: Mutants
on:
workflow_dispatch:
env:
CARGO_TERM_COLOR: always
CARGO_INCREMENTAL: 0
CARGO_NET_RETRY: 10
CI: 1
RUST_BACKTRACE: short
RUSTUP_MAX_RETRIES: 10
jobs:
tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
- uses: swatinem/rust-cache@v2
- name: Show version
run: |
rustup show
cargo --version
rustc --version
- name: Test
run: >
cargo test --features fail/failpoints -- --include-ignored
cargo-mutants:
runs-on: ubuntu-latest
needs: [tests]
strategy:
fail-fast: false
matrix:
shard: [0, 1, 2, 3]
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: taiki-e/install-action@v2
name: Install cargo-mutants using install-action
with:
tool: cargo-mutants
- uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
- uses: swatinem/rust-cache@v2
- name: Run mutant tests
run: >
cargo mutants --no-shuffle -vV --cargo-arg --no-default-features
--shard ${{ matrix.shard }}/4 -- --features fail/failpoints
- name: Archive results
uses: actions/upload-artifact@v3
if: always()
with:
name: mutation-report
path: mutants.out