aws-delivlib
Version:
A fabulous library for defining continuous pipelines for building, testing and releasing code libraries.
40 lines • 10.1 kB
JavaScript
;
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