Repository navigation
ci(dogfood): canary the R2 cache read path via MINIMAL_REMOTE_CACHE_URL - #667
Conversation
Point the one package-cache-reading CI job (`dogfood` → `minimal run build-smoke`) at the Cloudflare R2 mirror (`https://cache.minimal.farm/`) to validate the read-path migration end to end (build-servers#145): GCS egress should collapse on this job with cache hit-rate parity and zero sha256 mismatches, while every other job stays on GCS as the control. Scoped to the smoke-test step only — `setup-minimal` fetches the CLI from the separate shim bucket (unaffected), and `minimal --no-fetch check` reads no remote cache. The mutable `index.shisha` is bypassed to GCS at the edge (infra#277), so it never freezes through Sippy. Rollback is deleting the `env` block (reader falls back to the GCS client). This PR's own `dogfood` run exercises the canary, so CI here is the first live test of reading the cache over R2. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThe dogfood CI workflow adds ChangesMinimal cache configuration
Estimated code review effort: 1 (Trivial) | ~3 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Comment |
There was a problem hiding this comment.
I dont think the minimal binary thats run here is a recent one, but lets get this in and soon i'll switch it to mip
|
This PR has been waiting for review for 5 days. A maintainer probably If the PR is intentionally on hold, consider converting it to a draft bryan-minimal, anything blocking from your side?
|
# Conflicts: # .github/workflows/ci.yml
Points the one package-cache-reading CI job at the Cloudflare R2 mirror to validate the read-path migration end to end (build-servers#145 / minimal#643). This is the canary.
What
The
dogfoodjob (minimal run build-smoke) is the only job in this repo that reads the shared package cache on every push/PR — so itsminimal runstep now setsMINIMAL_REMOTE_CACHE_URL=https://cache.minimal.farm/. Everything else stays on GCS as the control.setup-minimalfetches the CLI from the separate shim bucket (a different bucket, unaffected by this var), andminimal --no-fetch checkreads no remote cache. So this is a clean A/B:dogfoodreads artifacts from R2, all other jobs read from GCS.index.shishais bypassed to GCS at the edge (infra#277 — verified:cache.minimal.farm/index.shishareturnsno-storeand matches GCS byte-for-byte), so it never freezes through Sippy. Only the immutable, content-addressed artifacts come from R2.dogfoodrun is the first live test — if reading artifacts over R2 breaks or misses, this PR's CI shows it before merge.Why (the point)
GCS cache egress is
99% of the bill ($460/mo, almost all CI reads). R2 egress is $0. This canary measures whether pointing reads at R2 collapses that egress with hit-rate parity and zero sha256 mismatches, before rolling it out more broadly.Rollback
Delete the
envblock → the reader falls back to the GCS client (default, unchanged). Trailing slash on the URL is required (Url::joinfootgun).Not in scope
Writes stay on GCS. The shim/CLI bucket stays on GCS. Broader rollout (more jobs, or baking the default) comes after this canary shows the egress collapse holds.
🤖 Generated with Claude Code
Summary by CodeRabbit