Repository navigation
test(fixtures): give every compile fixture a unique namespace prefix #35
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
| name: Core CI | |
| on: | |
| pull_request: | |
| push: | |
| branches: [main] | |
| # Cancel superseded runs on the same branch (e.g. when a PR gets a new push) | |
| # so we don't pay for stale-commit mutation runs. The concurrency group is | |
| # keyed on the workflow name + ref, so this is per-workflow — the LSP CI | |
| # can run concurrently with this one without queueing. | |
| concurrency: | |
| group: ci-${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| phpunit: | |
| name: PHPUnit | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup PHP 8.4 | |
| uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: '8.4' | |
| extensions: dom, json, mbstring, tokenizer | |
| coverage: none | |
| tools: composer:v2 | |
| - name: Install dependencies | |
| uses: ramsey/composer-install@v3 | |
| - name: Run PHPUnit | |
| run: make test/unit | |
| infection: | |
| name: Mutation testing | |
| runs-on: ubuntu-latest | |
| needs: phpunit | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup PHP 8.4 (with Xdebug for coverage) | |
| uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: '8.4' | |
| extensions: dom, json, mbstring, tokenizer | |
| coverage: xdebug | |
| tools: composer:v2 | |
| - name: Install dependencies | |
| uses: ramsey/composer-install@v3 | |
| - name: Run Infection | |
| # --min-covered-msi=95 fails CI if the mutation score drops below | |
| # the gate. Threads=max parallelises mutant runs. | |
| run: make test/mutation | |
| - name: Upload Infection report | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: infection-report | |
| path: | | |
| var/infection.log | |
| var/infection.html | |
| if-no-files-found: ignore | |
| retention-days: 14 |