Continuous Integration: What Is It?
Continuous Integration (CI) is a key approach to building designed to help program developers and coders work with an agile approach to the build process.
CI means that lines of code are uploaded multiple times each day and stored in a shared central repository. The longer the period between iterations the more difficult finding errors, omissions and other problems becomes. By uploading frequently any errors are quickly detected and that detection happens much earlier, making it easier and more cost effective to rectify them.
As a result there is more time spent on building and less trying to go back over old ground hunting for errors. It is a lot cheaper too — there are fewer big fixes, projects finish on time and on budget.
The buzz words for CI: Verify, Find, and Fix
CI has become the gold standard for building code. Developers often work alone and then add their completed code to a code base. Sometimes there are weeks or even month long gaps before code is integrated leading to more bugs and divergence and duplication of code. Early integration is key to avoiding these issues since a lack of regular integration can mean that code uploaded is already out of date.
When a developer uploads code into the central repository it triggers a quality control script. This then tests the code and, if clean, the code is allowed to joint the rest of the contributions. With a single repository developers can continue to work alone but know that their code is being constantly tested, checked and evaluated and along with the rest of the team they can clearly see how the code is changed, added or removed by checking the timestamps.
Continuous Integration follows very specific rules:
- Frequent check-in
- No check-ins of broken/untested code
- Always check in system builds before leaving for the day
The process is fully automated and providing the team sticks to the rules there is little need for extra management to oversee the system. Developers can add code at any time and they can also ask to ‘pull’ code that needs to be fixed or altered.
Building this kind of repository is a challenge in terms of time but it is always well worth it because if the drastic improvements to the quality and efficacy of code development that it brings.
CI and DevOps
DevOps and CI go together — they are both designed to shorten the life of a project by deploying and testing code as often as possible. CI is an essential ingredient of DevOps, as important as workflow automation and the vast majority of DevOps teams will use CI tools almost hourly throughout the day. Since CI tools are used in conjunction with a variety of other tools and platforms they are very easy to integrate into on-premise or cloud servers, code management systems and so on. Many are open source too, making it a lot easier to develop new integrations.
DevOps and CI are not the same: DevOps looks at the entire application from planning to post-completion whereas CI is concerned with the building and testing of the code. Once the code is tested and everything is complete CI is no longer needed but the role of DevOps continues.
If you’re looking for a company that provides Software Testing and other software development services contact us.