I have a pipeline that uses waves in the deployment. There are times when I want to control one deployment over another manually. I've set up the waves to have their stages, which are independent according to the docs. However, adding an approval process to one of the waves takes precedence over all stages.
I wish I could upload a screenshot of the Wave in CodePipeline
def __add_deployment_wave(self, deployment: Deployment):
"""
Set up a new stage in the deployment wave. Each stage should be independent
, but this is a bust. The entire wave is held up if I add approval at one stage.
"""
# get the app stage
stage = self.__get_deployment_application_stage(deployment=deployment)
# add the app stage to a deployment stage
ds = self.deploy_wave.add_stage(stage)
# do we manually approve it
if deployment.manual_approval:
# This should be linked only to this stage, but it seems
# to be top-level
approval_id = f"approval-{deployment.name}"
ds.add_pre(pipelines.ManualApprovalStep(approval_id))
# setup the post-deployment commands in the deployment stage in the wave
# todo: phase 2
ds.add_post(self.__get_mock_shell(f"post-deployments-{deployment.name}"))