Skip to content

Test threshold-breach and feature-branch-push matrix items #9

Test threshold-breach and feature-branch-push matrix items

Test threshold-breach and feature-branch-push matrix items #9

Workflow file for this run

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