in pipelines/src/api-service-codedeploy-pipeline.ts [117:153]
private addDeployStage(pipeline: codepipeline.Pipeline,
stageName: string,
buildOutput: codepipeline.Artifact,
imageDetailsOutput: codepipeline.Artifact) {
const deploymentGroup = codedeploy.EcsDeploymentGroup.fromEcsDeploymentGroupAttributes(
pipeline, 'CodeDeployDeploymentGroup' + stageName, {
application: codedeploy.EcsApplication.fromEcsApplicationName(
pipeline,
'CodeDeployApplication' + stageName,
'AppECS-default-trivia-backend-' + stageName.toLowerCase()
),
deploymentGroupName: 'DgpECS-default-trivia-backend-' + stageName.toLowerCase(),
deploymentConfig: codedeploy.EcsDeploymentConfig.fromEcsDeploymentConfigName(
pipeline,
'CodeDeployDeploymentConfig',
'trivia-backend-canary'
)
});
pipeline.addStage({
stageName,
actions: [
new actions.CodeDeployEcsDeployAction({
actionName: 'Deploy' + stageName,
deploymentGroup,
taskDefinitionTemplateFile:
new codepipeline.ArtifactPath(buildOutput, `task-definition-${stageName.toLowerCase()}.json`),
appSpecTemplateFile:
new codepipeline.ArtifactPath(buildOutput, `appspec-${stageName.toLowerCase()}.json`),
containerImageInputs: [{
input: imageDetailsOutput,
taskDefinitionPlaceholder: 'PLACEHOLDER'
}]
})
]
});
}