Skip to content

Test Effectiveness Tracking #5

Test Effectiveness Tracking

Test Effectiveness Tracking #5

---
name: Test Effectiveness Tracking
'on':
schedule:
- cron: '0 0 * * 0' # Weekly on Sunday
workflow_dispatch: # Allow manual runs
permissions:
contents: write
issues: write
pull-requests: read
actions: read
jobs:
track-effectiveness:
name: Analyze Test Effectiveness
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: true
- uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
with:
python-version: '3.11'
- name: Analyze test effectiveness
env:
GH_TOKEN: ${{ github.token }}
run: |
python scripts/track-test-effectiveness.py
- name: Upload metrics
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: test-effectiveness-metrics
path: .metrics/
- name: Create issue if tests are ineffective
env:
GH_TOKEN: ${{ github.token }}
run: |
# Check if we need to create an issue
if grep -q "⚠️" .metrics/test-effectiveness-report.md; then
# Check if issue already exists
existing=$(gh issue list --label "test-effectiveness" --state open --json number --jq '.[0].number')
if [ -z "$existing" ]; then
gh issue create \
--title "Test Effectiveness Review Needed" \
--body-file .metrics/test-effectiveness-report.md \
--label "test-effectiveness,maintenance"
else
# Update existing issue
gh issue comment $existing --body-file .metrics/test-effectiveness-report.md
fi
fi
- name: Commit metrics if changed
run: |
git config --local user.email "github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
if [[ -n $(git status -s .metrics/) ]]; then
git add .metrics/
git commit -m "chore: Update test effectiveness metrics [skip ci]"
git push
fi