Continuous Integration (CI) in software development
As part of Continuous Integration in software development, components are being assembled during continuously executed build processes. Usually a build is started after each push to the central version control server.
The aim of Continuous Integration is to increase the quality in software development through fast and early detection of potential errors.
In addition to the build of the software, automated tests and quality analyses can be executed as part of a CI-pipeline.
Continuous Integration is based on a number of principles established by Martin Fowler. These include:
- Automatic builds
- Version management (revision control)
- Regular commits (ideally daily)
- Fast builds
- Testing in a mirrored environment
- Visible results of the builds
- Automatic deployments (as a preliminary stage to Continuous Deployment)
Switching to CI can initially mean considerable effort for companies. However, CI offers advantages that should not be underestimated, such as no lengthy integration with a difficult-to-estimate timeline or faster bug fixing, as code changes are implemented in small steps, so CI should definitely be considered.
A changeover can and should therefore take place step by step, starting with an automatic build embedded in the version control system, extended by automatic tests, etc.
Differentiation between Continuous Deployment and Continuous Delivery
Continuous Integration is the foundation of Continuous Delivery and Continuous Deployment.
Continuous Integration with the Cloudogu EcoSystem
The Cloudogu EcoSystem has everything you need to set up a Continuous Integration pipeline:
- Version control server (SCM-Manager)
- Build server (Jenkins)
- Code analysis tool (SonarQube)
- Artefact repository server ( e.g. Nexus Repository)