6.5 Bazel CI at Scale
Sections in this chapter · 9
Use this before building or choosing an affected-target service to define its inputs, outputs, scope, explanations, and explicit unknown result.
Compare compatible base and head graph snapshots, then trace their differences to requested roots with evidence for selected, omitted, or unknown results.
Use this when BUILD, Starlark, bazelrc, module, lockfile, repository-extension, platform, or toolchain changes can make a source-only affected set dangerously incomplete.
Use this when select(), transitions, platforms, toolchains, or multiple top-level roots make one target graph an incomplete picture of CI work.
Detect when delete, rename, stale, missing, or incompatible selector evidence cannot justify an empty affected-target result.
Use this when choosing fallback, shadow validation, and a maintained selector implementation without allowing uncertainty or product limits to produce false-green CI.
Use this when partitioning selected work across jobs without omissions, duplicate accounting, or confusion with Bazel test sharding and RBE.
Use this when a green dashboard may still be missing an attempt, shard, event, log, profile, output, or referenced artifact.
Use this when retaining checkout, Bazel server, output base, caches, or credentials between CI jobs without contaminating the next build.