Commit Graph
5 Commits
Author SHA1 Message Date
Hanif Kohandraistlin7447 bffb5116a5 Stop Holding Runners for a Pull Request's Universal Build and Tests
Holding two runners from a pull request's second arch until its
universal build and tests finished kept one idle through the slower
arch's build. Replaying the week of 10-03 against the real queue, that
idle capacity pushed the median pull request from under three hours to
over sixteen. Those jobs take minutes, so they now queue like any other
job, and a pull request holds a runner only for an arch that is still
building. Each arch then always needs exactly one runner.

Co-authored-by: raistlin7447 <kris.austin@gmail.com>
2026-10-11 05:49:13 +08:00
Hanif Kohandraistlin7447 dca9b96ab2 Let Each macOS Arch In on Its Own Without Holding an Idle Runner
Letting a pull request run in whole deadlocks when its second arch
reaches the line behind another pull request: the run holds two
runners, the pull request in front waits for them, and the second arch
never gets to check. Each arch now waits on its own. A run with one
arch let in holds a runner only until that arch's app build is done,
and a run with both holds two until its universal build and tests
finish, so whoever is first in line always gets in eventually.

Co-authored-by: raistlin7447 <kris.austin@gmail.com>
2026-10-11 05:49:13 +08:00
Hanif Kohandraistlin7447 83e0253dc8 Let a Labelled Pull Request Go Ahead of the macOS Line
A pull request labelled macos-priority when its run starts waits in its
own line under the same rule, and the normal line counts every priority
run still waiting as holding two runners, so the next free runners go
to it. It still waits for runners in use and for main's reserve.

Co-authored-by: raistlin7447 <kris.austin@gmail.com>
2026-10-11 05:49:13 +08:00
Hanif Kohandraistlin7447 d4986e44bd Count Pending Runs That Hold macOS Runners
Co-authored-by: raistlin7447 <kris.austin@gmail.com>
2026-10-11 05:49:13 +08:00
Hanif Kohandraistlin7447 9f25c89994 Hold Pull Request macOS Builds Until a Runner Is Free
A pull request's macOS build now waits in one repo-wide line, from a
Linux job, until the macOS runners every active Build all run holds or
still needs leave two free. A run is let in whole: its first arch takes
both runners and its second goes straight through, since letting arches
in one at a time deadlocks with every runner held by a run waiting for
its other arch. Push, nightly and manual runs reserve two runners until
their macOS work is done, and a pull request run keeps its two until its
universal build and tests finish, so jobs that never pass the line are
accounted for. Queued jobs count as busy. API errors and a four-hour
limit let the build in rather than block it.

Co-authored-by: raistlin7447 <kris.austin@gmail.com>
2026-10-11 05:49:13 +08:00