ci: offset benchmark cron + scaffold dormant CF Worker fallback#36
Merged
Conversation
GitHub Actions throttles `*/30 * * * *` heavily under load — recent 30-run history shows ~50% of slots dropped and overnight gaps of 3–4 hours. Shifting to `13,43 * * * *` moves us off the contended boundary and typically recovers most missed slots. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds infra/benchmark-trigger/ — a Cloudflare Worker that can invoke `workflow_dispatch` on update-benchmarks.yml as a fallback for GitHub Actions cron throttling. The worker is scaffolded but NOT deployed: wrangler.toml's [triggers] block is commented out. Activate only if the offset cron (`13,43 * * * *`) doesn't recover enough slots. Activation steps and rationale in infra/benchmark-trigger/README.md. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
CI runner upgraded to clippy 1.95.0, which tightened these lints to errors under `-D warnings`. Both are mechanical auto-fix suggestions and unrelated to this PR's cron change — applied here to unblock the merge. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
arimxyer
added a commit
that referenced
this pull request
May 11, 2026
Uncomment the [triggers] block in wrangler.toml and update the README status. The worker is now scheduled at `17 * * * *` and deployed at models-benchmark-trigger.ari111097.workers.dev. Activated after the offset cron (PR #36) missed its first :43 slot, suggesting the offset alone wouldn't be enough. The worker uses a separate code path (workflow_dispatch) that bypasses GH's cron scheduler, so it should fire reliably even when GH throttles the scheduled runs. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
update-benchmarks.ymlcron from*/30 * * * *to13,43 * * * *to dodge GitHub's half-hour-boundary throttling. Run history showed ~50% of slots dropped and overnight gaps of 3–4 hours.infra/benchmark-trigger/that can invokeworkflow_dispatchon a Cloudflare cron as a fallback if the offset isn't enough. Inactive by default —wrangler.toml's[triggers]block is commented out, so nothing fires until someone explicitly activates it.Why
Public repos on round-boundary crons get deprioritized under load. Recent gap pattern (UTC):
The offset is a free one-line change that typically recovers a meaningful chunk of dropped slots. The dormant worker is the next escalation lever if the offset alone isn't enough — Cloudflare Workers cron triggers fire reliably (sub-minute precision).
The workflow's
git diff --quiet data/benchmarks.json && exit 0step makes duplicate invocations harmless, so once activated, both can fire concurrently without polluting history.Plan to evaluate
gh run list --workflow=update-benchmarks.yml --limit 50to compare gap distribution.infra/benchmark-trigger/README.mdto activate the worker. Otherwise leave dormant.Test plan
bun run typecheck)wrangler deploy --dry-run:13or:43slot🤖 Generated with Claude Code