constructor()

in infra/stack/ops/cicd-pipeline-stack.ts [35:71]


    constructor(appContext: AppContext, stackConfig: any) {
        super(appContext, stackConfig);

        const temp: string = stackConfig.RepositorySelection;
        const selection = (<any>RepositorySelection)[temp];
        const selectionName = Object.values(RepositorySelection)[selection];
        console.info('==> Repository Selection: ', selectionName);

        if (selection == RepositorySelection.CodeCommit) {
            const config = stackConfig.RepositoryCandidate[selectionName];
            const repositoryName: string = config.RepositoryName;
            const branchName: string = config.BranchName;

            if (repositoryName.trim().length > 0
                && branchName.trim().length > 0) {

                new codecommit.Repository(this, 'Repository' ,{
                    repositoryName: repositoryName
                });

                const pipeline = new codepipeline.Pipeline(this, 'CICDPipeline', {
                    pipelineName: `${this.projectPrefix}-CICD-Pipeline`,
                });

                const sourceStage = pipeline.addStage({ stageName: 'Source' });
                sourceStage.addAction(this.createSourceStageAction('CodeCommit', repositoryName, branchName));

                const buildStage = pipeline.addStage({ stageName: 'BuildDeploy' });
                buildStage.addAction(this.createBuildDeployStageAction('BuildDeploy', 'script/cicd/buildspec_cdk_deploy.yml'));
            } else {
                console.info("No CodeCommit repository, so don't create CodePipeline");
            }

        } else {
            console.error('Wrong Repository Type', selectionName);
        }
    }