Chapter 7. Use Continuous Integration

Fall seven times, stand up eight times

Japanese proverb

Best Practice:

  • Achieve Continuous Integration by setting up a CI server after you have version control, build automation, and automated tests in place.

  • Keep track of the build time and test time.

  • This improves the development process because it relieves developers of building the system and it shortens the feedback loop of issues.

The term continuous in Continuous Integration (CI) says it all: continuously integrate (merge) code. CI puts into practice the idea that code integration and building should be done as often as possible. The integration happens at each commit to a CI server that merges the commit into a central repository. Fortunately, most CI servers do more: after each commit, they perform a clean checkout of the branch that was changed, build it, and perform the supplied tests (unit, integration, and regression tests). Running automated tests is not “required” in order to be called CI, but why would you not? Using a CI server is a great opportunity to have your tests run automatically. You can even automate further and run additional scripts after successful builds, to achieve automated deployment. The latter is a topic for Chapter 8.

Motivation

Continuous Integration speeds up development because it is fast, has short feedback cycles, and is more reliable than manual integration. Thereby it allows for further automation steps such as “continuous delivery.”

Get Building Software Teams 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.