Chapter 5. Continuous Integration

Always make new mistakes.

Esther Dyson

Back in Chapter 2, you learned the value of source control and a common code repository. After you have organized and settled on your source control solution, you need to take a few more steps to reach an end result where your users can bask in the perfect user experience of your delivered software.

Think about the process that you would take as an individual developer to progress your software through the entire software development lifecycle. After determining the acceptance criteria for a particular feature or bug fix for your software, you would proceed with adding the actual lines of code along with the related unit tests to the codebase. Then, you would compile and run all of the unit tests to ensure that your new code works as you expect (or at least as defined by your unit tests) and doesn’t break known existing functionality. After you find that all tests pass, you would build and package your application and verify functionality in the form of integration tests in a quality assurance (QA) environment. Finally, happy with the green light from your well-oiled and maintained test suites, you would deliver and/or deploy your software to a production environment.

If you have any development experience at all, you know as well as I do that software rarely falls into place so neatly. Strict implementation of the ideal workflow described is too simplistic when you begin working on a larger ...

Get DevOps Tools for Java Developers 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.