private createBuildDeployStageAction()

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;
    }