Test Effectiveness Tracking #5
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: 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 |