IT:AD:Continuous Integration

As per Martin Fowler's description1) Continuous Integration (CI) is the practice of merging development work with a shared mainline branch frequently – at least daily – in order for each integration to be verified by an automated build and automated tests to ensure changes work and work with other changes.

In this context, the term integration is about the code branches, not the components within a target environment.
It has been suggested2) that a more precise term would have been IT:AD:Continuous Build.

A core concept of IT:AD:Continuous Integration is that only a small fraction of new code is added – specific to a single work item – so the cause of a test failure is easier to find. In older build systems, faulty code is already merged with the primary trunk before the build server can test and fail the new work (leading to “Breaking the Build” scenarios). Current build servers can mitigate (see IT:AD:VSTS:VCS:Git:HowTo:Branch Policy).

The primary function is to test the changes, and report back to the developer. It is not to deploy the code to a target environment. A more mature paradigm is the concept of IT:AD:Continuous Delivery system.

Version Control ServiceBuild AutomationContinuous IntegrationContinuous DeliveryProcess maturity heavilyaffects the level ofconformance toContinuous Delivery (CD).Automation of Static+DynamicSecurity, Performance,Compliance, Functional,Post-Deployment Testsrange from 0 to 100%.(Functional) Test AutomationContinuous TestingContinuous Accredited DeliveryDepends on 100%conformance toContinuous Deliveryintentions.Continuous DeploymentUnit/Static/Dynamic Testsusesimprovesimprovesimprovesimprovesusesmay usesome orall ofimprovesmay useuses