in infra/stack/ops/cicd-pipeline-stack.ts [91:120]
private createBuildDeployStageAction(actionName: string, buildSpecPath: string): codepipeline.IAction {
const project = new codebuild.PipelineProject(this, `${actionName}-Project`, {
environment: {
buildImage: codebuild.LinuxBuildImage.STANDARD_4_0,
privileged: true,
computeType: codebuild.ComputeType.MEDIUM
},
environmentVariables: {
PROJECT_PREFIX: { value: `${this.projectPrefix}` },
APP_CONFIG: { value: `${this.commonProps.appConfigPath}` },
},
buildSpec: codebuild.BuildSpec.fromSourceFilename(buildSpecPath),
});
const commonPolicy = this.getDeployCommonPolicy();
project.addToRolePolicy(commonPolicy);
const servicePolicy = this.getServiceSpecificPolicy();
project.addToRolePolicy(servicePolicy);
const buildOutput = new codepipeline.Artifact(`${actionName}BuildOutput`);
const buildAction = new codepipeline_actions.CodeBuildAction({
actionName: actionName,
project,
input: this.sourceOutput,
outputs: [buildOutput],
})
return buildAction;
}