Skip to content

fix(ci): bazel-remote-gates → shared-cache-backed (unbreak all PR gates)#227

Merged
Jesssullivan merged 4 commits into
mainfrom
fix/gates-shared-cache-substrate
Jul 14, 2026
Merged

fix(ci): bazel-remote-gates → shared-cache-backed (unbreak all PR gates)#227
Jesssullivan merged 4 commits into
mainfrom
fix/gates-shared-cache-substrate

Conversation

@Jesssullivan

@Jesssullivan Jesssullivan commented Jul 14, 2026

Copy link
Copy Markdown
Owner

Restores a truthful, green gates lane for every PR. Three coupled fixes (each alone leaves gates red somewhere):

  1. Substrate honesty (ci.yml, bazel-cache-backed.sh): the GF exchange denies executor tokens off refs/heads/main, and this repo's GF consumer-registry entry is substrate_mode: shared-cache-backed (latch remote_processes: 0) — so the lane now requests cache-write on trusted main pushes, cache-read on PR refs (proven live on this PR: token minted: mode=cache-read), strips BAZEL_REMOTE_EXECUTOR*, and skips cache uploads under read-only tokens.
  2. rules_tectonic 0.1.0 → 0.2.1 (MODULE.bazel + lock): 0.1.0's tectonic actions hard-fail in the local sandbox (Read-only file system, os error 30) — they only ever passed on GF executors. 0.2.1 (released + registry-promoted today: rules_tectonic v0.2.1, bazel-registry feat(pulse): add client identity stubs #100) stages an action-private writable cache/HOME.
  3. cv e2e alignment (e2e/cv.spec.ts): main has carried 2 genuinely failing assertions since 81655ce scrubbed the private spear-resumes "View TeX Source" link; the specs now assert the link stays scrubbed (count 0).

Unblocks #216, #217, #224, #225, #226. Merge on genuine green only.

The GF exchange stopped granting executor tokens to this repo's PR refs
(and the consumer registry now records substrate_mode=shared-cache-backed,
latch remote_processes=0), so the gates lane's hard executor requirement
has structurally redded every PR since ~07-10 while main stayed green.

Request cache-write on trusted main pushes, cache-read on PR refs, strip
the executor attachment for mode/endpoint agreement, and skip cache
uploads under read-only tokens.
@Jesssullivan

Copy link
Copy Markdown
Owner Author

The cache-read mint fix is confirmed: token exchange and attachment passed on this PR. The next red is deterministic local-execution fallout, not the token policy: Tectonic inherited read-only /root and failed all three CV builds. #228 includes this same substrate correction plus writable stable action paths, upload-policy contract coverage, and source-of-truth docs; its local CV target passes. Holding this PR to avoid two writers while #228 validates the complete chain.

The executor image shipped /bin/chromium; the local lane has no browser.
Install playwright's chromium (with system deps) when no system browser
exists, cache it, and pass the resolved path through --test_env instead
of hardcoding the executor path in .bazelrc.
@Jesssullivan
Jesssullivan merged commit 6deec66 into main Jul 14, 2026
6 checks passed
@Jesssullivan
Jesssullivan deleted the fix/gates-shared-cache-substrate branch July 14, 2026 10:39
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