brackt/.forgejo/workflows/sync-and-simulate.yml
Chris Parsons 85bfc657e5 Add Phase A: external HTTP cron jobs for snapshots, standings sync, and simulation
- Add POST /admin/jobs/run-daily-snapshots (replaces 24h setInterval in server/snapshots.ts)
- Add POST /admin/jobs/sync-and-simulate (syncs standings every 2h; only simulates when standings
  actually changed by comparing gamesPlayed + leagueRank before upserting)
- Add standingsLastChangedAt + lastSimulatedAt columns to sportsSeasons (migration 0118)
- Add GET /healthz route for Docker healthcheck (pings DB, returns 503 on failure)
- Add app/lib/cron-auth.ts shared X-Cron-Secret header auth helper
- Remove startSnapshotSystem() from server/socket.ts (no more in-process setInterval)
- Add Forgejo Actions scheduled workflows: daily-snapshots.yml (00:05 UTC) and
  sync-and-simulate.yml (every 2h) — require CRON_SECRET repo secret

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-08 00:18:41 -07:00

15 lines
412 B
YAML

name: Sync standings and simulate
on:
schedule:
- cron: '0 */2 * * *'
jobs:
run:
runs-on: ubuntu-latest
steps:
- name: Sync standings and run simulations where changed
run: |
curl -sf -X POST https://brackt.com/admin/jobs/sync-and-simulate \
-H "X-Cron-Secret: ${{ secrets.CRON_SECRET }}" \
-H "Content-Type: application/json" \
| cat