Automated Application Build & Test, Continuous Deployment & Continuous Delivery
Continuous Integration (CI) is a practice in software development where developers merge, test and deploy the code they have written on a frequent basis. Each merge of code, referred to as an integration, can then be checked by an automated build and automated tests process. Simpler or smaller projects might forgo automated test for manual testing, or a mixture of both. CI falls within part of the software process known as Developer Operations typically referred to as DevOps.
Traditionally, Developers on a team often worked in isolation for an extended period of time and only merged code changes once their work was completed. Waiting days or weeks to integrate code creates many merge conflicts, hard to fix bugs, diverging code strategies, and duplicated efforts. This made merging code changes difficult and time-consuming, and also resulted in bugs accumulating for long periods without correction. These factors made it harder to deliver updates to customers quickly.
The key goals of continuous integration are to find and address bugs quicker, improve software quality, and reduce the time it takes to validate and release new software updates.
In recent years CI has become a best practice for software development and encompasses revision control, build automation and automated testing. Continuous Integration is also associated with two similar terms; Continuous Deployment & Continuous Delivery. The basic differences are subtle and can vary between teams but may be summarised as:
Integrating and testing code that is submitted at frequent regular intervals by developers.
Taking the code from Continuous Integration and ensuring it is deployable at any-time by confirming the latest version is released to a testing environment and passes all tests.
Taking code from Continuous Deployment, ensuring it is configured correctly and pushing it to production frequently and often automatically.
iFactory can create a Continuous Integration environment for your application or work within your current CI process.