carlin 1.31.11 → 1.31.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/dist/index.js +4477 -4
  2. package/package.json +10 -10
  3. package/dist/cli.js +0 -246
  4. package/dist/config.js +0 -11
  5. package/dist/deploy/addDefaults.cloudformation.js +0 -151
  6. package/dist/deploy/baseStack/command.js +0 -9
  7. package/dist/deploy/baseStack/config.js +0 -30
  8. package/dist/deploy/baseStack/deployBaseStack.js +0 -62
  9. package/dist/deploy/baseStack/getBaseStackResource.js +0 -27
  10. package/dist/deploy/baseStack/getBucketTemplate.js +0 -46
  11. package/dist/deploy/baseStack/getLambdaImageBuilderTemplate.js +0 -188
  12. package/dist/deploy/baseStack/getLambdaLayerBuilderTemplate.js +0 -142
  13. package/dist/deploy/baseStack/getVpcTemplate.js +0 -169
  14. package/dist/deploy/cicd/cicd.template.js +0 -938
  15. package/dist/deploy/cicd/command.js +0 -31
  16. package/dist/deploy/cicd/command.options.js +0 -79
  17. package/dist/deploy/cicd/config.js +0 -8
  18. package/dist/deploy/cicd/deployCicd.js +0 -121
  19. package/dist/deploy/cicd/ecsTaskReportCommand.js +0 -55
  20. package/dist/deploy/cicd/getCicdStackName.js +0 -11
  21. package/dist/deploy/cicd/getTriggerPipelineObjectKey.js +0 -11
  22. package/dist/deploy/cicd/lambdas/cicdApiV1.handler.js +0 -124
  23. package/dist/deploy/cicd/lambdas/ecsTaskReport.handler.js +0 -126
  24. package/dist/deploy/cicd/lambdas/executeTasks.js +0 -67
  25. package/dist/deploy/cicd/lambdas/getProcessEnvVariable.js +0 -10
  26. package/dist/deploy/cicd/lambdas/githubWebhooksApiV1.handler.js +0 -148
  27. package/dist/deploy/cicd/lambdas/imageUpdaterSchedule.handler.js +0 -44
  28. package/dist/deploy/cicd/lambdas/index.js +0 -13
  29. package/dist/deploy/cicd/lambdas/pipelines.handler.js +0 -160
  30. package/dist/deploy/cicd/lambdas/putApprovalResultManualTask.js +0 -51
  31. package/dist/deploy/cicd/lambdas/shConditionalCommands.js +0 -30
  32. package/dist/deploy/cicd/pipelines.js +0 -86
  33. package/dist/deploy/cicd/readSSHKey.js +0 -34
  34. package/dist/deploy/cloudformation.core.js +0 -379
  35. package/dist/deploy/cloudformation.js +0 -189
  36. package/dist/deploy/command.js +0 -205
  37. package/dist/deploy/lambda/buildLambdaSingleFile.js +0 -67
  38. package/dist/deploy/lambda/deployLambdaCode.js +0 -43
  39. package/dist/deploy/lambda/deployLambdaLayers.js +0 -36
  40. package/dist/deploy/lambda/uploadCodeToECR.js +0 -53
  41. package/dist/deploy/lambda/uploadCodeToS3.js +0 -33
  42. package/dist/deploy/lambdaLayer/command.js +0 -50
  43. package/dist/deploy/lambdaLayer/deployLambdaLayer.js +0 -139
  44. package/dist/deploy/lambdaLayer/getPackageLambdaLayerStackName.js +0 -21
  45. package/dist/deploy/readDockerfile.js +0 -40
  46. package/dist/deploy/s3.js +0 -210
  47. package/dist/deploy/stackName.js +0 -85
  48. package/dist/deploy/staticApp/command.js +0 -86
  49. package/dist/deploy/staticApp/deployStaticApp.js +0 -65
  50. package/dist/deploy/staticApp/findDefaultBuildFolder.js +0 -44
  51. package/dist/deploy/staticApp/getStaticAppBucket.js +0 -19
  52. package/dist/deploy/staticApp/invalidateCloudFront.js +0 -44
  53. package/dist/deploy/staticApp/removeOldVersions.js +0 -56
  54. package/dist/deploy/staticApp/staticApp.template.js +0 -371
  55. package/dist/deploy/staticApp/uploadBuiltAppToS3.js +0 -28
  56. package/dist/deploy/utils.js +0 -31
  57. package/dist/deploy/vercel/command.js +0 -31
  58. package/dist/deploy/vercel/deployVercel.js +0 -59
  59. package/dist/generateEnv/generateEnv.js +0 -64
  60. package/dist/generateEnv/generateEnvCommand.js +0 -29
  61. package/dist/utils/addGroupToOptions.js +0 -11
  62. package/dist/utils/cloudFormationTemplate.js +0 -142
  63. package/dist/utils/codeBuild.js +0 -52
  64. package/dist/utils/environmentVariables.js +0 -16
  65. package/dist/utils/exec.js +0 -26
  66. package/dist/utils/formatCode.js +0 -34
  67. package/dist/utils/getAwsAccountId.js +0 -10
  68. package/dist/utils/getCurrentBranch.js +0 -35
  69. package/dist/utils/getEnvironment.js +0 -8
  70. package/dist/utils/getIamPath.js +0 -6
  71. package/dist/utils/getProjectName.js +0 -35
  72. package/dist/utils/index.js +0 -31
  73. package/dist/utils/packageJson.js +0 -32
  74. package/dist/utils/spawn.js +0 -34
