Repository navigation
perf(sparq-substrate): sparq-substrate: single-column join-key equality goes through an outlined ind #27
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # [SONNET-4.6] sq-qcnn.30 — bounded mutation feedback for code changed by a PR. | |
| # This workflow is deliberately separate from ci.yml. Its job NAME contains the whole | |
| # word "advisory", so ci-summary excludes it, and both job/step failure are tolerated. | |
| name: Changed-code mutation review | |
| on: | |
| pull_request: | |
| types: [opened, synchronize, reopened, ready_for_review] | |
| paths: | |
| - "**/*.rs" | |
| - "**/Cargo.toml" | |
| - "Cargo.lock" | |
| - ".github/workflows/mutants-diff.yml" | |
| - "scripts/mutants-diff.sh" | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: mutants-diff-${{ github.event.pull_request.number }} | |
| cancel-in-progress: true | |
| jobs: | |
| mutants-diff: | |
| name: changed-code mutation review (advisory) | |
| if: github.event.pull_request.draft == false | |
| runs-on: ubuntu-latest | |
| continue-on-error: true | |
| timeout-minutes: 45 | |
| env: | |
| # These are workload limits, not performance claims. The first deterministic | |
| # shard contains no more than this many in-diff mutants; each mutant test run | |
| # has the timeout below, and the job wall clock is bounded above as well. | |
| MUTANTS_DIFF_CAP: 12 | |
| MUTANTS_DIFF_TIMEOUT_SECONDS: 120 | |
| steps: | |
| - name: Check out the PR head and merge-base history | |
| uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 | |
| with: | |
| fetch-depth: 0 | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable | |
| - name: Restore Rust build cache | |
| uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2 | |
| - name: Install pinned cargo-mutants | |
| uses: taiki-e/install-action@43aecc8d72668fbcfe75c31400bc4f890f1c5853 | |
| with: | |
| # 25.3.1 supports --in-diff (available since 23.11.1). | |
| tool: cargo-mutants@25.3.1 | |
| - name: Build PR merge-base diff | |
| run: | | |
| base=$(git merge-base "${{ github.event.pull_request.base.sha }}" HEAD) | |
| git diff --find-renames "$base" HEAD -- '*.rs' > mutants-pr.diff | |
| - name: Run bounded in-diff mutants (advisory) | |
| id: mutants | |
| continue-on-error: true | |
| run: ./scripts/mutants-diff.sh mutants-pr.diff | |
| - name: Preserve mutation details | |
| if: always() | |
| continue-on-error: true | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: mutants-diff-${{ github.event.pull_request.number }} | |
| path: mutants.out/ | |
| if-no-files-found: ignore | |
| retention-days: 7 |