Files
SnapOtter/.github/workflows/mutation.yml
T
SnapOtterandGitHub 4ec39c556f test: testing overhaul -- CI e2e gates, parallel suites, generated matrices, mutation testing (#215)
Closes the "e2e never runs in CI" hole. Adds per-PR e2e smoke gate,
nightly full-suite workflows, parallel vitest forks (per-fork DBs),
Playwright parallel/serial/visual projects against production builds,
metadata-generated test suites (drift guards, hostile inputs, format
matrix, pairwise settings, property-based fuzz), Stryker mutation
testing, Schemathesis API fuzz, coverage ratchet, and fixes for three
session-poisoning bugs that caused 200+ serial-bucket failures.

Bug fix included: favicon/split/bulk-rename could hang clients forever
when ZIP streaming failed after reply.hijack().
2026-06-10 22:01:13 +08:00

35 lines
1.1 KiB
YAML

name: Mutation Testing
on:
workflow_dispatch:
schedule:
- cron: "0 4 * * 0"
permissions:
contents: read
jobs:
mutation-image-engine:
name: Stryker (image-engine)
runs-on: ubuntu-latest
timeout-minutes: 120
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: ./.github/actions/setup
- name: Restore incremental mutation state
uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
with:
path: packages/image-engine/reports/stryker-incremental.json
key: stryker-incremental-${{ github.sha }}
restore-keys: |
stryker-incremental-
- name: Run mutation tests
run: pnpm --filter @snapotter/image-engine exec stryker run
- name: Upload mutation report
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
if: always()
with:
name: mutation-report-image-engine
path: packages/image-engine/reports/mutation/
retention-days: 30