The pipeline will support full continuous integration—when developers push code to the shared source repository, which will trigger a build that produces a release candidate. The release candidates will be tagged Docker images stored in a local registry. The CI workflow deploys the solution from the built images as containers and runs an end-to-end test pack.
My sample pipeline has a manual quality gate. If the tests pass, the image versions are made publicly available on Docker Hub, and the pipeline can start a rolling upgrade in the public QA environment.
The stages of the pipeline will all be powered by software running in Docker containers:
- Source control: Bonobo, a simple open source Git server written in ASP.NET
- Build server: Jenkins, a Java-based automation tool using plugins to support many workflows
- Build agent: MSBuild packaged into a Docker image to compile code in a container
- Test agent: NUnit packaged into a Docker image to run integration or end-to-end...