Simplify CloudFormation ChangeSets in Jenkins Pipelines with ChangeSetDeploy
Previously when deploying CloudFormation changes in Jenkins using the ciinabox-pipelines shared library you had to created the change set and then execute it in separate methods in your pipeline. However there is now a new method that orchestrates both create and execute in one method; changeSetDeploy.
The changeSetDeploy
method replaces the createChangeSet
and executeChangeSet
methods making your pipeline simpler by orchestrating the create and execute methods for you.
@Library('ciinabox') _
pipeline {
...
stages {
stage('deploy change set') {
steps {
changeSetDeploy(
region: env.AWS_REGION,
stackName: env.STACK_NAME,
templateUrl: "${env.TEMPLATE_URL}/${env.CF_VERSION}/template.yaml",
awsAccountId: env.DEV_ACCOUNT,
role: env.CIINABOXV2_ROLE,
roleArn: env.CFN_ROLE,
nestedStacks: true
)
}
}
}
}
Continue on Empty Change Sets
By default changeSetDeploy
with continue the pipeline if no changes are detected in created change set. If you do want the pipeline to fail on empty change sets this can be done by setting the failOnEmptyChangeSet
property to true
.
Approve Change Set
If you want a approval step in-between the create and execute stages of the change set you can set the approveChanges
to true
. You can then view the changes in the console output in Jenkins before approving the changes to be applied to the stack.
Further Reading
checkout the changeSetDeploy method or the demo-cloudformation-changeset pipeline for further docs and usage help.