|
| 1 | +--- |
| 2 | + |
| 3 | +# GitHub schedules all cron jobs in UTC. |
| 4 | +# ────────────────────────────────────────────────────────────────────────────── |
| 5 | +# Schedule: |
| 6 | +# - '0 13 * * *' runs at 13:00 UTC every day. |
| 7 | +# - This corresponds to: |
| 8 | +# • 9:00 AM Eastern **during Daylight Saving Time** (mid-Mar → early-Nov) |
| 9 | +# • 8:00 AM Eastern **during Standard Time** (early-Nov → mid-Mar) |
| 10 | +# |
| 11 | +# Job routing: |
| 12 | +# - call-benchmark-tracker: |
| 13 | +# • Runs on manual dispatch, and on pushes to the 'latest' branch. |
| 14 | +# - call-monitor-promotions: |
| 15 | +# • Runs on schedule or manual dispatch **only in repos named ansible-lockdown/Private-***. |
| 16 | +# • Skips automatically in public repos (e.g., Windows-2022-CIS) to avoid false failures. |
| 17 | +# |
| 18 | +# Defense-in-depth: |
| 19 | +# - The called promotion workflow may still keep its own guard to ensure only Private-* repos execute it. |
| 20 | + |
| 21 | +name: Central Benchmark Orchestrator |
| 22 | + |
| 23 | +on: |
| 24 | + push: |
| 25 | + branches: |
| 26 | + - latest |
| 27 | + schedule: |
| 28 | + - cron: '0 13 * * *' # 13:00 UTC → 9 AM ET (DST) / 8 AM ET (Standard Time) |
| 29 | + workflow_dispatch: |
| 30 | + |
| 31 | +jobs: |
| 32 | + call-benchmark-tracker: |
| 33 | + # Run on manual dispatch OR when 'latest' branch receives a push |
| 34 | + if: github.event_name == 'workflow_dispatch' || (github.event_name == 'push' && github.ref_name == 'latest') |
| 35 | + name: Start Benchmark Tracker |
| 36 | + uses: ansible-lockdown/github_linux_IaC/.github/workflows/benchmark_track.yml@self_hosted |
| 37 | + with: |
| 38 | + repo_name: ${{ github.repository }} |
| 39 | + secrets: |
| 40 | + TEAMS_WEBHOOK_URL: ${{ secrets.TEAMS_WEBHOOK_URL }} |
| 41 | + BADGE_PUSH_TOKEN: ${{ secrets.BADGE_PUSH_TOKEN }} |
| 42 | + DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }} |
| 43 | + |
| 44 | + call-monitor-promotions: |
| 45 | + # Run on schedule or manual dispatch, but only for Private-* repos |
| 46 | + if: (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') && startsWith(github.repository, 'ansible-lockdown/Private-') |
| 47 | + name: Monitor Promotions and Auto-Promote |
| 48 | + uses: ansible-lockdown/github_linux_IaC/.github/workflows/benchmark_promote.yml@self_hosted |
| 49 | + with: |
| 50 | + repo_name: ${{ github.repository }} |
| 51 | + secrets: |
| 52 | + TEAMS_WEBHOOK_URL: ${{ secrets.TEAMS_WEBHOOK_URL }} |
| 53 | + BADGE_PUSH_TOKEN: ${{ secrets.BADGE_PUSH_TOKEN }} |
| 54 | + DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }} |
0 commit comments