What is CI/CD?
CI /CD gave a new vision to how developers and testers produce software. In other words, the adoption of CI/CD is basically of continuous methodologies.
They showcase an environment and operates around constantly integrating new code. Similar to that of the software development lifecycle. Above all starting from the waterfall, the development process changed to Agile and then to DevOps.In conclusion, CI /CD builds up the backbone of the latest DevOps culture.
Continuous Integration(CI)
CI is an operation that requires developers to integrate new code and examine it. Then this integrated code is shared into the repository several times a day. Therefore continuously integrating the new code helps you find errors quickly. In other words, it results in increased time for developers to modify code.
Continuous Delivery (CD)
CD is a method to have all kinds of changes. That basically includes the latest features, bug fixes, configuration changes, and other experiments into the live production of the software environment by the operation team. In addition, this is done in an automated way. Therefore, the code is continuously deployed but the deployment is triggered manually.
Continuous Deployment(CD)
It is the next degree of continuous delivery. Therefore in this, the build deployment is done automatically. As a result, whenever a new change is encountered which passes the test is automatically placed in a production environment. Further resulting in various production deployments.
CI/CD pipeline
The pipeline builds up the foundation of a contemporary DevOps culture. That executes a set of instructions for the purpose of delivering a later version of the software. Basically, it connects the development and operation team by making the process of building, testing, and deployment of application automated.
Components of CI/CD Pipeline
CI Pipeline
- Build
- Run Unit Test
- Package
- Run Integration Test
CD Pipeline
- Deploy to Test
- Run Acceptance Tests
- Deploying to Staging
- Run Performance Tests
- Run End-to-End Tests
- Deploy to PROD
Tools for CI/CD
- Jenkins
- Azure Pipeline
- Tekton Pipeline
- Travis CI
- Screwdriver
- GoCD
Set CI/CD using Jenkins
Firstly enable Jenkins on your system
Step1 : Click on New Item
Step2 : After that create a freestyle project and give a name to it
Step3: Then give a description and provide with Git repository link
Step4: Provide Build Trigger
Step5: Build and Select execute shell
Step6: Create another job for deployment in the same way by going to a new item and creating a freestyle project
Step7: Choose the Build Trigger
Step8: Add the command to execute shell
Step9: Go to the repository and commit a new change
Step10: The build will be triggered on its own and when the app-package job will be completed the app-deploy job will start executing.
References
- https://www.redhat.com/en/topics/devops/what-is-ci-cd
- https://www.lambdatest.com/blog/jenkins-freestyle-project