CI- Continuous Integration, Continuous Development, and Continuous Testing (CT)
Jigna Jain
Software Quality Engineer in the Streaming Paramount + (OTT, Mobile) (US Citizen)
?CI- Continuous Integration, CD- Continue Delivery System, CT- Continuous Testing- Pipe Line
Continuous integration (CI), continuous delivery/deployment (CD), and continuous testing (CT) accelerate the code release process and help with deployment. IT organizations are increasingly turning to DevOps practices to improve value delivery for the customer.
?Continuous integration (CI)
Continuous delivery/development (CD)
Continuous Testing (CT)
Continuous integration (CI) is the practice of automating the integration of code changes from multiple contributors into a single software project.
Continuous Integration is primarily a tool-driven activity and software development method where members of the team can integrate their work at least once a day. In this method, every integration is checked by an automated build to search for the error.
Continuous delivery is a software development practice where code changes are automatically prepared for a release to production. A pillar of modern application development, continuous delivery expands upon continuous integration by deploying all code changes to a testing environment and/or a production environment after the build stage. When properly implemented, developers will always have a deployment-ready build artifact that has passed through a standardized test process. Continuous delivery is a method in which a team develops software products in a short cycle. It ensures that software can be easily released at any time
Continuous testing in Agile is the process of automating test activities into every commit. It's also sometimes called Continuous Quality.
Continuous testing (CT) is a software development process in which applications are tested continuously throughout the entire software development life cycle (SDLC). The goal of CT is to evaluate software quality across the SDLC, providing critical feedback earlier and enabling higher-quality and faster deliveries.
The continuous integration and continuous deployment (CI/CD) pipeline is a series of steps that must be performed in order to deliver a new version of the software. CI/CD pipelines are a practice focused on improving software delivery throughout the software development life cycle via automation.?
By automating CI/CD throughout the development, testing, production, and monitoring phases of the software development lifecycle, organizations are able to develop higher-quality code, faster. Although it’s possible to manually execute each of the steps of a CI/CD pipeline, the true value of CI/CD pipelines is realized through automation.
The continuous integration and continuous deployment (CI/CD) pipeline is a series of steps that must be performed in order to deliver a new version of the software. CI/CD pipelines are a practice focused on improving software delivery throughout the software development life cycle via automation.?
By automating CI/CD throughout the development, testing, production, and monitoring phases of the software development lifecycle, organizations are able to develop higher-quality code, faster. Although it’s possible to manually execute each of the steps of a CI/CD pipeline, the true value of CI/CD pipelines is realized through automation.
?Stages of a CI/CD pipeline
A CI/CD pipeline is a runnable specification of the steps that any developer should perform to deliver a new version of any software. Failure in each and every stage triggers a notification via email, Slack, or other communication platforms. It enables responsible developers to know about the important issues.
Here are the important Stages of the CI/CD pipeline:
?Source Stage
In the source stage, CI/CD pipeline is triggered by a code repository. Any change in the program triggers a notification to the CI/CD tool that runs an equivalent pipeline. Other common triggers include user-initiated workflows, automated schedules, and the results of other pipelines.
Build Stage
This is the second stage of the CI/CD Pipeline in which you merge the source code and its dependencies. It is done mainly to build a runnable instance of software that you can potentially ship to the end-user.
Programs that are written in languages like C++, Java, C, or Go language should be compiled. On the other hand, JavaScript, Python, and Ruby programs can work without the build stage.
Failure to pass the build stage means there is a fundamental project misconfiguration, so it is better that you address such an issue immediately.
Test Stage
Test Stage includes the execution of automated tests to validate the correctness of code and the behavior of the software. This stage prevents easily reproducible bugs from reaching the clients. It is the responsibility of developers to write automated tests.
Deploy Stage
This is the last stage where your product goes live. Once the build has successfully passed through all the required test scenarios, it is ready to deploy to the live server.
Example of CI/CD Pipeline
Here is an example of a CI/CD pipeline:
CI/CD pipeline Best Practices
Here is a CI/CD pipeline best practices:
Advantages of CI/CD pipelines
Here are the pros/ benefits of CI/CD Pipeline:
Important CI/CD tools
Here are the important CI/CD tools:
Jenkins
Jenkins is an open-source Continuous Integration server that helps to achieve the Continuous Integration process (and not only) in an automated fashion. Jenkins is free and is entirely written in Java. Jenkins is a widely used application around the world that has around 300k installations and growing day by day.
Features: