Test threshold-breach and feature-branch-push matrix items #9
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: Action self-test | |
| on: | |
| push: | |
| branches: [main, 'test/**'] | |
| pull_request: | |
| permissions: | |
| id-token: write | |
| checks: write | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| # Run the Action runner's own unit tests. | |
| # vitest --coverage emits coverage/coverage-summary.json (Istanbul json-summary format), | |
| # which is exactly what collect.sh reads for the JS coverage path. | |
| # The Action dogfoods itself: real test coverage replaces a hardcoded artifact. | |
| - name: Test Action runner | |
| working-directory: .github/actions/report | |
| run: npm ci && npm test | |
| # Run the collect.sh parser fixture tests. | |
| - name: Test collect.sh parsers | |
| run: bash test/collect-parsers.sh | |
| - uses: ./.github/actions/report | |
| with: | |
| worker-url: https://coverage-tracker.zerostash.org | |
| min-coverage: '20' | |
| max-coverage-drop: '5' | |
| coverage-report-js: .github/actions/report/coverage/coverage-summary.json | |
| # Verifies that a min-coverage threshold above actual coverage causes the | |
| # action to fail. The breach step is allowed to fail; the assert step | |
| # confirms it actually did (not just an OIDC skip or other early return). | |
| threshold-breach: | |
| if: github.event_name == 'pull_request' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Test Action runner | |
| working-directory: .github/actions/report | |
| run: npm ci && npm test | |
| - id: breach | |
| uses: ./.github/actions/report | |
| continue-on-error: true | |
| with: | |
| worker-url: https://coverage-tracker.zerostash.org | |
| min-coverage: '99' | |
| coverage-report-js: .github/actions/report/coverage/coverage-summary.json | |
| - name: Assert threshold breach failed the action | |
| if: steps.breach.outcome != 'failure' | |
| run: | | |
| echo "Expected min-coverage 99 to fail, got '${{ steps.breach.outcome }}'" | |
| exit 1 |