CI Failure Monitor #2299
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: CI Failure Monitor | |
| on: | |
| schedule: | |
| - cron: '*/30 * * * *' # Every 30 minutes | |
| workflow_dispatch: | |
| inputs: | |
| limit: | |
| description: 'Number of workflow runs to analyze (across all workflows)' | |
| required: false | |
| default: '1000' | |
| type: string | |
| threshold: | |
| description: 'Alert threshold for consecutive failures' | |
| required: false | |
| default: '4' | |
| type: string | |
| concurrency: | |
| group: ci-failure-monitor-${{ github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| actions: read | |
| jobs: | |
| failure-analysis: | |
| if: github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.14' | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install requests | |
| - name: Run Failure Analysis | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GH_PAT_FOR_NIGHTLY_CI_DATA }} | |
| PYTHONUNBUFFERED: 1 | |
| PYTHONIOENCODING: utf-8 | |
| run: | | |
| cd scripts/ci_monitor | |
| python ci_failures_analysis.py \ | |
| --token $GITHUB_TOKEN \ | |
| --limit ${{ inputs.limit || '1000' }} \ | |
| --threshold ${{ inputs.threshold || '4' }} \ | |
| --output ci_failure_analysis_$(date +%Y%m%d_%H%M%S).json | |
| - name: Upload Analysis Results | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ci-failure-analysis-${{ github.run_number }} | |
| path: | | |
| scripts/ci_monitor/ci_failure_analysis_*.json | |
| retention-days: 7 |