The pattern of gated CI pipelines applies to cases when software release updates are required to be manually approved and triggered by a release manager or platform administrator before they get deployed to a protected environment (e.g. production).
This CI pipeline example illustrates the implementation of that pattern with a couple of additional enhancements on top of the previous simple gated pipeline sample :
- email notification to release manager about a release ready to ship/deploy
- monitoring of actual release deliveries of a software package in GitHub (Concourse FLY cli)
The pipeline definition file for the sample above is available here.
To create the sample pipeline in your concourse server:
-
download file gated-pipeline-02-shipit.yml
-
edit the file and update the entries below:
- YOUR-SENDER-EMAIL-GOES-HERE: replace it with your sender email address
- [YOUR-EMAIL-GOES-HERE]: replace it with your destination email addresses separated by comma and keep the brackets
-
issue the following fly command:
fly -t <your-concourse-alias> set-pipeline -p ship-it -c gated-pipeline-02-shipit.yml
Once the pipeline is unpaused in Concourse, it will:
-
Automatically execute its first two jobs (
Build-It
andTest-It
) for every new release of the monitored repository -
Notify via e-mail the release managers to review and take action in order to proceed with the deployment of the newly verified release
-
Proceed with the deployment execution only after the release manager manually triggers it (e.g. click on the
Ship-It!
job and then click on its+
icon)