What is continuous integration?
Continuous integration is the practice in the software building process where development teams have to maintain the central repository of their product code. All team members frequently / continuously merge their code changes to this central code repository.
Continuous integration has started as a part of extreme programming practice and now days is being used by many small and agile technical teams. The main goal is to reduce the project delivery times, integrate QA into the development process and apply test-driven / behavior-driven development methodologies.
Use Case For Continuous Integration
As development team members are committing their code to the central source control CI tools are picking up the code changes and starting the array of automated tasks., running the tests and building the software.
These include running the predefined unit or integration test sets, building the software and in some cases even deploying the software to the production environments.
For example, given that development team maintains a good collection of tests cases for their code, continuous integration tools can automatically run these on any new code changes or code merges in the central repository.
Reports and notifications will be sent to all team in case the latest code merge by one of the team members has introduced bugs.
Continuous integration flows can run automated testing on the pull request code, prior to code merge happening. This way potential bugs are caught even before they make their way into the main repository of your application code.
In other words, continuous integration will not automatically fix bugs in your code, but good CI flow will make it easy to detect the bugs while your team is developing the software project.
Continuous Integration Flows
In the simple diagram above you can see that CI server plays the central role in orchestrating and automating the testing and feedback tasks while development team is working with software code.
CI applications have capabilities to execute multiple tasks, usually in the conditional order. The outcome of such tasks can triger another flow task, different flow or to stop CI job run and send notifications to the team.
In more matured CI flows which are usually called pipelines, CI server can automatically deploy the software to pre-production or even production environments. Such flows bring development teams towards the land of continuous delivery.
Continuous Integration Applications
CI flows mostly include interaction with multiple development lifecycle tools – code version control, test frameworks, notification systems, reporting tools and others. Such tools and services are usually not part of CI server applications themselves. But its important that CI solution you choose integrates well with the tools and services your team is using in the software development lifecycle.
In the PopularOwl tutorials, we mostly focus on open source enterprise technology toolset.
JenkinsCI is the most used open source CI solution in the enterprise technology stack. With over 300k installs globally and over 2000 plugins created by a community it’s a very strong candidate to orchestrate CI flows for your project. Visit our
Visit our getting up and running with JenkinsCI course to learn more.