mutation #64
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
| name: mutation | |
| on: | |
| schedule: | |
| - cron: "0 4 * * *" # nightly at 04:00 UTC | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| jobs: | |
| gremlins: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version: "1.25.x" | |
| check-latest: true | |
| - name: Install gremlins | |
| run: go install github.com/go-gremlins/gremlins/cmd/gremlins@v0.6.0 | |
| - name: Mutation test the deterministic core | |
| # `gremlins unleash` takes a single package path, so invoke it once per | |
| # package. .gremlins.yaml sets the efficacy 90 threshold; gremlins exits | |
| # non-zero (10) when it is not met. Run every package (so the nightly | |
| # report always covers both) and fail the job if any misses threshold. | |
| run: | | |
| rc=0 | |
| for pkg in ./internal/policy/ ./internal/meter/; do | |
| gremlins unleash "$pkg" || rc=$? | |
| done | |
| exit $rc |