Pipelines
Build Pipelines
In order to achieve a CI/CD workflow, you need a set of automated tasks to build, test and deploy code changes. This is where our Pipelines come in. After a code change is pushed, a new run is started. Every run has the same stages:
- Pipeline Settings: Configures the run, and most importantly, cancels any previous runs for the same repository.
- Build & Pack Solution: Builds, tests and packs the solution into NuGet packages.
- Push NuGet Packages: Pushes the new packages into our feeds.
- Build Docker Image: For both the API and Integration projects, builds a Docker image.
- Push Docker Image: Pushes the new images into our feeds.
Once this is all finished, it triggers a deployment and other pipelines that depend on this one.
Release Pipelines
For the changes to be deployed to our environments, our pipelines need to deploy after they successfully build. This is done through our Release Pipelines, that differ from our Build Pipelines, but the same idea as before applies. They are a set of automated tasks as well.
The biggest difference is that what were Stages in Build Pipelines are now Tasks in Release Pipelines that can be grouped into stages. Normally, every stage corresponds with a environment. This is done so deployments to Development can occur automatically, while deployments to Production require approval.