fix(ci): restore green main (workflow callers, type errors, coverage, hardening) #23
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
| # Mutation Testing for Foundry Unify | |
| # Validates test effectiveness by introducing code mutations. | |
| # | |
| # This is a thin caller to the org-level reusable workflow. | |
| # | |
| # Documentation: https://mutmut.readthedocs.io/ | |
| name: Mutation Testing | |
| on: | |
| # Weekly schedule - Sundays at 2 AM UTC | |
| schedule: | |
| - cron: '0 2 * * 0' | |
| # Manual trigger with configurable threshold | |
| workflow_dispatch: | |
| inputs: | |
| mutation_threshold: | |
| description: 'Minimum mutation score threshold (%)' | |
| required: false | |
| default: '80' | |
| type: string | |
| # Run on PRs that modify source code | |
| pull_request: | |
| branches: [main, master, develop] | |
| paths: | |
| - 'src/**/*.py' | |
| - 'tests/**/*.py' | |
| - 'pyproject.toml' | |
| # Cancel in-progress runs for same PR/branch | |
| concurrency: | |
| group: mutation-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| pull-requests: write | |
| jobs: | |
| mutation: | |
| name: Mutation Testing | |
| # Skip on forks (no PR comment permissions) | |
| if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository | |
| uses: ByronWilliamsCPA/.github/.github/workflows/python-mutation.yml@main | |
| with: | |
| no-build: false # hatchling build backend: editable install must build | |
| python-version: '3.12' | |
| source-directory: 'src' | |
| test-directory: 'tests' | |
| mutation-threshold: ${{ github.event.inputs.mutation_threshold && fromJSON(github.event.inputs.mutation_threshold) || 80 }} | |
| fail-under-threshold: ${{ github.event_name != 'schedule' }} | |
| post-pr-comment: true | |
| timeout-minutes: 60 | |
| secrets: inherit |