ci: the short jobs run on the quick label, which a runner kept for them always has free #129

Merged
HumanBean merged 1 commit from HumanBean/Longshot:ci/quick-runner into main 2026-11-13 05:56:45 +00:00
Owner

Why

A pull request's short checks (title, description, sources) waited behind full release builds on the one runner, sometimes for an hour. They now ask for the quick label, which a runner kept for them always has free.

What changed

  • ci.yml's title check and actionlint, pr-description.yml, third-party.yml's check and release.yml's The version: runs-on: quick.
  • docs/forgejo-runners.md: the quick label in the table, and how to keep a runner for it.
  • tests/test_check_pr_description.py: checks the description job is on quick.
  • On the server (already done): a second runner, unraid-quick-1, label quick only, capacity 1, on the same machine and Docker; the main runner (capacity 3) gets quick too, so quick jobs can go to either and builds never take the kept one.

Flags and settings

None

Measurements

main: 341d63a4 (2026-11-13)
this PR: ci/quick-runner @ 0254b640

main @ 341d63a4 this PR @ 0254b640
a PR's description check while builds are queued waits for a free slot (up to the length of a build) starts on the kept runner at once

(From the queue on 2026-11-13: 19 runs waiting, the PR checks behind a release build. Seen on this PR's own checks.)

Testing

Tested: the tests that read the workflows (test_check_pr_description, test_windows_on_linux, test_linux_docker_packages, test_appimage_*; the launcher's test_release); actionlint has no finding for the label. The quick runner is registered and declared [quick].

Not tested: none other.

Needs other testers: None

Screenshots

Nothing on screen

Risk and rollback

If no runner had quick, these jobs would queue; both runners have it. Reverting the commit is enough.

Checklist

For everyone

  • One topic.
  • The title is a Conventional Commit (type(scope): description).
  • Rebased on current main.
  • python -I -B tests/run_all.py run and passing (any failure that also fails on main is named above).
  • Tested in the game, or what wasn't is named under Testing.
  • Testing filled in: what was tested, what wasn't, and what needs other testers (with test requests).
  • Measured: main and this PR at named commits, on the same PC, scene and settings, at least 2 interleaved runs each, the median reported.
  • No game files, dumps, build output or generated files.
  • third_party/ untouched (a new folder with a PROVENANCE.md instead).
  • The license is OK: GPL-3.0-or-later, nothing incompatible and nothing decompiled.
## Why A pull request's short checks (title, description, sources) waited behind full release builds on the one runner, sometimes for an hour. They now ask for the `quick` label, which a runner kept for them always has free. ## What changed - `ci.yml`'s title check and actionlint, `pr-description.yml`, `third-party.yml`'s check and `release.yml`'s *The version*: `runs-on: quick`. - `docs/forgejo-runners.md`: the `quick` label in the table, and how to keep a runner for it. - `tests/test_check_pr_description.py`: checks the description job is on `quick`. - On the server (already done): a second runner, `unraid-quick-1`, label `quick` only, capacity 1, on the same machine and Docker; the main runner (capacity 3) gets `quick` too, so quick jobs can go to either and builds never take the kept one. ## Flags and settings None ## Measurements main: 341d63a4 (2026-11-13) this PR: ci/quick-runner @ 0254b640 | | main @ 341d63a4 | this PR @ 0254b640 | |---|---|---| | a PR's description check while builds are queued | waits for a free slot (up to the length of a build) | starts on the kept runner at once | (From the queue on 2026-11-13: 19 runs waiting, the PR checks behind a release build. Seen on this PR's own checks.) ## Testing **Tested:** the tests that read the workflows (`test_check_pr_description`, `test_windows_on_linux`, `test_linux_docker_packages`, `test_appimage_*`; the launcher's `test_release`); actionlint has no finding for the label. The quick runner is registered and declared `[quick]`. **Not tested:** none other. **Needs other testers:** None ## Screenshots Nothing on screen ## Risk and rollback If no runner had `quick`, these jobs would queue; both runners have it. Reverting the commit is enough. ## Checklist ### For everyone - [x] One topic. - [x] The title is a Conventional Commit (`type(scope): description`). - [x] Rebased on current `main`. - [x] `python -I -B tests/run_all.py` run and passing (any failure that also fails on `main` is named above). - [x] Tested in the game, or what wasn't is named under Testing. - [x] Testing filled in: what was tested, what wasn't, and what needs other testers (with test requests). - [x] Measured: main and this PR at named commits, on the same PC, scene and settings, at least 2 interleaved runs each, the median reported. - [x] No game files, dumps, build output or generated files. - [x] `third_party/` untouched (a new folder with a `PROVENANCE.md` instead). - [x] The license is OK: GPL-3.0-or-later, nothing incompatible and nothing decompiled.
ci: the short jobs run on the quick label, which a runner kept for them always has free
Some checks failed
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been skipped
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been skipped
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been skipped
Third-party parts / The same as upstream (pull_request) Has been skipped
CI / Conventional Commit title (pull_request) Successful in 8s
CI / Workflow lint (actionlint) (pull_request) Failing after 10s
Third-party parts / As their notes say (pull_request) Successful in 15s
PR description / Description follows the template (pull_request_target) Successful in 3s
0254b640ed
HumanBean deleted branch ci/quick-runner 2026-11-13 05:56:45 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
MagicBeanDev/Longshot!129
No description provided.