Making Testing C++ Binaries Practical @ Facebook Scale: A CI Story
summary
Facebook scales C++ CI by using Buck-style build graph queries and object-file caching to cut work dramatically: limiting reverse-dependency traversal to two hops then taking the closest N dependent targets reduces builds to ~20% of baseline while trunk failure rate stays within noise and P99 feedback latency drops. A warmed, centralized cache and periodic full cron runs create a warm revision; an experimental diff batching layer coalesces concurrent diffs to eliminate redundant jobs.
AI-written summary · about
chapters (12)
- 0:00Introduction and context
- 1:53From C++ to CI at Facebook
- 4:02Caching and build graph heuristics
- 11:21Why not build everything
- 15:34Practical correctness with distance limits
- 24:22Reducing resources with closest N
- 27:49Diff batching experimental idea
- 30:36Optimizing continuous runs
- 33:06Why standardized CI configs matter
- 39:02Why this is a C++ story
- 45:06Q&A begins
- 59:20Closing remarks
related talks
23mMoving Fast With Complex...
44mTaking CI and automated testing seriously
47mExperiences with Facebook's C++ library
36mLinux Kernel Building, Testing, and Deployment at Facebook
48mCI With Bazel (Why Selenium is Using It & You Should Too)
01h 01m10 Problems Large Companies Have Managing C++ Dependencies and How to Solve Them
30mThe Bitter and the Sweet of Running a Planet-Scale Build &...
46mBuilding and Packaging Modern C++
