Per-account limits on queued builds and schedule intervals #206

closed cmc opened this on 2026-09-10 00:48 UTC

Discussion

cmc 2026-09-10 00:48 UTC

Left from #184 B. A .gitbay/ci.yml queues builds without bound: any account can push a job with schedule: "* * * * *" and nothing caps what it queues. Since v1.17.0 a build runs only on a runner its owner attaches, so the cost is no longer compute; it is rows in builds, statuses, the reaper's work, and the queue numbers on admin runners that a stranger can inflate. Rows nothing claims stay pending forever.

Decide and, if yes, implement:

  • Builds queued at once per account, counting pending; a push or a schedule tick past the cap records a skipped-style status that says why, rather than queueing.
  • A floor on schedule intervals (the cron parser accepts one minute).
  • Build minutes per day, only if a runner the operator owns builds other people's repositories; with attachment that is per-operator policy, and may be a documented no.
  • Same shape and place as admin user limits (--builds <n>|default, --schedule-floor <d>|default), stored beside the repository and storage caps, with a wiki row on Admin and the FAQ.

Ref #184

referenced in commit 7a667c7b40 by cmc: wiki: claim order and the missing per-account cap, as open decisions

2026-09-10 01:12 UTC

closed by commit 4effb29e57 by cmc: ci, hookd, wiki: a schedule tick queues nothing while the job's last build is pending

2026-09-10 02:10 UTC