Left from #184 B. runner next claims the oldest pending build among
the repositories the key may take, instance-wide for a full-scope admin
key. One repository with a deep queue holds every other repository the
same runner serves; bay1's own reading was a claim wait averaging 15
minutes on a day of MR stacks, all from one repository.
Since v1.17.0 a runner key is confined to its attachments, so the question is narrower than it was: it matters only for a runner attached to several repositories, or an operator's admin runner. Decide:
- Leave oldest-first and document it: a runner serving one repository cannot be starved, and an operator who wants isolation runs two.
- Or rotate across repositories in the candidate set: take the oldest
build of the repository that has waited longest since its last claim,
so one queue cannot hold the rest.
ClaimBuildgrows a subquery; the scoped test and the push-shape table on the CI wiki page carry the rule.
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