Skip to content

Commit 62c5ec5

Browse files
committed
docs(ci): correct the app-image runner sizing rationale with measured numbers
The comment justified 16 vCPU by claiming both dominant steps scale with cores. Only one does. Measured across two runs that restored the same sticky-disk parent snapshot, so runner size was the only variable: [builder 5/6] next build 490.5s -> 143.9s (3.4x) [deps 4/4] bun install+gyp 465.3s -> 547.2s (no gain) The deps layer is a bun install plus a node-gyp rebuild pinned to JOBS=4 to avoid an OOM, so cores cannot help it. This matters because end-to-end duration says the opposite. The deps layer misses the Docker cache on nearly every run, and that ~500s swing swamps the 3.4x -- the one 16 vCPU sample (965s) lands mid-spread of the 8 vCPU samples (766/778/1020/1167s), which reads as "no win" and invites a revert that would throw away a real one. The miss is upstream: all five image builds share one Blacksmith sticky disk (setup-docker-builder keys it on GITHUB_REPO_NAME alone), so consecutive app builds restore the same parent snapshot and each one's cache commit is discarded. Comment-only; no behavior change.
1 parent 258a37c commit 62c5ec5

1 file changed

Lines changed: 11 additions & 6 deletions

File tree

.github/workflows/ci.yml

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -159,12 +159,17 @@ jobs:
159159
# 16 GB one (exit 137). The others build in <5 min and idle at 12-15%
160160
# CPU on 8 vCPU, so they stay on the smaller tiers.
161161
#
162-
# 16 vCPU on Blacksmith because this build is the critical path to a
163-
# deploy — nothing ships until the image is pushed — and its two
164-
# dominant steps both scale with cores (`bun install` ~300-400s, `next
165-
# build` ~260s). The same `next build` runs on 16 vCPU in the separate
166-
# Build App verification job, which does not gate anything; this one
167-
# was doing comparable work on half the cores.
162+
# 16 vCPU: this build gates every deploy, and `next build` scales with
163+
# cores — 490.5s to 143.9s, measured across two runs that restored the
164+
# same sticky-disk snapshot, so runner size was the only variable. The
165+
# deps layer does not scale (465.3s to 547.2s): it is `bun install`
166+
# plus a node-gyp rebuild pinned to JOBS=4. Size this on `next build`.
167+
#
168+
# Size it on step times, never end-to-end: deps misses the Docker cache
169+
# on nearly every run, and that ~500s swing hides the 3.4x. All five
170+
# image builds share one Blacksmith sticky disk (the action keys it on
171+
# GITHUB_REPO_NAME alone), so consecutive app builds restore the same
172+
# parent snapshot and each one's cache commit is discarded.
168173
- dockerfile: ./docker/app.Dockerfile
169174
ecr_repo_secret: ECR_APP
170175
gh_runner: linux-x64-8-core

0 commit comments

Comments
 (0)