This is an abstract CI/CD pipeline design that optimizes for blue/green deployments, repeatable builds and bakes in the ability to rapidly deploy a hotfix in emergencies.
Parameter | Default | Description |
---|---|---|
version |
HEAD |
Git tag or commit SHA to be built and deployed. |
target |
stage |
Enumeration: { dev | stage | prod } |
skip_slow_scans |
false |
Enable builds to optionally complete faster by skipping some slow scans. |
- Prepare Workspace
- Clean workspace
- Check out
$version
- Unit Tests
- Build
- Push artifacts to Nexus/S3
- Deploy (initial)
- Pull artifact from Nexus/S3
- Push to
$target
with version-suffixed domain/route
- Integration Tests
- If
$skip_slow_scans
, skip X, Y and/or Z
- If
- Deploy (cutover)
- Point unsuffixed domain/route to newly deployed instance
- Terminate previous instance
Quote from Patrick on "sciency" deps: