~/kettlebuild
Notes on fast, correct, repeatable builds
Kettlebuild is the notebook of a small build-engineering practice. We help teams make their builds and CI pipelines faster without making them any less trustworthy, and we write down what we learn along the way.
Expect practical articles with real configuration in them: cache keys, reproducible artifacts, task graphs, container builds. There is no product to sell and no newsletter, just an Atom feed.
Latest articles
-
Smaller Docker images, warmer layer caches
Layer order,
.dockerignore, cache mounts and multi-stage builds: small images and fast rebuilds come from the same habits. -
Task graphs: rebuilding only what changed
How monorepo tools decide what to run, why affected detection misses things, and how to keep the graph honest.
-
Where CI time actually goes
Measure the phases first, then cut setup, add caching, parallelise where it pays and split tests by recorded time.
-
Same commit, same bytes: a reproducible builds checklist
Timestamps, file order, locale and build paths: why two builds of one commit differ, and how
SOURCE_DATE_EPOCHhelps. -
Cache keys are a correctness problem
A content-addressed cache is only as correct as its key. The usual ways keys go wrong, and how to tell which one bit you.
Three rules we keep coming back to
- Measure before you optimise. The slow part is rarely the part everyone complains about, and a single run proves nothing.
- A cache is only as good as its key. A fast wrong answer is worse than a slow right one.
- Same commit, same bytes. If two builds of one commit differ, find out why before it matters.
Working with us
The practice is small on purpose. If your builds have become slow, flaky or hard to trust, the about page describes the kind of work we take on, and hello@kettlebuild.org is the way to reach us.