Skip to content

Commit 290e52c

Browse files
authored
fix(ci): build app on 16vcpu runner to stop cold-cache OOM kills (#5944)
1 parent 6ec2385 commit 290e52c

1 file changed

Lines changed: 10 additions & 3 deletions

File tree

.github/workflows/test-build.yml

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -197,11 +197,18 @@ jobs:
197197
# harmless), but the Turbo cache gets its own key: with a shared key, only
198198
# the last committer's new entries survive each run, so the test and build
199199
# Turbo entries would evict each other nondeterministically.
200-
# Same next build as the app image, so it needs the same larger runner in
201-
# GitHub mode: it peaks ~21.9 GB and SIGKILLs on the free 16 GB ones.
200+
# Same next build as the app image, so it needs a large runner. Peak RSS
201+
# tracks Turbo/Turbopack cache warmth, and it is the COLD case that sizes the
202+
# runner: warm peaks ~12 GB, partial ~28 GB, and a cold full rebuild peaked
203+
# 51 GB. The 8vcpu tier only has 30.4 GB, so cold-cache runs OOM-killed the VM
204+
# (oom_count 1, memory p100 ~30.5 GB, ~99% of the tier) — the job burned 8-15
205+
# min and died, while warm runs finished under 8 min. NODE_OPTIONS'
206+
# --max-old-space-size only caps Node's JS heap; the bulk is native Turbopack
207+
# worker memory, so the cap cannot prevent this. 16vcpu = 60.8 GB fits the
208+
# 51 GB cold peak with headroom. Keep the test job on 8vcpu; its memory is fine.
202209
build:
203210
name: Build App
204-
runs-on: ${{ (vars.CI_PROVIDER == '' || vars.CI_PROVIDER == 'blacksmith') && 'blacksmith-8vcpu-ubuntu-2404' || 'linux-x64-8-core' }}
211+
runs-on: ${{ (vars.CI_PROVIDER == '' || vars.CI_PROVIDER == 'blacksmith') && 'blacksmith-16vcpu-ubuntu-2404' || 'linux-x64-8-core' }}
205212
timeout-minutes: 15
206213

207214
steps:

0 commit comments

Comments
 (0)