name: CI Trigger Monitor on: schedule: - cron: '*/5 * * * *' # 每5分钟检查一次 workflow_dispatch: inputs: stale_threshold: description: 'CI未触发告警阈值(分钟)' required: false default: '5' permissions: contents: read jobs: monitor: name: Monitor CI Trigger Reliability runs-on: ci-l2 timeout-minutes: 5 steps: - name: Checkout code shell: sh env: GITHUB_TOKEN: ${{ github.token }} run: | curl -sH "Authorization: token $GITHUB_TOKEN" "${GITHUB_API_URL}/repos/${GITHUB_REPOSITORY}/raw/scripts/ci/step_checkout.sh?ref=${GITHUB_SHA}" | bash - name: Check CI trigger status for all open PRs env: GITEA_API_TOKEN: ${{ secrets.REVIEW_GITEA_TOKEN }} GITEA_URL: https://git.xiaoxiajianji.com GITEA_REPO: xiaoxia/xiaoxia-saas CI_NOTIFY_WEBHOOK: ${{ secrets.CI_NOTIFY_WEBHOOK }} STALE_THRESHOLD_MIN: ${{ inputs.stale_threshold || 5 }} run: | set +e python3 scripts/ci_trigger_monitor.py # 监控脚本永远不fail,避免告警风暴 exit 0 - name: Report CI trace if: always() shell: sh env: AGENTLOOP_LICENSE_KEY: ${{ secrets.AGENTLOOP_LICENSE_KEY }} run: | STATUS="ok" [ ${{ job.status }} = "success" ] || STATUS="error" START_TIME="" [ -f /tmp/ci_job_start_time ] && START_TIME=$(cat /tmp/ci_job_start_time) python3 scripts/ci/ci_trace_report.py --service xiaoxia-saas-ci --status $STATUS --start-time "$START_TIME" || true