diff --git a/.github/workflows/update-codeowners.yml b/.github/workflows/update-codeowners.yml old mode 100644 new mode 100755 index a1beed6339..c2599caf1f --- a/.github/workflows/update-codeowners.yml +++ b/.github/workflows/update-codeowners.yml @@ -73,10 +73,6 @@ jobs: chore: update CODEOWNERS based on git history Auto-generated CODEOWNERS update based on commit activity over the last ${{ env.DAYS_BACK }} days. - - 🤖 Generated with [Claude Code](https://claude.com/claude-code) - - Co-Authored-By: Claude branch: auto-update-codeowners base: main delete-branch: true diff --git a/.github/workflows/update-xfails-report.yml b/.github/workflows/update-xfails-report.yml new file mode 100755 index 0000000000..f36a394a26 --- /dev/null +++ b/.github/workflows/update-xfails-report.yml @@ -0,0 +1,102 @@ +name: Update XFails Report + +on: + schedule: + # Run weekly on Monday at 00:00 UTC + - cron: '0 0 * * 1' + workflow_dispatch: # Allow manual triggering + +permissions: + contents: write + pull-requests: write + +jobs: + update-xfails-report: + runs-on: ubuntu-latest + timeout-minutes: 30 + steps: + - name: Checkout repository + uses: actions/checkout@v4.2.2 + with: + fetch-depth: 1 # Shallow clone is sufficient for scanning test files + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.11' + + - name: Create reports directory + run: mkdir -p reports + + - name: Run XFails tracker + run: | + python scripts/xfails_tracker.py > reports/xfails_report.txt 2>&1 || { + echo "Error: XFails tracker script failed" + cat reports/xfails_report.txt + exit 1 + } + + - name: Check for changes + id: check_changes + run: | + # Check if xfails report file is new (unstaged) or has changes + if git ls-files --error-unmatch reports/xfails_report.txt >/dev/null 2>&1; then + # File is tracked, check for changes + if git diff --quiet reports/xfails_report.txt; then + echo "changed=false" >> $GITHUB_OUTPUT + echo "No changes detected in xfails report" + else + echo "changed=true" >> $GITHUB_OUTPUT + echo "Changes detected in xfails report" + fi + else + # File is untracked (newly created) + echo "changed=true" >> $GITHUB_OUTPUT + echo "XFails report file is new" + fi + + - name: Create Pull Request + if: steps.check_changes.outputs.changed == 'true' + uses: peter-evans/create-pull-request@v7 + with: + token: ${{ secrets.FLASHINFER_BOT_TOKEN }} + committer: flashinfer-bot + author: flashinfer-bot + commit-message: | + chore: update xfails report + + Auto-generated xfails report based on current test suite markers. + branch: auto-update-xfails-report + base: main + delete-branch: true + title: 'chore: Update XFails Report' + body: | + ## Summary + + This PR updates the xfails report based on the current test suite. + + ## Changes + + - Updated `reports/xfails_report.txt` with current xfail markers from the test suite + + ## How to Review + + 1. Review the changes to `reports/xfails_report.txt` + 2. Check if the number of xfails has increased or decreased + 3. Review the reasons for any new xfails + 4. Consider addressing xfails that may no longer be needed + + ## Notes + + - This is an automated PR generated weekly + - The report shows all `pytest.mark.xfail` markers in the test suite + - Grouped by reason for easy analysis + + --- + + 🤖 This PR was automatically generated by the [update-xfails-report workflow](.github/workflows/update-xfails-report.yml) + labels: | + automated + maintenance + testing