UNPKG

aws-delivlib

Version:

A fabulous library for defining continuous pipelines for building, testing and releasing code libraries.

40 lines 10.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AutoBuild = void 0; const aws_cdk_lib_1 = require("aws-cdk-lib"); const constructs_1 = require("constructs"); const build_env_1 = require("./build-env"); class AutoBuild extends constructs_1.Construct { constructor(scope, id, props) { super(scope, id); this.project = new aws_cdk_lib_1.aws_codebuild.Project(this, 'Project', { projectName: props.projectName, description: `Automatic PR build for ${props.repo.describe()}`, source: props.repo.createBuildSource(this, props.webhook ?? true, { branch: props.branch, branches: props.branches }), environment: (0, build_env_1.createBuildEnvironment)(props.environment ?? {}), badge: props.repo.allowsBadge, buildSpec: props.buildSpec, artifacts: props.artifacts, ssmSessionPermissions: true, }); this.project.role.addManagedPolicy(aws_cdk_lib_1.aws_iam.ManagedPolicy.fromAwsManagedPolicyName('AmazonElasticContainerRegistryPublicReadOnly')); const publicLogs = props.publicLogs !== undefined ? props.publicLogs : false; const githubToken = props.repo.tokenSecretArn ? aws_cdk_lib_1.SecretValue.secretsManager(props.repo.tokenSecretArn) : undefined; if (publicLogs) { new aws_cdk_lib_1.aws_sam.CfnApplication(this, 'GitHubCodeBuildLogsSAR', { location: { applicationId: 'arn:aws:serverlessrepo:us-east-1:277187709615:applications/github-codebuild-logs', semanticVersion: '1.6.0', }, parameters: { CodeBuildProjectName: this.project.projectName, DeletePreviousComments: (props.deletePreviousPublicLogsLinks ?? true).toString(), CommentOnSuccess: (props.publicLogsOnSuccess ?? true).toString(), ...githubToken ? { GitHubOAuthToken: githubToken.unsafeUnwrap() } : undefined, }, }); } } } exports.AutoBuild = AutoBuild; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1idWlsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF1dG8tYnVpbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBS3FCO0FBQ3JCLDJDQUF1QztBQUN2QywyQ0FBNEU7QUErRjVFLE1BQWEsU0FBVSxTQUFRLHNCQUFTO0lBT3RDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBcUI7UUFDN0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksMkJBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUNwRCxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsV0FBVyxFQUFFLDBCQUEwQixLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQzlELE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckgsV0FBVyxFQUFFLElBQUEsa0NBQXNCLEVBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7WUFDNUQsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVztZQUM3QixTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7WUFDMUIsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1lBQzFCLHFCQUFxQixFQUFFLElBQUk7U0FDNUIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFLLENBQUMsZ0JBQWdCLENBQUMscUJBQUcsQ0FBQyxhQUFhLENBQUMsd0JBQXdCLENBQUMsOENBQThDLENBQUMsQ0FBQyxDQUFDO1FBRWhJLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDN0UsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLHlCQUFXLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUVsSCxJQUFJLFVBQVUsRUFBRTtZQUNkLElBQUkscUJBQVUsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLHdCQUF3QixFQUFFO2dCQUM1RCxRQUFRLEVBQUU7b0JBQ1IsYUFBYSxFQUFFLGtGQUFrRjtvQkFDakcsZUFBZSxFQUFFLE9BQU87aUJBQ3pCO2dCQUNELFVBQVUsRUFBRTtvQkFDVixvQkFBb0IsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVc7b0JBQzlDLHNCQUFzQixFQUFFLENBQUMsS0FBSyxDQUFDLDZCQUE2QixJQUFJLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRTtvQkFDaEYsZ0JBQWdCLEVBQUUsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLElBQUksSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFO29CQUNoRSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUztpQkFDOUU7YUFDRixDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7Q0FDRjtBQXhDRCw4QkF3Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBTZWNyZXRWYWx1ZSxcbiAgYXdzX2NvZGVidWlsZCBhcyBjb2RlYnVpbGQsXG4gIGF3c19pYW0gYXMgaWFtLFxuICBhd3Nfc2FtIGFzIHNlcnZlcmxlc3MsXG59IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQnVpbGRFbnZpcm9ubWVudFByb3BzLCBjcmVhdGVCdWlsZEVudmlyb25tZW50IH0gZnJvbSAnLi9idWlsZC1lbnYnO1xuaW1wb3J0IHsgSVJlcG8gfSBmcm9tICcuL3JlcG8nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF1dG9CdWlsZE9wdGlvbnMge1xuICAvKipcbiAgICogQnVpbGQgZW52aXJvbm1lbnQuXG4gICAqIEBkZWZhdWx0IC0gc2VlIGRlZmF1bHRzIGluIGBCdWlsZEVudmlyb25tZW50UHJvcHNgXG4gICAqL1xuICByZWFkb25seSBlbnZpcm9ubWVudD86IEJ1aWxkRW52aXJvbm1lbnRQcm9wcztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIENvZGVCdWlsZCBwcm9qZWN0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGEgbmFtZSB3aWxsIGJlIGdlbmVyYXRlZCBieSBDbG91ZEZvcm1hdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHByb2plY3ROYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBNYWtlIGJ1aWxkIGxvZ3MgcHVibGljIGFuZCBwdWJsaXNoZXMgYSBsaW5rIHRvIEdpdEh1YiBQUiBkaXNjdXNzaW9uLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9qbGhvb2QvZ2l0aHViLWNvZGVidWlsZC1sb2dzXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBwdWJsaWNMb2dzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ29uZmlndXJlIHRoZSBwcm9qZWN0IHRvIHJlc3BvbmQgdG8gd2ViaG9va3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHdlYmhvb2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHB1Ymxpc2ggYSBsaW5rIHRvIGJ1aWxkIGxvZ3Mgd2hlbiBidWlsZCBpcyBzdWNjZXNzZnVsLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9qbGhvb2QvZ2l0aHViLWNvZGVidWlsZC1sb2dzI2FwcC1wYXJhbWV0ZXJzXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY0xvZ3NPblN1Y2Nlc3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRlbGV0ZSBwcmV2aW91c2x5IHB1Ymxpc2hlZCBsaW5rcyB0byBidWlsZCBsb2dzXG4gICAqIGJlZm9yZSBwb3N0aW5nIGEgbmV3IG9uZS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vamxob29kL2dpdGh1Yi1jb2RlYnVpbGQtbG9ncyNhcHAtcGFyYW1ldGVyc1xuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBkZWxldGVQcmV2aW91c1B1YmxpY0xvZ3NMaW5rcz86IGJvb2xlYW47XG5cbiAgLyogdHNsaW50OmRpc2FibGU6bWF4LWxpbmUtbGVuZ3RoICovXG4gIC8qKlxuICAgKiBCdWlsZCBzcGVjIGZpbGUgdG8gdXNlIGZvciBBdXRvQnVpbGRcbiAgICpcbiAgICogQGRlZmF1bHQgQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1jb2RlYnVpbGQtcHJvamVjdC1zb3VyY2UuaHRtbCNjZm4tY29kZWJ1aWxkLXByb2plY3Qtc291cmNlLWJ1aWxkc3BlY1xuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRTcGVjPzogY29kZWJ1aWxkLkJ1aWxkU3BlYztcbiAgLyogdHNsaW50OmVuYWJsZTptYXgtbGluZS1sZW5ndGggKi9cblxuICAvKipcbiAgICogQVJUSUZBQ1RTXG4gICAqL1xuICByZWFkb25seSBhcnRpZmFjdHM/OiBjb2RlYnVpbGQuSUFydGlmYWN0cztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXRvQnVpbGRQcm9wcyBleHRlbmRzIEF1dG9CdWlsZE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHJlcG9zaXRvcnkgdG8gbW9uaXRvci5cbiAgICpcbiAgICogTXVzdCBiZSBhIEdpdEh1YiByZXBvc2l0b3J5IGZvciBgcHVibGljTG9nc2AgdG8gaGF2ZSBhbnkgZWZmZWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgcmVwbzogSVJlcG87XG5cbiAgLyoqXG4gICAqIFRoZSBzcGVjaWZpYyBicmFuY2ggdG8gYmUgY29uc2lkZXJlZCBmb3IgYXV0by1idWlsZHMuXG4gICAqXG4gICAqIFNwZWNpZnkgYXQgbW9zdCBvbmUgb2YgYGJyYW5jaGAgYW5kIGBicmFuY2hlc2AuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYW55ICYgYWxsIGJyYW5jaGVzLlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgYGJyYW5jaGVzYCBpbnN0ZWFkLlxuICAgKi9cbiAgcmVhZG9ubHkgYnJhbmNoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc3BlY2lmaWMgYnJhbmNoIHRvIGJlIGNvbnNpZGVyZWQgZm9yIGF1dG8tYnVpbGRzLlxuICAgKlxuICAgKiBTcGVjaWZ5IGF0IG1vc3Qgb25lIG9mIGBicmFuY2hgIGFuZCBgYnJhbmNoZXNgLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGFueSAmIGFsbCBicmFuY2hlcy5cbiAgICovXG4gIHJlYWRvbmx5IGJyYW5jaGVzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBjbGFzcyBBdXRvQnVpbGQgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuXG4gIC8qKlxuICAgKiBUaGUgdW5kZXJseWluZyBgQ29kZUJ1aWxkYCBwcm9qZWN0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHByb2plY3Q6IGNvZGVidWlsZC5Qcm9qZWN0O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBBdXRvQnVpbGRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLnByb2plY3QgPSBuZXcgY29kZWJ1aWxkLlByb2plY3QodGhpcywgJ1Byb2plY3QnLCB7XG4gICAgICBwcm9qZWN0TmFtZTogcHJvcHMucHJvamVjdE5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogYEF1dG9tYXRpYyBQUiBidWlsZCBmb3IgJHtwcm9wcy5yZXBvLmRlc2NyaWJlKCl9YCxcbiAgICAgIHNvdXJjZTogcHJvcHMucmVwby5jcmVhdGVCdWlsZFNvdXJjZSh0aGlzLCBwcm9wcy53ZWJob29rID8/IHRydWUsIHsgYnJhbmNoOiBwcm9wcy5icmFuY2gsIGJyYW5jaGVzOiBwcm9wcy5icmFuY2hlcyB9KSxcbiAgICAgIGVudmlyb25tZW50OiBjcmVhdGVCdWlsZEVudmlyb25tZW50KHByb3BzLmVudmlyb25tZW50ID8/IHt9KSxcbiAgICAgIGJhZGdlOiBwcm9wcy5yZXBvLmFsbG93c0JhZGdlLFxuICAgICAgYnVpbGRTcGVjOiBwcm9wcy5idWlsZFNwZWMsXG4gICAgICBhcnRpZmFjdHM6IHByb3BzLmFydGlmYWN0cyxcbiAgICAgIHNzbVNlc3Npb25QZXJtaXNzaW9uczogdHJ1ZSxcbiAgICB9KTtcbiAgICB0aGlzLnByb2plY3Qucm9sZSEuYWRkTWFuYWdlZFBvbGljeShpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoJ0FtYXpvbkVsYXN0aWNDb250YWluZXJSZWdpc3RyeVB1YmxpY1JlYWRPbmx5JykpO1xuXG4gICAgY29uc3QgcHVibGljTG9ncyA9IHByb3BzLnB1YmxpY0xvZ3MgIT09IHVuZGVmaW5lZCA/IHByb3BzLnB1YmxpY0xvZ3MgOiBmYWxzZTtcbiAgICBjb25zdCBnaXRodWJUb2tlbiA9IHByb3BzLnJlcG8udG9rZW5TZWNyZXRBcm4gPyBTZWNyZXRWYWx1ZS5zZWNyZXRzTWFuYWdlcihwcm9wcy5yZXBvLnRva2VuU2VjcmV0QXJuKSA6IHVuZGVmaW5lZDtcblxuICAgIGlmIChwdWJsaWNMb2dzKSB7XG4gICAgICBuZXcgc2VydmVybGVzcy5DZm5BcHBsaWNhdGlvbih0aGlzLCAnR2l0SHViQ29kZUJ1aWxkTG9nc1NBUicsIHtcbiAgICAgICAgbG9jYXRpb246IHtcbiAgICAgICAgICBhcHBsaWNhdGlvbklkOiAnYXJuOmF3czpzZXJ2ZXJsZXNzcmVwbzp1cy1lYXN0LTE6Mjc3MTg3NzA5NjE1OmFwcGxpY2F0aW9ucy9naXRodWItY29kZWJ1aWxkLWxvZ3MnLFxuICAgICAgICAgIHNlbWFudGljVmVyc2lvbjogJzEuNi4wJyxcbiAgICAgICAgfSxcbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgIENvZGVCdWlsZFByb2plY3ROYW1lOiB0aGlzLnByb2plY3QucHJvamVjdE5hbWUsXG4gICAgICAgICAgRGVsZXRlUHJldmlvdXNDb21tZW50czogKHByb3BzLmRlbGV0ZVByZXZpb3VzUHVibGljTG9nc0xpbmtzID8/IHRydWUpLnRvU3RyaW5nKCksXG4gICAgICAgICAgQ29tbWVudE9uU3VjY2VzczogKHByb3BzLnB1YmxpY0xvZ3NPblN1Y2Nlc3MgPz8gdHJ1ZSkudG9TdHJpbmcoKSxcbiAgICAgICAgICAuLi5naXRodWJUb2tlbiA/IHsgR2l0SHViT0F1dGhUb2tlbjogZ2l0aHViVG9rZW4udW5zYWZlVW53cmFwKCkgfSA6IHVuZGVmaW5lZCxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19