Implementing Continuous Integration

As we mentioned at the beginning of the chapter, CI is the process of continually integrating small code changes into a software product. Each time the codebase changes (i.e., changes are checked into the SCM repository), the system is built and tested. Developers are notified immediately of any errors caused by the changes, allowing them to make corrections quickly. CI can be thought of as an extension of automated builds in that it performs an automated build (including testing, reporting, and other actions) each time the codebase changes.

So, you’ve decided to implement CI on your project. What do you do first? Start with the first three prerequisites noted at the beginning of the chapter. If you’ve been following this book’s recommendations about the order in which to implement practices, you should already have two of the three completed (SCM and automated testing). If not, refer to the appropriate practices in the preceding chapters. These prerequisites are:

  1. Establish an SCM repository for all source code, scripts, test data, etc. Just about any modern SCM system will do, although several have gained wide acceptance in the industry.

  2. Identify a build server. Ensure that the server has access to the SCM repository.

  3. Identify the unit testing framework(s) necessary to support unit testing the project. Load the framework software onto the build server.

If you’ve already implemented automated builds using a build scripting language, you’re done with ...

Get The Art of Lean Software Development now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.