@@ -1,188 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getLambdaImageBuilderTemplate = void 0;
7
- const config_1 = require("./config");
8
- const utils_1 = require("../../utils");
9
- const js_yaml_1 = __importDefault(require("js-yaml"));
10
- const getLambdaImageBuilderTemplate = () => {
11
- const CODE_BUILD_PROJECT_LOGS_LOGICAL_ID = 'CodeBuildProjectLogsLogGroup';
12
- const CODE_BUILD_PROJECT_SERVICE_ROLE_LOGICAL_ID = 'ImageCodeBuildProjectIAMRole';
13
- return {
14
- AWSTemplateFormatVersion: '2010-09-09',
15
- Resources: {
16
- [CODE_BUILD_PROJECT_LOGS_LOGICAL_ID]: {
17
- Type: 'AWS::Logs::LogGroup',
18
- DeletionPolicy: 'Delete',
19
- Properties: {},
20
- },
21
- [CODE_BUILD_PROJECT_SERVICE_ROLE_LOGICAL_ID]: {
22
- Type: 'AWS::IAM::Role',
23
- Properties: {
24
- AssumeRolePolicyDocument: {
25
- Version: '2012-10-17',
26
- Statement: [
27
- {
28
- Effect: 'Allow',
29
- Principal: {
30
- Service: 'codebuild.amazonaws.com',
31
- },
32
- Action: 'sts:AssumeRole',
33
- },
34
- ],
35
- },
36
- Path: (0, utils_1.getIamPath)(),
37
- Policies: [
38
- {
39
- PolicyName: `${CODE_BUILD_PROJECT_SERVICE_ROLE_LOGICAL_ID}Policy`,
40
- PolicyDocument: {
41
- Version: '2012-10-17',
42
- Statement: [
43
- {
44
- Effect: 'Allow',
45
- Action: ['logs:CreateLogStream', 'logs:PutLogEvents'],
46
- Resource: '*',
47
- },
48
- {
49
- Effect: 'Allow',
50
- Action: ['ecr:GetAuthorizationToken'],
51
- Resource: '*',
52
- },
53
- {
54
- Effect: 'Allow',
55
- Action: [
56
- 'ecr:BatchCheckLayerAvailability',
57
- 'ecr:CompleteLayerUpload',
58
- 'ecr:InitiateLayerUpload',
59
- 'ecr:PutImage',
60
- 'ecr:UploadLayerPart',
61
- ],
62
- Resource: '*',
63
- },
64
- {
65
- Effect: 'Allow',
66
- Action: 's3:GetObject',
67
- Resource: [
68
- {
69
- 'Fn::Sub': [
70
- // eslint-disable-next-line no-template-curly-in-string
71
- 'arn:aws:s3:::${BucketName}/*',
72
- {
73
- BucketName: {
74
- Ref: config_1.BASE_STACK_BUCKET_LOGICAL_NAME,
75
- },
76
- },
77
- ],
78
- },
79
- ],
80
- },
81
- ],
82
- },
83
- },
84
- ],
85
- },
86
- },
87
- [config_1.BASE_STACK_LAMBDA_IMAGE_BUILDER_LOGICAL_NAME]: {
88
- Type: 'AWS::CodeBuild::Project',
89
- Properties: {
90
- Artifacts: {
91
- Type: 'NO_ARTIFACTS',
92
- },
93
- Cache: {
94
- Location: 'LOCAL',
95
- Modes: ['LOCAL_DOCKER_LAYER_CACHE'],
96
- Type: 'LOCAL',
97
- },
98
- Description: 'Create Lambda image.',
99
- Environment: {
100
- ComputeType: 'BUILD_GENERAL1_SMALL',
101
- EnvironmentVariables: [
102
- {
103
- Name: 'AWS_ACCOUNT_ID',
104
- Value: { Ref: 'AWS::AccountId' },
105
- },
106
- {
107
- Name: 'AWS_REGION',
108
- Value: { Ref: 'AWS::Region' },
109
- },
110
- {
111
- Name: 'IMAGE_TAG',
112
- Value: 'latest',
113
- },
114
- {
115
- Name: 'LAMBDA_EXTERNALS',
116
- Value: '',
117
- },
118
- ],
119
- Image: 'aws/codebuild/standard:3.0',
120
- ImagePullCredentialsType: 'CODEBUILD',
121
- PrivilegedMode: true,
122
- Type: 'LINUX_CONTAINER',
123
- },
124
- LogsConfig: {
125
- CloudWatchLogs: {
126
- Status: 'ENABLED',
127
- GroupName: { Ref: CODE_BUILD_PROJECT_LOGS_LOGICAL_ID },
128
- },
129
- },
130
- ServiceRole: {
131
- 'Fn::GetAtt': [CODE_BUILD_PROJECT_SERVICE_ROLE_LOGICAL_ID, 'Arn'],
132
- },
133
- Source: {
134
- BuildSpec: js_yaml_1.default.dump({
135
- version: '0.2',
136
- phases: {
137
- install: {
138
- commands: [
139
- 'echo install started on `date`',
140
- 'npm init -y',
141
- /**
142
- * https://stackoverflow.com/a/51433146/8786986
143
- */
144
- 'npm install --save --package-lock-only --no-package-lock $LAMBDA_EXTERNALS',
145
- 'ls',
146
- ],
147
- },
148
- pre_build: {
149
- commands: [
150
- 'echo pre_build started on `date`',
151
- '$(aws ecr get-login --no-include-email --region $AWS_REGION)',
152
- ],
153
- },
154
- build: {
155
- commands: [
156
- 'echo build started on `date`',
157
- 'echo Building the repository image...',
158
- 'echo "$DOCKERFILE" > Dockerfile',
159
- 'docker build -t $REPOSITORY_ECR_REPOSITORY:$IMAGE_TAG -f Dockerfile .',
160
- 'docker tag $REPOSITORY_ECR_REPOSITORY:$IMAGE_TAG $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/$REPOSITORY_ECR_REPOSITORY:$IMAGE_TAG',
161
- ],
162
- },
163
- post_build: {
164
- commands: [
165
- 'echo post_build completed on `date`',
166
- 'echo Pushing the repository image...',
167
- 'docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/$REPOSITORY_ECR_REPOSITORY:$IMAGE_TAG',
168
- ],
169
- },
170
- },
171
- }),
172
- Type: 'NO_SOURCE',
173
- },
174
- TimeoutInMinutes: 60,
175
- },
176
- },
177
- },
178
- Outputs: {
179
- [config_1.BASE_STACK_LAMBDA_IMAGE_BUILDER_LOGICAL_NAME]: {
180
- Value: { Ref: config_1.BASE_STACK_LAMBDA_IMAGE_BUILDER_LOGICAL_NAME },
181
- Export: {
182
- Name: config_1.BASE_STACK_LAMBDA_IMAGE_BUILDER_EXPORTED_NAME,
183
- },
184
- },
185
- },
186
- };
187
- };
188
- exports.getLambdaImageBuilderTemplate = getLambdaImageBuilderTemplate;
@@ -1,142 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getLambdaLayerBuilderTemplate = exports.getBuildSpec = void 0;
4
- const config_1 = require("./config");
5
- const utils_1 = require("../../utils");
6
- const CODE_BUILD_PROJECT_LOGS_GROUP_LOGICAL_ID = `${config_1.BASE_STACK_LAMBDA_LAYER_BUILDER_LOGICAL_NAME}LogsLogGroup`;
7
- const CODE_BUILD_PROJECT_IAM_ROLE_LOGICAL_ID = `${config_1.BASE_STACK_LAMBDA_LAYER_BUILDER_LOGICAL_NAME}Role`;
8
- /**
9
- * https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html
10
- */
11
- const getBuildSpec = () => {
12
- return `
13
- version: 0.2
14
- phases:
15
- install:
16
- runtime-versions:
17
- nodejs: 12
18
- commands:
19
- - npm i --no-bin-links --no-optional --no-package-lock --no-save --no-shrinkwrap $PACKAGE_NAME
20
- - mkdir nodejs
21
- - mv node_modules nodejs/node_modules
22
- artifacts:
23
- files:
24
- - nodejs/**/*
25
- name: $PACKAGE_NAME.zip
26
- `.trim();
27
- };
28
- exports.getBuildSpec = getBuildSpec;
29
- /**
30
- * https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html
31
- */
32
- const getLambdaLayerBuilderTemplate = () => {
33
- return {
34
- Resources: {
35
- [CODE_BUILD_PROJECT_IAM_ROLE_LOGICAL_ID]: {
36
- Type: 'AWS::IAM::Role',
37
- Properties: {
38
- AssumeRolePolicyDocument: {
39
- Version: '2012-10-17',
40
- Statement: [
41
- {
42
- Effect: 'Allow',
43
- Principal: {
44
- Service: ['codebuild.amazonaws.com'],
45
- },
46
- Action: ['sts:AssumeRole'],
47
- },
48
- ],
49
- },
50
- Path: (0, utils_1.getIamPath)(),
51
- Policies: [
52
- {
53
- PolicyName: `${CODE_BUILD_PROJECT_IAM_ROLE_LOGICAL_ID}Policy`,
54
- PolicyDocument: {
55
- Version: '2012-10-17',
56
- Statement: [
57
- {
58
- Effect: 'Allow',
59
- Action: ['logs:CreateLogStream', 'logs:PutLogEvents'],
60
- Resource: '*',
61
- },
62
- {
63
- Effect: 'Allow',
64
- Action: ['s3:*'],
65
- Resource: [
66
- {
67
- 'Fn::Sub': [
68
- // eslint-disable-next-line no-template-curly-in-string
69
- 'arn:aws:s3:::${BucketName}',
70
- {
71
- BucketName: {
72
- Ref: config_1.BASE_STACK_BUCKET_LOGICAL_NAME,
73
- },
74
- },
75
- ],
76
- },
77
- {
78
- 'Fn::Sub': [
79
- // eslint-disable-next-line no-template-curly-in-string
80
- 'arn:aws:s3:::${BucketName}/*',
81
- {
82
- BucketName: {
83
- Ref: config_1.BASE_STACK_BUCKET_LOGICAL_NAME,
84
- },
85
- },
86
- ],
87
- },
88
- ],
89
- },
90
- ],
91
- },
92
- },
93
- ],
94
- },
95
- },
96
- [CODE_BUILD_PROJECT_LOGS_GROUP_LOGICAL_ID]: {
97
- Type: 'AWS::Logs::LogGroup',
98
- DeletionPolicy: 'Delete',
99
- Properties: {},
100
- },
101
- [config_1.BASE_STACK_LAMBDA_LAYER_BUILDER_LOGICAL_NAME]: {
102
- Type: 'AWS::CodeBuild::Project',
103
- Properties: {
104
- Artifacts: {
105
- Location: { Ref: config_1.BASE_STACK_BUCKET_LOGICAL_NAME },
106
- NamespaceType: 'NONE',
107
- OverrideArtifactName: true,
108
- Packaging: 'ZIP',
109
- Path: 'lambda-layers/packages',
110
- Type: 'S3',
111
- },
112
- Environment: {
113
- ComputeType: 'BUILD_GENERAL1_SMALL',
114
- Image: 'aws/codebuild/standard:3.0',
115
- Type: 'LINUX_CONTAINER',
116
- },
117
- LogsConfig: {
118
- CloudWatchLogs: {
119
- GroupName: {
120
- Ref: `${CODE_BUILD_PROJECT_LOGS_GROUP_LOGICAL_ID}`,
121
- },
122
- Status: 'ENABLED',
123
- },
124
- },
125
- ServiceRole: {
126
- 'Fn::GetAtt': `${CODE_BUILD_PROJECT_IAM_ROLE_LOGICAL_ID}.Arn`,
127
- },
128
- Source: {
129
- BuildSpec: (0, exports.getBuildSpec)(),
130
- Type: 'NO_SOURCE',
131
- },
132
- },
133
- },
134
- },
135
- Outputs: {
136
- [config_1.BASE_STACK_LAMBDA_LAYER_BUILDER_LOGICAL_NAME]: {
137
- Value: { Ref: config_1.BASE_STACK_LAMBDA_LAYER_BUILDER_LOGICAL_NAME },
138
- },
139
- },
140
- };
141
- };
142
- exports.getLambdaLayerBuilderTemplate = getLambdaLayerBuilderTemplate;
@@ -1,169 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getVpcTemplate = void 0;
4
- const change_case_1 = require("change-case");
5
- const config_1 = require("../../config");
6
- const config_2 = require("./config");
7
- const getVpcTemplate = () => {
8
- const vpcName = `${(0, change_case_1.pascalCase)(config_1.NAME)}VPC`;
9
- const EC2_INTERNET_GATEWAY_LOGICAL_ID = 'EC2InternetGateway';
10
- const EC2_ROUTE_TABLE_LOGICAL_ID = 'EC2RouteTable';
11
- const EC2_VPC_LOGICAL_ID = 'EC2VCP';
12
- const template = {
13
- AWSTemplateFormatVersion: '2010-09-09',
14
- Mappings: {
15
- CidrMappings: {
16
- VPC: {
17
- CIDR: '10.0.0.0/16',
18
- },
19
- },
20
- },
21
- Resources: {
22
- [EC2_VPC_LOGICAL_ID]: {
23
- Type: 'AWS::EC2::VPC',
24
- Properties: {
25
- CidrBlock: {
26
- 'Fn::FindInMap': ['CidrMappings', 'VPC', 'CIDR'],
27
- },
28
- EnableDnsHostnames: true,
29
- EnableDnsSupport: true,
30
- Tags: [
31
- {
32
- Key: 'Name',
33
- Value: vpcName,
34
- },
35
- ],
36
- },
37
- },
38
- [EC2_INTERNET_GATEWAY_LOGICAL_ID]: {
39
- Type: 'AWS::EC2::InternetGateway',
40
- Properties: {},
41
- },
42
- EC2VPCGatewayAttachment: {
43
- Type: 'AWS::EC2::VPCGatewayAttachment',
44
- Properties: {
45
- InternetGatewayId: {
46
- Ref: EC2_INTERNET_GATEWAY_LOGICAL_ID,
47
- },
48
- VpcId: {
49
- Ref: EC2_VPC_LOGICAL_ID,
50
- },
51
- },
52
- },
53
- [EC2_ROUTE_TABLE_LOGICAL_ID]: {
54
- Type: 'AWS::EC2::RouteTable',
55
- Properties: {
56
- Tags: [
57
- {
58
- Key: 'Name',
59
- Value: {
60
- 'Fn::Join': [' ', [vpcName, '-', EC2_ROUTE_TABLE_LOGICAL_ID]],
61
- },
62
- },
63
- ],
64
- VpcId: {
65
- Ref: EC2_VPC_LOGICAL_ID,
66
- },
67
- },
68
- },
69
- EC2Route: {
70
- Type: 'AWS::EC2::Route',
71
- Properties: {
72
- DestinationCidrBlock: '0.0.0.0/0',
73
- GatewayId: {
74
- Ref: EC2_INTERNET_GATEWAY_LOGICAL_ID,
75
- },
76
- RouteTableId: {
77
- Ref: EC2_ROUTE_TABLE_LOGICAL_ID,
78
- },
79
- },
80
- },
81
- },
82
- Outputs: {
83
- VPCId: {
84
- Value: {
85
- Ref: EC2_VPC_LOGICAL_ID,
86
- },
87
- Export: {
88
- Name: config_2.BASE_STACK_VPC_ID_EXPORTED_NAME,
89
- },
90
- },
91
- VPCDefaultSecurityGroup: {
92
- Value: {
93
- 'Fn::GetAtt': [EC2_VPC_LOGICAL_ID, 'DefaultSecurityGroup'],
94
- },
95
- Export: {
96
- Name: config_2.BASE_STACK_VPC_DEFAULT_SECURITY_GROUP_EXPORTED_NAME,
97
- },
98
- },
99
- },
100
- };
101
- [
102
- config_2.BASE_STACK_VPC_PUBLIC_SUBNET_0_EXPORTED_NAME,
103
- config_2.BASE_STACK_VPC_PUBLIC_SUBNET_1_EXPORTED_NAME,
104
- config_2.BASE_STACK_VPC_PUBLIC_SUBNET_2_EXPORTED_NAME,
105
- ].forEach((publicSubnetExportedName, index) => {
106
- const publicSubnetLogicalId = `PublicSubnet${index}EC2Subnet`;
107
- const publicSubnetCidrMappings = `PublicSubnet${index}`;
108
- template.Mappings.CidrMappings[publicSubnetCidrMappings] = {
109
- CIDR: `10.0.${index}.0/24`,
110
- };
111
- template.Resources[publicSubnetLogicalId] = {
112
- Type: 'AWS::EC2::Subnet',
113
- Properties: {
114
- AvailabilityZone: {
115
- 'Fn::Select': [
116
- index,
117
- {
118
- 'Fn::GetAZs': {
119
- Ref: 'AWS::Region',
120
- },
121
- },
122
- ],
123
- },
124
- CidrBlock: {
125
- 'Fn::FindInMap': ['CidrMappings', publicSubnetCidrMappings, 'CIDR'],
126
- },
127
- MapPublicIpOnLaunch: true,
128
- Tags: [
129
- {
130
- Key: 'Name',
131
- Value: {
132
- 'Fn::Join': [
133
- ' ',
134
- [EC2_VPC_LOGICAL_ID, '-', publicSubnetLogicalId],
135
- ],
136
- },
137
- },
138
- ],
139
- VpcId: {
140
- Ref: EC2_VPC_LOGICAL_ID,
141
- },
142
- },
143
- };
144
- template.Resources[`PublicSubnet${index}EC2SubnetRouteTableAssociation`] = {
145
- Type: 'AWS::EC2::SubnetRouteTableAssociation',
146
- Properties: {
147
- RouteTableId: {
148
- Ref: EC2_ROUTE_TABLE_LOGICAL_ID,
149
- },
150
- SubnetId: {
151
- Ref: publicSubnetLogicalId,
152
- },
153
- },
154
- };
155
- if (!template.Outputs) {
156
- template.Outputs = {};
157
- }
158
- template.Outputs[publicSubnetLogicalId] = {
159
- Value: {
160
- Ref: publicSubnetLogicalId,
161
- },
162
- Export: {
163
- Name: publicSubnetExportedName,
164
- },
165
- };
166
- });
167
- return template;
168
- };
169
- exports.getVpcTemplate = getVpcTemplate;