in cdk-pipeline/lib/cdk-pipeline-stack.ts [133:175]
private cdkDeployAction(pipelineInput: codepipeline.Artifact, runOrder: number) : codepipeline_actions.CodeBuildAction {
// Create build spec for the CodeBuild project for deploying CDK app
const cdkDeployActionSpec = codebuild.BuildSpec.fromObject({
version: "0.2",
phases: {
pre_build: {
commands: [
"ls -rtla $CODEBUILD_SRC_DIR/",
"cd cdk-eks",
"ls -rtla",
"npm install",
"npm run build",
],
},
build: {
commands: [
"npx cdk deploy --require-approval never"
]
},
}
});
// Create CodeBuild project for running conftest to validate K8S manifest files
const cdkDeployCodeBuildProject = new codebuild.Project(this, 'cdkDeployCodeBuildProject', {
environment: {
buildImage: codebuild.LinuxBuildImage.STANDARD_4_0,
computeType: codebuild.ComputeType.SMALL,
},
buildSpec: cdkDeployActionSpec,
});
cdkDeployCodeBuildProject.role?.addManagedPolicy(iam.ManagedPolicy.fromAwsManagedPolicyName('AdministratorAccess'));
// Create the CodePipeline action and associate it with the CodeBuild Project above
const cdkDeployAction = new codepipeline_actions.CodeBuildAction({
actionName: "DeployCDKApp",
project: cdkDeployCodeBuildProject,
input: pipelineInput,
runOrder
});
return cdkDeployAction;
}