We can help you set up or optimise continuous integration within your software development teams, using whichever tools fit your needs best.
What is continuous integration?
Continuous integration (CI), often used in conjunction with continuous deployment (CD), is process of building and deploying software automatically with each change committed by one of the developers to the source repository.
Leading continuous integration and continuous deployment tools include:
- Atlassian Bamboo
- Jenkins
- Microsoft Team Foundation Server
- IBM UrbanCode
The continuous integration tool stores the scripts needed to compile, build and deploy the software under development. If automated tests exist, the CI tool can also trigger these tests. The CI tool monitors the source code repository in real time and whenever a change is committed to the repository, it builds the software, deploys it to one or more environments, and (if configured) triggers a suite of automated tests on the newly deployed build. The results of the tests are transmitted automatically to the desire project stakeholders.
CI is far more efficient than previous techniques. Before CI, to build the software, a developer would have to go through the following steps:
- Invoke one or more build scripts manually
- Copy the resultant executables to one or more other servers in other environments
- Copy any updated resource files to the new environments
- Restart any necessary server side programs.
The process was error-prone and could take up to several hours. If the deployed software did not start correctly, there would be uncertainty as to whether a bug had been introduced during the latest changes, or whether an error had been made in the deployment. Only after an apparently correct build and deployment could any testing take place.
The long build and deployment process caused builds to be undertaken much less frequently. Testing was therefore much less frequent, and bugs would take longer to be discovered. This made it considerably slower to develop software, and harder to keep quality up.
Is continuous integration agile?
CI/CD goes hand in hand with agile development. One of the principles of Agile is to deliver working code as early and as frequently as possible. CI/CD facilitates this. CI/CD is a pillar of modern continuous development, and more mature teams include automated tests as part of the process. Read our case study with Sky IQ, for more information on how our experts helped their team deploy an agile system of continuous integration.
Whatever your requirements, Automation Consultants can advise you on setting up or optimising your CI/CD and thus improving quality and time-to-market for your software development. Get in touch with us today to find out more about how our continuous integration services could help your business.