Why would you need a CI/CD pipeline?
In software engineering we have the development lifecycle, where a product passes through the different phases of design - development - build - test and deployment.
Once a developer completes developing a module the next sequence of steps would be to build test and deploy.
And we do have different environments to deploy this module to for different types of testing - Quality Assurance (QA), User Acceptance (UAT), Performance and Security (PT) and an optional Pre-Prod (Pilot) followed by the actual Production (GoLive).
When you look at it, that's a lot of environments and variations to deploy to.
This is where you will use a CI/CD pipeline.
CI/CD (Continuous Integration/Continuous Delivery) pipeline helps developers automate the entire code integration and target deployment cycle with limited manual effort.
Like an assembly line that does a sequence of steps one after the other — this pipeline executes the configuration described in a script (YAML/JSON) as a series of activities.
You'll just configure this entire pipeline - set a source (a code repository), write the build and test steps, generate binaries and push to target machines as required, add a trigger that starts this entire line of execution (a code push to the repository, or a release merge)
Once done, all these steps are completed automatically (build-test-deploy) as you relax and watch it happen.
Some popular examples - Jenkins, Travis CI, Azure DevOps, AWS Codepipeline etc.
That’s a brief introduction to CI/CD pipeline. I’ve written a series of articles on building a Jenkins CI/CD for .NET project here.
Check it out — https://referbruv.com/collections/cicd-using-jenkins/