Build Pipeline Basics
One of the hot ideas in the continuous integration space is the idea of a build pipeline. The idea of a build pipeline or staged build has been around for some time. To keep the build fast, include only a minimum amount of stuff outside the compile and link phases. After build notifications have gone out, run secondary tests to more throughly examine the build. The idea is to provide rapid, useful feedback on build health while still regularly running slower processes.
What should be kept in the fast commit-time build? Generally things that would warn a developer that the code base is too troubled to integrate into (compilation errors are the classic example) or tests that provide a large amount of information very quickly. Often, an arbitrary time line of five or ten minutes is selected as a maximum commit build length to sharpen this distinction. Continue reading
One technique that we are seeing more and more often with larger customers is the automatic creation of projects. This core idea of this approach is to develop a very consistent way of implementing the life-cycle for a class of projects so that adding a new project requires only a handful of changes from a previous project. These values might be things like build target, source control information, and numbering information.
Historically, teams that were doing this well would copy the existing project, trim out old, unneeded branches and make the handful of changes needed. Five or ten minutes later they had a new project ready to build for the first time. Pretty good, but not good enough for everyone. Continue reading
Building in a non-originating workflow
Our early experiences configuring AnthillPro teach us that builds are done by “originating” workflows and deployments, tests, and all that good post-build stuff tends to happen in “non-originating” workflows. This makes good sense. We start by doing a build, and then can come back to that build later and do things to it. This is a good lesson, but like Newtonian physics it can break down when things get interesting. Continue reading