Skip to content

Mutation Testing

Mutation Testing #2

Workflow file for this run

name: Mutation Testing
# Mutation testing is slow and CPU-heavy, so it never gates PRs — weekly + on demand only.
on:
schedule:
- cron: '0 7 * * 1' # Monday 07:00 UTC, offset from the other Monday jobs
workflow_dispatch:
permissions:
contents: read
jobs:
stryker:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Setup .NET
uses: actions/setup-dotnet@26b0ec14cb23fa6904739307f278c14f94c95bf1 # v5.4.0
with:
dotnet-version: |
8.0.x
10.0.x
- name: Restore tools
run: dotnet tool restore
- name: Restore dependencies
run: dotnet restore
- name: Run Stryker
working-directory: GoogleMapsApi.Test
env:
VCR_MODE: replay # offline: cassette replay, no Google quota
run: dotnet stryker
- name: Publish report to job summary
if: always()
shell: bash
run: |
report=$(find GoogleMapsApi.Test/StrykerOutput -name 'mutation-report.md' | head -n1)
if [ -n "$report" ]; then
cat "$report" >> "$GITHUB_STEP_SUMMARY"
else
echo "No Stryker markdown report produced." >> "$GITHUB_STEP_SUMMARY"
fi
- name: Upload HTML report
if: always()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: mutation-report
path: GoogleMapsApi.Test/StrykerOutput/**/reports/mutation-report.html
if-no-files-found: warn