Skip to content

Commit 52caf23

Browse files
os-zhuangclaude
andauthored
chore(ci): lint.yml typecheck falls back to build-core's turbo cache (#5401) (#5542)
Only main writes the Turbo cache, so a merge_group entry always restores by PREFIX. This job's chain covered only its own job namespace, which has a window where that prefix matches nothing at all: the previous main generation is already gone while the current one is still being written. Measured 2026-08-05 (run 30985524210, job 92239260750): at 07:34:18Z all three keys reported "Cache not found" and "Build workspace packages" went from 4s to 4m54s, while the very same queue entry's ci.yml jobs hit `-main-f417863f` in that same minute. build-core's entry survives the window - its main-push save completed 07:32:50Z, 88s earlier - and `pnpm build` (turbo run build --filter=!@objectstack/docs) is a superset of this job's build step. Adds the two build-core fallbacks the Temporal Conformance / Dogfood Verify / Console Pin jobs in ci.yml already carry, spelled byte-identically. The writer is untouched: "Save Turbo cache (main only)" keeps its condition and key, so the single-writer discipline is unchanged. Claude-Session: https://claude.ai/code/session_01BWS4heBoAitLmzCLhcYdbK Co-authored-by: Claude <noreply@anthropic.com>
1 parent d7e07c8 commit 52caf23

1 file changed

Lines changed: 21 additions & 0 deletions

File tree

‎.github/workflows/lint.yml‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -405,6 +405,25 @@ jobs:
405405
# Restore-only on PRs (same policy as ci.yml): PR-side saves churned the
406406
# 10 GB Actions cache pool and evicted the main seeds; only main pushes
407407
# save (the "Save Turbo cache" step at the end of the job).
408+
#
409+
# The build-core fallbacks are #5401. Only main writes, so a merge_group
410+
# entry always restores by PREFIX — and this job's own namespace has a
411+
# window where that prefix matches nothing: the previous main generation
412+
# is already gone while the current one is still being written (measured
413+
# 2026-08-05, run 30985524210 — all three keys reported "Cache not found"
414+
# at 07:34:18Z and the workspace build went 4s -> 4m54s, while the very
415+
# same queue entry's ci.yml jobs hit `-main-f417863f` in that same
416+
# minute). build-core's entry is the one that survives that window: its
417+
# main-push save had completed at 07:32:50Z, 88s earlier, and `pnpm
418+
# build` (turbo run build --filter=!@objectstack/docs) is a SUPERSET of
419+
# this job's build step, so the entries it carries are the ones this
420+
# build needs — same reasoning as the fallbacks the Temporal
421+
# Conformance / Dogfood Verify / Console Pin jobs already carry in
422+
# ci.yml, whose spelling these two lines match exactly.
423+
#
424+
# Partial by construction, and that is the honest expectation: it warms
425+
# the `build` tasks, not the `typecheck` tasks (build-core never runs
426+
# those, so nothing seeds them outside this job's own namespace).
408427
- name: Restore Turbo cache
409428
uses: actions/cache/restore@v6
410429
with:
@@ -413,6 +432,8 @@ jobs:
413432
restore-keys: |
414433
${{ runner.os }}-turbo-${{ github.job }}-${{ github.ref_name }}-
415434
${{ runner.os }}-turbo-${{ github.job }}-
435+
${{ runner.os }}-turbo-build-core-${{ github.ref_name }}-
436+
${{ runner.os }}-turbo-build-core-
416437
417438
- name: Install dependencies
418439
run: pnpm install --frozen-lockfile

0 commit comments

Comments
 (0)