mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
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().
35 lines
1.1 KiB
YAML
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
|