Continuous Integration

A robust software development infrastructure consists of a few main elements: A version control system; automated build; automated tests running on a dedicated test system, including database and any necessary physical or simulated external equipment; automated deployment. To make the software development efficient the team needs their infrastructure to support the uninterrupted flow of work and provide continuous feedback to the individual software developer as well as the team.

To repeatedly make sure that no individual code change has had unintended effects elsewhere in the code, the whole software product should be easily integrated, built and tested. The less manual work involved in this process, the easier it will be to get it done frequently. Ideally, the build should be fully automated.

A software development environment can be viewed as an assembly line, each developer putting code elements on the conveyer belt, and at the end a fully assembled system is delivered — tested and ready for use. A number of tools are available to create such an automated build system and make it work with version control, deployment and automated tests.

ZeaLake is familiar with a range of the current build systems, such as Jenkins, TeamCity and CruiseControl — and the pros and cons of each. We can assist you in choosing your build system components or optimizing your use of the ones you have: integrate them better, avoid their quirks and get round their drawbacks.