--- 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@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: persist-credentials: true - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.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@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 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