Skip to content

Commit

Permalink
ci: Run cargo mutants on changed code (#1742)
Browse files Browse the repository at this point in the history
* ci: Run `cargo mutants` on changed code

See https://mutants.rs/, esp. https://mutants.rs/pr-diff.html

* Fixes

* Fix trigger
  • Loading branch information
larseggert authored Mar 14, 2024
1 parent 203987a commit 0f473b5
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 1 deletion.
2 changes: 1 addition & 1 deletion .github/actions/rust/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ runs:

- name: Install Rust tools
shell: bash
run: cargo +${{ inputs.version }} binstall --no-confirm cargo-llvm-cov cargo-nextest flamegraph cargo-hack
run: cargo +${{ inputs.version }} binstall --no-confirm cargo-llvm-cov cargo-nextest flamegraph cargo-hack cargo-mutants

# sccache slows CI down, so we leave it disabled.
# Leaving the steps below commented out, so we can re-evaluate enabling it later.
Expand Down
36 changes: 36 additions & 0 deletions .github/workflows/mutants.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Find mutants
on:
pull_request:
branches: ["main"]
paths-ignore: ["*.md", "*.png", "*.svg", "LICENSE-*"]
merge_group:

concurrency:
group: ${{ github.workflow }}-${{ github.ref_name }}
cancel-in-progress: true

jobs:
incremental-mutants:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Relative diff
run: git diff origin/${{ github.base_ref }}.. > pr.diff

- name: Install Rust
uses: ./.github/actions/rust
with:
version: stable

- name: Mutants
run: cargo mutants --test-tool=nextest --no-shuffle -j 2 -vV --in-diff pr.diff

- name: Archive mutants.out
uses: actions/upload-artifact@v4
if: always()
with:
name: mutants-incremental.out
path: mutants.out

0 comments on commit 0f473b5

Please sign in to comment.