Skip to content

ci: make the .113 omni-build slot opt-in (USE_VPS_BUILD_RUNNER) - #16833

Merged
diegosouzapw merged 1 commit into
release/v3.8.52from
ci/vps-build-runner-gate
Oct 16, 2026
Merged

diegosouzapw merged 1 commit into
release/v3.8.52from
ci/vps-build-runner-gate

Conversation

@diegosouzapw

Copy link
Copy Markdown
Collaborator

Summary

  • Every job that targets the .113 omni-build slot (ci.yml Build, docker-publish amd64 build, npm-publish publish, nightly-release-green release-green/main-green, nightly-v4-build build, preview-artifact build) now needs both USE_VPS_RUNNER and the new repo variable USE_VPS_BUILD_RUNNER set to 'true'. Unset (the default) = the hosted fallback each job already had.
  • The ci.yml Turbopack switch (OMNIROUTE_USE_TURBOPACK) mirrors the new runner condition, so the hosted fallback keeps building with webpack.
  • The docker-publish runner-preflight and the nightly runner-alert follow the same switch: a deliberately parked build pool is not an outage and must not red the publish or open the offline issue.

Why

Since 2026-10-06 no Build has passed on omniroute-113-5 (~200 Failed/Canceled; last success 2026-10-05). The Turbopack next-build grows to 16–41 GB on the 32-core box and the guest OOM-killer takes it (CONSTRAINT_NONE — the whole 47 GB VM, not the runner's MemoryMax), after 17–90 min of swap/page-cache thrash (~520 MB/s reads, queue depth 65) on the host NVMe. The same build passes in 8–12 min on the hosted runner (webpack, fork PRs). The slot is single (#12048), so same-repo PRs waited up to 12 h behind it only to fail.

Re-enable the box after the build is fixed there: gh variable set USE_VPS_BUILD_RUNNER --body true.

Related Issues

Target Branch

  • Base is the active release/v3.8.x branch (the highest open release/v*), not main

Validation

  • Change type: build-deploy (CI workflows only)
  • Focused tests: tests/unit/vps-build-runner-gate.test.ts, tests/unit/build/heavy-build-queue.test.ts, tests/unit/vps-runner-variable-scope.test.ts, tests/unit/docker-publish-runner-preflight-14560.test.ts, tests/unit/check-workflows-provenance-runner.test.ts, tests/unit/docker-publish-stale-digests-15184.test.ts, tests/unit/quality-rail-gate-membership.test.ts — 27/27 pass
  • eslint + prettier on the touched files; pre-commit checks (git identity, gate manifest, docs-sync, any-budget, tracked artifacts, ai-attribution) pass
  • check:workflows (actionlint + zizmor) — not installed locally, runs in this PR's CI

Tests Added Or Updated

  • Added tests/unit/vps-build-runner-gate.test.ts (written first; failed listing the 7 ungated jobs, then green).
  • No production code changed.

Reviewer Notes

Since 2026-10-06 every Build that landed on omniroute-113-5 died: the
Turbopack `next-build` grew to 16-41 GB on the 32-core box and the guest
OOM-killer took it (CONSTRAINT_NONE, the whole 47 GB VM). ~200 runs in a
row, each swap-thrashing 17-90 min, while the same build passes in 8-12
min on the hosted runner (webpack, fork PRs). The slot is single (#12048),
so same-repo PRs queued up to 12 h behind it only to fail.

Every `omni-build` job now needs USE_VPS_RUNNER *and* USE_VPS_BUILD_RUNNER
== 'true'; unset = hosted fallback, so a parked build box can no longer
stall publishes. The ci.yml Turbopack switch mirrors the new condition,
and the docker-publish preflight / nightly offline alert follow the same
switch (a deliberately parked pool is not an outage). Re-enable the box
with `gh variable set USE_VPS_BUILD_RUNNER --body true`.
@diegosouzapw
diegosouzapw merged commit 123849b into release/v3.8.52 Oct 16, 2026
14 checks passed
diegosouzapw added a commit that referenced this pull request Oct 16, 2026
Same change as #16833 (release/v3.8.52), applied to main's own workflow
files: main pushes still routed Docker publish, npm publish and
Release-Green to the omni-build slot, which is parked.

Since 2026-10-06 every Build that landed on omniroute-113-5 died: the
Turbopack `next-build` grew to 16-41 GB on the 32-core box and the guest
OOM-killer took it (CONSTRAINT_NONE, the whole 47 GB VM). ~200 runs in a
row, each swap-thrashing 17-90 min, while the same build passes in 8-12
min on the hosted runner (webpack).

Every `omni-build` job now needs USE_VPS_RUNNER *and* USE_VPS_BUILD_RUNNER
== 'true'; unset = hosted fallback, so a parked build box can no longer
stall publishes. Re-enable with
`gh variable set USE_VPS_BUILD_RUNNER --body true`.
diegosouzapw added a commit that referenced this pull request Oct 16, 2026
…R) (#16835)

ci: make the .113 omni-build slot opt-in on main (USE_VPS_BUILD_RUNNER)

Same change as #16833 (release/v3.8.52), applied to main's own workflow
files: main pushes still routed Docker publish, npm publish and
Release-Green to the omni-build slot, which is parked.

Since 2026-10-06 every Build that landed on omniroute-113-5 died: the
Turbopack `next-build` grew to 16-41 GB on the 32-core box and the guest
OOM-killer took it (CONSTRAINT_NONE, the whole 47 GB VM). ~200 runs in a
row, each swap-thrashing 17-90 min, while the same build passes in 8-12
min on the hosted runner (webpack).

Every `omni-build` job now needs USE_VPS_RUNNER *and* USE_VPS_BUILD_RUNNER
== 'true'; unset = hosted fallback, so a parked build box can no longer
stall publishes. Re-enable with
`gh variable set USE_VPS_BUILD_RUNNER --body true`.
@github-actions

Copy link
Copy Markdown
Contributor

CI Coverage Report

  • Coverage job: skipped
  • PR test policy: success

Coverage artifact was not available for this run.

@diegosouzapw
diegosouzapw deleted the ci/vps-build-runner-gate branch October 18, 2026 23:48
arashashrafii pushed a commit to arashashrafii/OmniRoute that referenced this pull request Oct 24, 2026
…R) (cheaper-inference#16835)

ci: make the .113 omni-build slot opt-in on main (USE_VPS_BUILD_RUNNER)

Same change as cheaper-inference#16833 (release/v3.8.52), applied to main's own workflow
files: main pushes still routed Docker publish, npm publish and
Release-Green to the omni-build slot, which is parked.

Since 2026-10-06 every Build that landed on omniroute-113-5 died: the
Turbopack `next-build` grew to 16-41 GB on the 32-core box and the guest
OOM-killer took it (CONSTRAINT_NONE, the whole 47 GB VM). ~200 runs in a
row, each swap-thrashing 17-90 min, while the same build passes in 8-12
min on the hosted runner (webpack).

Every `omni-build` job now needs USE_VPS_RUNNER *and* USE_VPS_BUILD_RUNNER
== 'true'; unset = hosted fallback, so a parked build box can no longer
stall publishes. Re-enable with
`gh variable set USE_VPS_BUILD_RUNNER --body true`.

(cherry picked from commit e62b4b7)
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