‹ BackHN Continuity

Thread

AI coding has made CI a bottleneck, so we reworked ours to keep up

317 points · 408 comments · julian_digital

  1. shykes · · focus · HN ↗
    I think to solve this problem properly, we have to stop treating "build" and "test" as separate buckets of work, to be designed and scaled separately. It's all CI. As soon as you try seriously scaling out tests, you will run into build bottlenecks. To truly scale CI you need a scheduler that understands your build, test environment, and all the glue in between, well enough to schedule it in a way that actually speeds things up. That is very difficult and not something that even the best build tools can do - yes, even Bazel. Bazel can run tests but it's not nearly as good at it than at building.
    1. sluongng · · focus · HN ↗
      Yes. Bazel is half of the equation. The other half which other enterprises rely on is the server side of Bazel's Remote Build protocol. There, the scheduler can be implemented with logic that accounts for sandbox sizing as well as other requirements/constraints.

      I gave a talk about how we do it at BuildBuddy at a recent BazelCon here: <a href="https:&#x2F;&#x2F;youtu.be&#x2F;iQqLtuBzkKE?t=848" rel="nofollow">https:&#x2F;&#x2F;youtu.be&#x2F;iQqLtuBzkKE?t=848

      1. shykes · · focus · HN ↗
        IMO it&#x27;s a bad idea to tie your entire CI stack to a single build tool, no matter how good it is at building. It immediately puts on ceiling on what your CI stack can do, and for whom. You&#x27;re essentially making the bet that 1) Bazel can build and test all the things with no exception; 2) you can convince, or force, 100% of your team to adopt Bazel for 100% of their builds and tests, in perpetuity; and 3) this drastic limitation on choice is the only way to make CI sufficiently fast and reliable.

        I see how that bet makes sense from the point of view of a Bazel maximalists, and even more so from the point of view of a hosted Bazel vendor like BuildBuddy. But I can already tell you that it will not happen. Bazel is an amazing build tool, but on the testing side it doesn&#x27;t offer anything that special. Tying yourself to it for tests is not worth the loss in flexibility.

Open on Hacker News to reply ↗

Unofficial Hacker News client; not affiliated with Y Combinator.