UNPKG

@cm-madlabs/cdk-constructs

Version:

AWS CDK Constructs that can be used universally

81 lines 10.4 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.AmplifyConsoleCiCd = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const aws_amplify_1 = require("@aws-cdk/aws-amplify"); const aws_codebuild_1 = require("@aws-cdk/aws-codebuild"); const core_1 = require("@aws-cdk/core"); /** * Amplify ConsoleのCICDを作成するConstruct ReactなどのSPAをホスティングするために利用する. * * @stability stable */ class AmplifyConsoleCiCd extends core_1.Construct { /** * @stability stable */ constructor(scope, id, props) { super(scope, id); this.amplify = new aws_amplify_1.App(this, 'App', { appName: props.amplifyAppName, buildSpec: aws_codebuild_1.BuildSpec.fromObject({ version: 1, frontend: { phases: { preBuild: { commands: props.preBuildCommands, }, build: { commands: props.buildCommands, }, postBuild: { commands: props.postBuildCommands, }, }, artifacts: { baseDirectory: props.baseDirectory, files: ['**/*'], }, cache: { paths: ['node_modules/**/*'] }, customHeaders: [ { pattern: '**/*', headers: [ { key: 'Strict-Transport-Security', value: 'max-age=31536000; includeSubDomains', }, { key: 'X-Frame-Options', value: 'DENY' }, { key: 'X-XSS-Protection', value: '1; mode=block' }, { key: 'X-Content-Type-Options', value: 'nosniff' }, ], }, ], }, }), basicAuth: props.isBasicAuth ? aws_amplify_1.BasicAuth.fromCredentials(props.basicAuthUserName, core_1.SecretValue.secretsManager(props.basicAuthSecretId)) : undefined, sourceCodeProvider: new aws_amplify_1.GitHubSourceCodeProvider({ oauthToken: core_1.SecretValue.secretsManager(props.githubTokenSecretId), owner: props.githubOwner, repository: props.githubRepo, }), autoBranchCreation: { autoBuild: props.isAutoBuild, patterns: ['master', 'main', 'feature/deploy*'], pullRequestPreview: false, }, customRules: [ { source: '</^[^.]+$|\\.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|ttf|map|json)$)([^.]+$)/>', target: '/index.html', status: aws_amplify_1.RedirectStatus.REWRITE, }, ], }); } } exports.AmplifyConsoleCiCd = AmplifyConsoleCiCd; _a = JSII_RTTI_SYMBOL_1; AmplifyConsoleCiCd[_a] = { fqn: "@cm-madlabs/cdk-constructs.AmplifyConsoleCiCd", version: "0.0.6" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1wbGlmeS1jb25zb2xlLWNpY2QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYW1wbGlmeS1jb25zb2xlLWNpY2QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxzREFLOEI7QUFDOUIsMERBRWdDO0FBQ2hDLHdDQUd1Qjs7Ozs7O0FBb0V2QixNQUFhLGtCQUFtQixTQUFRLGdCQUFTOzs7O0lBRy9DLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBaUM7UUFDekUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksaUJBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFO1lBQ2xDLE9BQU8sRUFBRSxLQUFLLENBQUMsY0FBYztZQUM3QixTQUFTLEVBQUUseUJBQVMsQ0FBQyxVQUFVLENBQUM7Z0JBQzlCLE9BQU8sRUFBRSxDQUFDO2dCQUNWLFFBQVEsRUFBRTtvQkFDUixNQUFNLEVBQUU7d0JBQ04sUUFBUSxFQUFFOzRCQUNSLFFBQVEsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO3lCQUNqQzt3QkFDRCxLQUFLLEVBQUU7NEJBQ0wsUUFBUSxFQUFFLEtBQUssQ0FBQyxhQUFhO3lCQUM5Qjt3QkFDRCxTQUFTLEVBQUU7NEJBQ1QsUUFBUSxFQUFFLEtBQUssQ0FBQyxpQkFBaUI7eUJBQ2xDO3FCQUNGO29CQUNELFNBQVMsRUFBRTt3QkFDVCxhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWE7d0JBQ2xDLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQztxQkFDaEI7b0JBQ0QsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsbUJBQW1CLENBQUMsRUFBRTtvQkFDdkMsYUFBYSxFQUFFO3dCQUNiOzRCQUNFLE9BQU8sRUFBRSxNQUFNOzRCQUNmLE9BQU8sRUFBRTtnQ0FDUDtvQ0FDRSxHQUFHLEVBQUUsMkJBQTJCO29DQUNoQyxLQUFLLEVBQUUscUNBQXFDO2lDQUM3QztnQ0FDRCxFQUFFLEdBQUcsRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO2dDQUN6QyxFQUFFLEdBQUcsRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFO2dDQUNuRCxFQUFFLEdBQUcsRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFOzZCQUNwRDt5QkFDRjtxQkFDRjtpQkFDRjthQUNGLENBQUM7WUFDRixTQUFTLEVBQUUsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsdUJBQVMsQ0FBQyxlQUFlLENBQ3RELEtBQUssQ0FBQyxpQkFBa0IsRUFDeEIsa0JBQVcsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLGlCQUFrQixDQUFDLENBQ3JELENBQUEsQ0FBQyxDQUFDLFNBQVM7WUFDWixrQkFBa0IsRUFBRSxJQUFJLHNDQUF3QixDQUFDO2dCQUMvQyxVQUFVLEVBQUUsa0JBQVcsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDO2dCQUNqRSxLQUFLLEVBQUUsS0FBSyxDQUFDLFdBQVc7Z0JBQ3hCLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTthQUM3QixDQUFDO1lBQ0Ysa0JBQWtCLEVBQUU7Z0JBQ2xCLFNBQVMsRUFBRSxLQUFLLENBQUMsV0FBVztnQkFDNUIsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQztnQkFDL0Msa0JBQWtCLEVBQUUsS0FBSzthQUMxQjtZQUNELFdBQVcsRUFBRTtnQkFDWDtvQkFDRSxNQUFNLEVBQUUsZ0ZBQWdGO29CQUN4RixNQUFNLEVBQUUsYUFBYTtvQkFDckIsTUFBTSxFQUFFLDRCQUFjLENBQUMsT0FBTztpQkFDL0I7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBakVILGdEQWtFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFwcCxcbiAgQmFzaWNBdXRoLFxuICBHaXRIdWJTb3VyY2VDb2RlUHJvdmlkZXIsXG4gIFJlZGlyZWN0U3RhdHVzLFxufSBmcm9tICdAYXdzLWNkay9hd3MtYW1wbGlmeSc7XG5pbXBvcnQge1xuICBCdWlsZFNwZWMsXG59IGZyb20gJ0Bhd3MtY2RrL2F3cy1jb2RlYnVpbGQnO1xuaW1wb3J0IHtcbiAgQ29uc3RydWN0LFxuICBTZWNyZXRWYWx1ZSxcbn0gZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUFtcGxpZnlDb25zb2xlRm9yU3BhUHJvcHMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBhbXBsaWZ5QXBwTmFtZT86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBpc0Jhc2ljQXV0aDogYm9vbGVhbjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGJhc2ljQXV0aFNlY3JldElkPzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBiYXNpY0F1dGhVc2VyTmFtZT86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGdpdGh1YlRva2VuU2VjcmV0SWQ6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBnaXRodWJPd25lcjogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBnaXRodWJSZXBvOiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBpc0F1dG9CdWlsZDogYm9vbGVhbjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBwcmVCdWlsZENvbW1hbmRzOiBzdHJpbmdbXTtcblxuICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBidWlsZENvbW1hbmRzOiBzdHJpbmdbXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcG9zdEJ1aWxkQ29tbWFuZHM6IHN0cmluZ1tdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGJhc2VEaXJlY3Rvcnk6IHN0cmluZztcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIEFtcGxpZnlDb25zb2xlQ2lDZCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBhbXBsaWZ5OiBBcHA7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IElBbXBsaWZ5Q29uc29sZUZvclNwYVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMuYW1wbGlmeSA9IG5ldyBBcHAodGhpcywgJ0FwcCcsIHtcbiAgICAgIGFwcE5hbWU6IHByb3BzLmFtcGxpZnlBcHBOYW1lLFxuICAgICAgYnVpbGRTcGVjOiBCdWlsZFNwZWMuZnJvbU9iamVjdCh7XG4gICAgICAgIHZlcnNpb246IDEsXG4gICAgICAgIGZyb250ZW5kOiB7XG4gICAgICAgICAgcGhhc2VzOiB7XG4gICAgICAgICAgICBwcmVCdWlsZDoge1xuICAgICAgICAgICAgICBjb21tYW5kczogcHJvcHMucHJlQnVpbGRDb21tYW5kcyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBidWlsZDoge1xuICAgICAgICAgICAgICBjb21tYW5kczogcHJvcHMuYnVpbGRDb21tYW5kcyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwb3N0QnVpbGQ6IHtcbiAgICAgICAgICAgICAgY29tbWFuZHM6IHByb3BzLnBvc3RCdWlsZENvbW1hbmRzLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGFydGlmYWN0czoge1xuICAgICAgICAgICAgYmFzZURpcmVjdG9yeTogcHJvcHMuYmFzZURpcmVjdG9yeSxcbiAgICAgICAgICAgIGZpbGVzOiBbJyoqLyonXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNhY2hlOiB7IHBhdGhzOiBbJ25vZGVfbW9kdWxlcy8qKi8qJ10gfSxcbiAgICAgICAgICBjdXN0b21IZWFkZXJzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHBhdHRlcm46ICcqKi8qJyxcbiAgICAgICAgICAgICAgaGVhZGVyczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGtleTogJ1N0cmljdC1UcmFuc3BvcnQtU2VjdXJpdHknLFxuICAgICAgICAgICAgICAgICAgdmFsdWU6ICdtYXgtYWdlPTMxNTM2MDAwOyBpbmNsdWRlU3ViRG9tYWlucycsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7IGtleTogJ1gtRnJhbWUtT3B0aW9ucycsIHZhbHVlOiAnREVOWScgfSxcbiAgICAgICAgICAgICAgICB7IGtleTogJ1gtWFNTLVByb3RlY3Rpb24nLCB2YWx1ZTogJzE7IG1vZGU9YmxvY2snIH0sXG4gICAgICAgICAgICAgICAgeyBrZXk6ICdYLUNvbnRlbnQtVHlwZS1PcHRpb25zJywgdmFsdWU6ICdub3NuaWZmJyB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgICBiYXNpY0F1dGg6IHByb3BzLmlzQmFzaWNBdXRoID8gQmFzaWNBdXRoLmZyb21DcmVkZW50aWFscyhcbiAgICAgICAgcHJvcHMuYmFzaWNBdXRoVXNlck5hbWUhLFxuICAgICAgICBTZWNyZXRWYWx1ZS5zZWNyZXRzTWFuYWdlcihwcm9wcy5iYXNpY0F1dGhTZWNyZXRJZCEpLFxuICAgICAgKTogdW5kZWZpbmVkLFxuICAgICAgc291cmNlQ29kZVByb3ZpZGVyOiBuZXcgR2l0SHViU291cmNlQ29kZVByb3ZpZGVyKHtcbiAgICAgICAgb2F1dGhUb2tlbjogU2VjcmV0VmFsdWUuc2VjcmV0c01hbmFnZXIocHJvcHMuZ2l0aHViVG9rZW5TZWNyZXRJZCksXG4gICAgICAgIG93bmVyOiBwcm9wcy5naXRodWJPd25lcixcbiAgICAgICAgcmVwb3NpdG9yeTogcHJvcHMuZ2l0aHViUmVwbyxcbiAgICAgIH0pLFxuICAgICAgYXV0b0JyYW5jaENyZWF0aW9uOiB7XG4gICAgICAgIGF1dG9CdWlsZDogcHJvcHMuaXNBdXRvQnVpbGQsXG4gICAgICAgIHBhdHRlcm5zOiBbJ21hc3RlcicsICdtYWluJywgJ2ZlYXR1cmUvZGVwbG95KiddLFxuICAgICAgICBwdWxsUmVxdWVzdFByZXZpZXc6IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIGN1c3RvbVJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBzb3VyY2U6ICc8L15bXi5dKyR8XFxcXC4oPyEoY3NzfGdpZnxpY298anBnfGpzfHBuZ3x0eHR8c3ZnfHdvZmZ8dHRmfG1hcHxqc29uKSQpKFteLl0rJCkvPicsXG4gICAgICAgICAgdGFyZ2V0OiAnL2luZGV4Lmh0bWwnLFxuICAgICAgICAgIHN0YXR1czogUmVkaXJlY3RTdGF0dXMuUkVXUklURSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==