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

