Chapter Four · Part 2: The Toolchain

Continuous Integration

In Chapter 3 a team learned to work on the same code without colliding. But all that separate work has to come back together eventually — and that reunion used to be the most dreaded moment in software. This chapter is about combining changes early and often, and letting a machine check each one the moment it lands.

3 topics

When Maya finishes her "favorites" feature on a branch, her work has to merge back into the shared code that everyone else is building on. Multiply that by a whole team, each off on their own branch, and you get a pile of separate changes that all need to fit together. Combining them is called integration — and the longer a team waits to do it, the more painful it gets.

Continuous integration is the answer: merge each small change quickly, and have a machine build the app and run its tests every single time, so a problem is caught minutes after it's created instead of weeks later. These three topics build that idea up — first what "integration" even means, then continuous integration itself, then the automated tests that make the whole thing trustworthy.

What continuous integration does to every change
Commita change lands
Buildassemble the app
Testrun the checks
Pass / Failreport back fast

Topics in This Chapter