Building Self Driving Cars with Bazel - Part 2: Scaling
summary
BMW reports a Bazel migration from ~200 repos into a git monorepo with ~40 submodules, hosting ~300,000 targets and 200+ GB of externals; CI runs ~80k builds/day, peak 33k vCPUs (was ~3k), and supports 8 ECUs and ~6,500 committers. CI uses Zuul with dynamic VMs and prebuilt disk images containing Bazel outputs, regional buildb caches, and tooling like smart retry to auto-retry infra failures, smart target picking to build only affected targets, an autosheriff for flaky tests, and a track-and-fix flow to find regressions while wrestling seven‑figure cloud costs.
AI-written summary · about
chapters (11)
- 0:00Scaling self-driving car builds
- 3:56From 200 repos to virtual monorepo
- 7:06CI with Zuul and dynamic nodes
- 9:36Premerge pipeline and fast feedback
- 12:46Caching strategies for large workspaces
- 15:35Deterministic and hermetic builds
- 17:23Detecting flaky tests
- 19:32Tracking broken tests
- 20:33Monitoring Bazel builds
- 21:37Future challenges
- 24:48Thanks to Bazel community
related talks
53mContinuous Integration and Testing of a Yocto Project Based Automotive Head Unit
42mYocto Project Autobuilders and the SWAT Team
20mDriving Intelligence: The Software Shift Shaping Tomorrow’s Cars
29mPigweed and Bazel for Embedded Development
34mKubernetes in Your 4x4 – Continuous Deployment Directly to the Car
20m96Boards - Autoware: 1 year on
26mDevOps Insights for the Executable Digital Twin
24mCan't Touch This!: When Things go Wrong With an Appliance
