CI With Bazel (Why Selenium is Using It & You Should Too)
summary
Selenium moves a polyglot codebase into a single monorepo and replaces custom and Facebook tooling with Bazel to get reproducible, hash-based builds, fine-grained dependency graphs and remote caching / distributed builds. Result: local clean builds drop to ~2–3 minutes with incremental builds to ~11 seconds, CI uses a target-determination script to run only affected tests, and a demo runs 653 tests with all results fetched from cache (zero reruns) saving roughly an hour.
AI-written summary · about
chapters (16)
- 0:00Start
- 2:06How the source is organised
- 3:57How the Selenium 1.0 build worked
- 9:15Buck and CrazyFun
- 10:31Why change our build tool?
- 12:28What is a build?
- 13:25Implicit inputs
- 17:45Caching and distribution
- 18:51Polyglot bulds
- 21:12Making onboarding less painful
- 22:34Buld graphs
- 23:47Buid rules
- 24:47Buiding and testing
- 29:02Introspecting the buld graph
- 31:38Better target determination
- 33:37Distributed buids and tests








