perf(ci): cut warm CI time via download-skipping, splat reuse, PR gating
Four levers on top of the green pipeline: - kata jobs pass --remote_download_toplevel, so fully cache-hit builds stay metadata-only instead of pulling every intermediate artifact from bazel-remote (the bulk of the previous 6-minute TS-only main runs). - the xwin MSVC splat caches its ~1GiB CDN payload on the runner-cache PVC (OMP_XWIN_CACHE_DIR), instead of re-downloading per ephemeral pod. - main-push rust jobs export their bazel disk cache to the GitHub cache (once per lockfile change, shared linux scope). GitHub only shares default-branch caches across PRs, and main runs on kata where actions/cache never saved — so every fresh PR was building cold. - TS-only pull requests skip Rust validation entirely (gh pr diff path gate); their test jobs restore addons from the main-exported cache. Export runs disable top-level-only downloading: remote hits would otherwise export action entries whose blobs were never materialized.
This commit is contained in:
@@ -412,7 +412,14 @@ bazel build \
|
||||
On omp-kata the credentials come from the injected pod env
|
||||
(`bazel-remote-ci` secret) and `.github/actions/bazel-cache` composes the rc
|
||||
fragment. GitHub-hosted jobs get the disk-cache branch of the same action —
|
||||
no remote endpoint, no credentials, no infrastructure knowledge.
|
||||
no remote endpoint, no credentials, no infrastructure knowledge. The bridge
|
||||
between the two worlds is the **disk-cache export**: main-push rust jobs
|
||||
write a bazel disk cache alongside the remote cache and save it to the
|
||||
GitHub Actions cache (once per lockfile change, `linux` scope). GitHub only
|
||||
shares caches from the default branch across pull requests, so this export
|
||||
is what keeps PR builds warm; kata jobs otherwise skip artifact downloads
|
||||
entirely (`--remote_download_toplevel`), and the xwin MSVC splat persists on
|
||||
the runner-cache PVC (`OMP_XWIN_CACHE_DIR`).
|
||||
|
||||
**(b) Cargo registry cache** - the scale-set pod template mounts only the
|
||||
immutable download cache and sparse index at
|
||||
|
||||
Reference in New Issue
Block a user