Jenkins – Continuous Integration

Why we need Continuous Integration?

Before knowing what is continuous integration, let us know why we need continuous integration by looking at some major issues before continuous integration. Below is the diagram which shows the flow before continuous integration.

lifecylce_before_CI

Issues

✔ Developers have to wait for the test result of their code. The entire source code first gets build then moves to the test server and then after the test, it provides the results.

 

✔ If the test fails then locating and fixing the bugs is very difficult. If the build is successful but the code fails the test, developers have to check the entire source code to find the bug.

 

The software delivery process is slow. Due to earlier issues, developers are taking too much time to fix the bugs and do the whole process again, making the software delivery slow.

 

Continuous Feedback was not present. Feedback related to building failure, test status, software performance, etc was not present.

 

What is Continuous Integration?

Continuous Integration is a practice that follows in development that requires developers to commit changes to source code in a shared repository many times a day or more frequently. The CI tool then looks for any commit made. Then it will start the building and testing the code. The feedback will be sent after the execution completed irrespective of success and failure. This enables the teams to quickly identify issues.

ci-cd-flow

 

 

How Continuous Integration Solves the Issues.

 

Using Continuous Integration:

ci-cd-flow2

Since after every commit to the source code, and auto-build is triggered, and then it is automatically deployed to the test server.

If the test results show that there is a bug in the code then the developers only have to check the last commit made to the source code.

This also increases the frequency of new software releases.

The developers and other teams are always provided with relevant feedback.