Skip to content

ci: start a local CI step only when admitted, so steps waiting for memory never wait on each other - #9

Merged
lucidprogrammer merged 1 commit into
devfrom
ci/local-ci-admission
Nov 10, 2026
Merged

lucidprogrammer merged 1 commit into
devfrom
ci/local-ci-admission

Conversation

@lucidprogrammer

@lucidprogrammer lucidprogrammer commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

scripts/ci-local.py runs the pull-request workflow on a build host with each job boxed like a hosted runner, and starts a step only while the boxes' shared memory has room. A step marked itself as running before it waited for that room, so two steps waiting at once each saw the other as running and both waited forever; the same held for two jobs waiting to rerun after the host ran out of memory.

What changes

  • A step takes its running unit only when it is admitted, under the runner's lock, so a waiting step never counts as a running one.
  • A job waiting to rerun counts only boxes that are running a step, not other boxes that are also waiting.

Verification

@lucidprogrammer
lucidprogrammer merged commit 64660ce into dev Nov 10, 2026
33 of 39 checks passed
@lucidprogrammer
lucidprogrammer deleted the ci/local-ci-admission branch November 10, 2026 06:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant