The continuous integration, continuous delivery (CICD) model was defined by Tim Fitz in his seminal book Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation in 2010. Essentially, it mandates an automated pipeline which can take new code, perform required checks/builds, and then deploy it in production. Such a system is a prerequisite for high-feature velocity development that is typical of most modern applications.
This section describes the concepts behind CICD. It describes a simple implementation and then deep dives into Go tooling which can aid in building CICD pipelines.