Workshop: Fast, Powerful, Reproducible Builds, and More, with Bazel
Bazel is a build system where you declare your builds in terms of binaries and tests; the library knows all the compiler flags. It produces byte-for-byte identical outputs in a hermetic sandbox, and pins the version of everything including the compiler. It can use remote build farms and caches, and decide that 100k source files *don’t* need to be rebuilt in 200ms. This isn’t your grandad’s Maven.
In this workshop, we’ll start from scratch building a single-file programme, and evolving into something more complex. We’ll use bazel to build very simplest version, so you can see the minimum scaffolding you need to start new projects. We’ll then add features one at a time to support our growing programme, exploring the full power of bazel and its design philosophy.
By the end you’ll have take-home recipes for builds, tests, container image production and pushing, CI pipeline caching, and more.