@liflig/cdk 2.21.3 → 2.21.4
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.
- package/lib/index.d.ts +1 -4
- package/lib/index.js +2 -6
- package/package.json +12 -12
- package/lib/cdk-deploy/cdk-deploy.d.ts +0 -63
- package/lib/cdk-deploy/cdk-deploy.js +0 -174
- package/lib/cdk-deploy/index.d.ts +0 -1
- package/lib/cdk-deploy/index.js +0 -6
- package/lib/cdk-deploy/start-deploy-handler.d.ts +0 -8
- package/lib/cdk-deploy/start-deploy-handler.js +0 -65
- package/lib/cdk-deploy/status-handler.d.ts +0 -6
- package/lib/cdk-deploy/status-handler.js +0 -80
- package/lib/ecs-update-image/artifact-status.d.ts +0 -39
- package/lib/ecs-update-image/artifact-status.js +0 -41
- package/lib/ecs-update-image/ecs-update-image.d.ts +0 -41
- package/lib/ecs-update-image/ecs-update-image.js +0 -97
- package/lib/ecs-update-image/index.d.ts +0 -3
- package/lib/ecs-update-image/index.js +0 -10
- package/lib/ecs-update-image/start-deploy-handler.d.ts +0 -6
- package/lib/ecs-update-image/start-deploy-handler.js +0 -95
- package/lib/ecs-update-image/status-handler.d.ts +0 -11
- package/lib/ecs-update-image/status-handler.js +0 -67
- package/lib/ecs-update-image/tag.d.ts +0 -47
- package/lib/ecs-update-image/tag.js +0 -67
- package/lib/pipelines/conventions.d.ts +0 -14
- package/lib/pipelines/conventions.js +0 -24
- package/lib/pipelines/deploy-env.d.ts +0 -18
- package/lib/pipelines/deploy-env.js +0 -96
- package/lib/pipelines/index.d.ts +0 -2
- package/lib/pipelines/index.js +0 -8
- package/lib/pipelines/liflig-cdk-deployer-deps.d.ts +0 -13
- package/lib/pipelines/liflig-cdk-deployer-deps.js +0 -35
- package/lib/pipelines/pipeline.d.ts +0 -78
- package/lib/pipelines/pipeline.js +0 -229
package/lib/index.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import * as alarms from "./alarms";
|
|
2
2
|
import * as cdkPipelines from "./cdk-pipelines";
|
|
3
3
|
import * as griid from "./griid";
|
|
4
|
-
import * as pipelines from "./pipelines";
|
|
5
4
|
import * as ses from "./ses";
|
|
6
5
|
import * as webapp from "./webapp";
|
|
7
6
|
import * as configureParameters from "./configure-parameters";
|
|
@@ -12,16 +11,14 @@ import * as rds from "./rds";
|
|
|
12
11
|
import * as platform from "./platform";
|
|
13
12
|
export { BastionHost } from "./bastion-host";
|
|
14
13
|
export * from "./build-artifacts";
|
|
15
|
-
export * from "./cdk-deploy";
|
|
16
14
|
export { CrossRegionSsmParameter } from "./cross-region-ssm-parameter";
|
|
17
|
-
export * from "./ecs-update-image";
|
|
18
15
|
export { HostedZoneWithParam } from "./hosted-zone-with-param";
|
|
19
16
|
export { createCloudAssemblySnapshot } from "./snapshots";
|
|
20
17
|
export { SsmParameterBackedResource } from "./ssm-parameter-backed-resource";
|
|
21
18
|
export { SsmParameterReader } from "./ssm-parameter-reader";
|
|
22
19
|
export { tagResources } from "./tags";
|
|
23
20
|
export { WebappDeployViaRole } from "./webapp-deploy-via-role";
|
|
24
|
-
export { alarms, cdkPipelines, griid,
|
|
21
|
+
export { alarms, cdkPipelines, griid, ses, webapp, configureParameters, ecs, loadBalancer, rds, platform, cloudTrailSlackIntegration, };
|
|
25
22
|
/**
|
|
26
23
|
* Check if we are synthesizing a snapshot by setting IS_SNAPSHOT
|
|
27
24
|
* environment variable to true.
|
package/lib/index.js
CHANGED
|
@@ -14,15 +14,13 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.isSnapshot = exports.cloudTrailSlackIntegration = exports.platform = exports.rds = exports.loadBalancer = exports.ecs = exports.configureParameters = exports.webapp = exports.ses = exports.
|
|
17
|
+
exports.isSnapshot = exports.cloudTrailSlackIntegration = exports.platform = exports.rds = exports.loadBalancer = exports.ecs = exports.configureParameters = exports.webapp = exports.ses = exports.griid = exports.cdkPipelines = exports.alarms = exports.WebappDeployViaRole = exports.tagResources = exports.SsmParameterReader = exports.SsmParameterBackedResource = exports.createCloudAssemblySnapshot = exports.HostedZoneWithParam = exports.CrossRegionSsmParameter = exports.BastionHost = void 0;
|
|
18
18
|
const alarms = require("./alarms");
|
|
19
19
|
exports.alarms = alarms;
|
|
20
20
|
const cdkPipelines = require("./cdk-pipelines");
|
|
21
21
|
exports.cdkPipelines = cdkPipelines;
|
|
22
22
|
const griid = require("./griid");
|
|
23
23
|
exports.griid = griid;
|
|
24
|
-
const pipelines = require("./pipelines");
|
|
25
|
-
exports.pipelines = pipelines;
|
|
26
24
|
const ses = require("./ses");
|
|
27
25
|
exports.ses = ses;
|
|
28
26
|
const webapp = require("./webapp");
|
|
@@ -44,10 +42,8 @@ exports.platform = platform;
|
|
|
44
42
|
var bastion_host_1 = require("./bastion-host");
|
|
45
43
|
Object.defineProperty(exports, "BastionHost", { enumerable: true, get: function () { return bastion_host_1.BastionHost; } });
|
|
46
44
|
__exportStar(require("./build-artifacts"), exports);
|
|
47
|
-
__exportStar(require("./cdk-deploy"), exports);
|
|
48
45
|
var cross_region_ssm_parameter_1 = require("./cross-region-ssm-parameter");
|
|
49
46
|
Object.defineProperty(exports, "CrossRegionSsmParameter", { enumerable: true, get: function () { return cross_region_ssm_parameter_1.CrossRegionSsmParameter; } });
|
|
50
|
-
__exportStar(require("./ecs-update-image"), exports);
|
|
51
47
|
var hosted_zone_with_param_1 = require("./hosted-zone-with-param");
|
|
52
48
|
Object.defineProperty(exports, "HostedZoneWithParam", { enumerable: true, get: function () { return hosted_zone_with_param_1.HostedZoneWithParam; } });
|
|
53
49
|
var snapshots_1 = require("./snapshots");
|
|
@@ -68,4 +64,4 @@ Object.defineProperty(exports, "WebappDeployViaRole", { enumerable: true, get: f
|
|
|
68
64
|
* happen during snapshot creation.
|
|
69
65
|
*/
|
|
70
66
|
exports.isSnapshot = process.env.IS_SNAPSHOT === "true";
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtQ0FBa0M7QUEwQmhDLHdCQUFNO0FBekJSLGdEQUErQztBQTBCN0Msb0NBQVk7QUF6QmQsaUNBQWdDO0FBMEI5QixzQkFBSztBQXpCUCw2QkFBNEI7QUEwQjFCLGtCQUFHO0FBekJMLG1DQUFrQztBQTBCaEMsd0JBQU07QUF6QlIsOERBQTZEO0FBMEIzRCxrREFBbUI7QUF6QnJCLDZCQUE0QjtBQTBCMUIsa0JBQUc7QUF6QkwsZ0RBQStDO0FBMEI3QyxvQ0FBWTtBQXpCZCw2RUFBNEU7QUE0QjFFLGdFQUEwQjtBQTNCNUIsNkJBQTRCO0FBeUIxQixrQkFBRztBQXhCTCx1Q0FBc0M7QUF5QnBDLDRCQUFRO0FBdkJWLGdFQUFnRTtBQUNoRSx1Q0FBdUM7QUFFdkMsK0NBQTRDO0FBQW5DLDJHQUFBLFdBQVcsT0FBQTtBQUNwQixvREFBaUM7QUFDakMsMkVBQXNFO0FBQTdELHFJQUFBLHVCQUF1QixPQUFBO0FBQ2hDLG1FQUE4RDtBQUFyRCw2SEFBQSxtQkFBbUIsT0FBQTtBQUM1Qix5Q0FBeUQ7QUFBaEQsd0hBQUEsMkJBQTJCLE9BQUE7QUFDcEMsaUZBQTRFO0FBQW5FLDJJQUFBLDBCQUEwQixPQUFBO0FBQ25DLCtEQUEyRDtBQUFsRCwwSEFBQSxrQkFBa0IsT0FBQTtBQUMzQiwrQkFBcUM7QUFBNUIsb0dBQUEsWUFBWSxPQUFBO0FBQ3JCLG1FQUE4RDtBQUFyRCw2SEFBQSxtQkFBbUIsT0FBQTtBQWdCNUI7Ozs7OztHQU1HO0FBQ1UsUUFBQSxVQUFVLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEtBQUssTUFBTSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYWxhcm1zIGZyb20gXCIuL2FsYXJtc1wiXG5pbXBvcnQgKiBhcyBjZGtQaXBlbGluZXMgZnJvbSBcIi4vY2RrLXBpcGVsaW5lc1wiXG5pbXBvcnQgKiBhcyBncmlpZCBmcm9tIFwiLi9ncmlpZFwiXG5pbXBvcnQgKiBhcyBzZXMgZnJvbSBcIi4vc2VzXCJcbmltcG9ydCAqIGFzIHdlYmFwcCBmcm9tIFwiLi93ZWJhcHBcIlxuaW1wb3J0ICogYXMgY29uZmlndXJlUGFyYW1ldGVycyBmcm9tIFwiLi9jb25maWd1cmUtcGFyYW1ldGVyc1wiXG5pbXBvcnQgKiBhcyBlY3MgZnJvbSBcIi4vZWNzXCJcbmltcG9ydCAqIGFzIGxvYWRCYWxhbmNlciBmcm9tIFwiLi9sb2FkLWJhbGFuY2VyXCJcbmltcG9ydCAqIGFzIGNsb3VkVHJhaWxTbGFja0ludGVncmF0aW9uIGZyb20gXCIuL2Nsb3VkdHJhaWwtc2xhY2staW50ZWdyYXRpb25cIlxuaW1wb3J0ICogYXMgcmRzIGZyb20gXCIuL3Jkc1wiXG5pbXBvcnQgKiBhcyBwbGF0Zm9ybSBmcm9tIFwiLi9wbGF0Zm9ybVwiXG5cbi8vIFRPRE86IFdlIHdhbnQgdG8gc3dpdGNoIGV4cG9ydHMgc28gdGhleSBldmVyeSBjb25zdHJ1Y3QgdW5kZXJcbi8vICBhIG5hbWVzcGFjZSBzdWNoIGFzIHRoZSBzbnMgZXhwb3J0LlxuXG5leHBvcnQgeyBCYXN0aW9uSG9zdCB9IGZyb20gXCIuL2Jhc3Rpb24taG9zdFwiXG5leHBvcnQgKiBmcm9tIFwiLi9idWlsZC1hcnRpZmFjdHNcIlxuZXhwb3J0IHsgQ3Jvc3NSZWdpb25Tc21QYXJhbWV0ZXIgfSBmcm9tIFwiLi9jcm9zcy1yZWdpb24tc3NtLXBhcmFtZXRlclwiXG5leHBvcnQgeyBIb3N0ZWRab25lV2l0aFBhcmFtIH0gZnJvbSBcIi4vaG9zdGVkLXpvbmUtd2l0aC1wYXJhbVwiXG5leHBvcnQgeyBjcmVhdGVDbG91ZEFzc2VtYmx5U25hcHNob3QgfSBmcm9tIFwiLi9zbmFwc2hvdHNcIlxuZXhwb3J0IHsgU3NtUGFyYW1ldGVyQmFja2VkUmVzb3VyY2UgfSBmcm9tIFwiLi9zc20tcGFyYW1ldGVyLWJhY2tlZC1yZXNvdXJjZVwiXG5leHBvcnQgeyBTc21QYXJhbWV0ZXJSZWFkZXIgfSBmcm9tIFwiLi9zc20tcGFyYW1ldGVyLXJlYWRlclwiXG5leHBvcnQgeyB0YWdSZXNvdXJjZXMgfSBmcm9tIFwiLi90YWdzXCJcbmV4cG9ydCB7IFdlYmFwcERlcGxveVZpYVJvbGUgfSBmcm9tIFwiLi93ZWJhcHAtZGVwbG95LXZpYS1yb2xlXCJcblxuZXhwb3J0IHtcbiAgYWxhcm1zLFxuICBjZGtQaXBlbGluZXMsXG4gIGdyaWlkLFxuICBzZXMsXG4gIHdlYmFwcCxcbiAgY29uZmlndXJlUGFyYW1ldGVycyxcbiAgZWNzLFxuICBsb2FkQmFsYW5jZXIsXG4gIHJkcyxcbiAgcGxhdGZvcm0sXG4gIGNsb3VkVHJhaWxTbGFja0ludGVncmF0aW9uLFxufVxuXG4vKipcbiAqIENoZWNrIGlmIHdlIGFyZSBzeW50aGVzaXppbmcgYSBzbmFwc2hvdCBieSBzZXR0aW5nIElTX1NOQVBTSE9UXG4gKiBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byB0cnVlLlxuICpcbiAqIFRoaXMgYWxsb3dzIGZvciBzcGVjaWFsIGNvbmRpdGlvbmFsIGxvZ2ljIHRoYXQgc2hvdWxkIG9ubHlcbiAqIGhhcHBlbiBkdXJpbmcgc25hcHNob3QgY3JlYXRpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBpc1NuYXBzaG90ID0gcHJvY2Vzcy5lbnYuSVNfU05BUFNIT1QgPT09IFwidHJ1ZVwiXG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@liflig/cdk",
|
|
3
|
-
"version": "2.21.
|
|
3
|
+
"version": "2.21.4",
|
|
4
4
|
"description": "CDK library for Liflig",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -40,21 +40,21 @@
|
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@aws-cdk/assert": "2.68.0",
|
|
43
|
-
"@aws-sdk/client-cloudwatch-logs": "3.
|
|
44
|
-
"@aws-sdk/client-codebuild": "3.
|
|
45
|
-
"@aws-sdk/client-codepipeline": "3.
|
|
46
|
-
"@aws-sdk/client-ecs": "3.
|
|
47
|
-
"@aws-sdk/client-s3": "3.
|
|
48
|
-
"@aws-sdk/client-secrets-manager": "3.
|
|
49
|
-
"@aws-sdk/client-ses": "3.
|
|
50
|
-
"@aws-sdk/client-sesv2": "3.
|
|
51
|
-
"@aws-sdk/client-sfn": "3.
|
|
52
|
-
"@aws-sdk/lib-storage": "3.
|
|
43
|
+
"@aws-sdk/client-cloudwatch-logs": "3.588.0",
|
|
44
|
+
"@aws-sdk/client-codebuild": "3.588.0",
|
|
45
|
+
"@aws-sdk/client-codepipeline": "3.588.0",
|
|
46
|
+
"@aws-sdk/client-ecs": "3.588.0",
|
|
47
|
+
"@aws-sdk/client-s3": "3.588.0",
|
|
48
|
+
"@aws-sdk/client-secrets-manager": "3.588.0",
|
|
49
|
+
"@aws-sdk/client-ses": "3.588.0",
|
|
50
|
+
"@aws-sdk/client-sesv2": "3.588.0",
|
|
51
|
+
"@aws-sdk/client-sfn": "3.588.0",
|
|
52
|
+
"@aws-sdk/lib-storage": "3.588.0",
|
|
53
53
|
"@commitlint/cli": "19.3.0",
|
|
54
54
|
"@commitlint/config-conventional": "19.2.2",
|
|
55
55
|
"@types/aws-lambda": "8.10.138",
|
|
56
56
|
"@types/jest": "29.5.12",
|
|
57
|
-
"@types/node": "20.
|
|
57
|
+
"@types/node": "20.14.0",
|
|
58
58
|
"@typescript-eslint/eslint-plugin": "5.62.0",
|
|
59
59
|
"@typescript-eslint/parser": "5.62.0",
|
|
60
60
|
"aws-cdk": "2.141.0",
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import * as constructs from "constructs";
|
|
2
|
-
import * as cdk from "aws-cdk-lib";
|
|
3
|
-
interface Props extends cdk.StackProps {
|
|
4
|
-
/**
|
|
5
|
-
* The role that will be granted permission to assume the deploy
|
|
6
|
-
* role. This role must have permission to assume the deploy role.
|
|
7
|
-
*/
|
|
8
|
-
callerRoleArn: string;
|
|
9
|
-
/**
|
|
10
|
-
* The name that will be used for the deploy role. This is the role
|
|
11
|
-
* that the caller will assume in order to have permission to invoke
|
|
12
|
-
* the Lambda Functions.
|
|
13
|
-
*/
|
|
14
|
-
roleName: string;
|
|
15
|
-
/**
|
|
16
|
-
* The bucket used for storing artifacts. This is used to grant
|
|
17
|
-
* permission to the role to read artifact. If the bucket is in
|
|
18
|
-
* another account, it must have a policy which allows the target
|
|
19
|
-
* account to use IAM permissions from target account.
|
|
20
|
-
*/
|
|
21
|
-
artifactsBucketName: string;
|
|
22
|
-
startDeployFunctionName: string;
|
|
23
|
-
statusFunctionName: string;
|
|
24
|
-
/**
|
|
25
|
-
* This is the stack name used with `cdk bootstrap` and can e
|
|
26
|
-
* found in cdk.json as "toolkitStackName".
|
|
27
|
-
*/
|
|
28
|
-
cdkToolkitStackName: string;
|
|
29
|
-
/**
|
|
30
|
-
* We pass the CDK context values as they contain feature flags
|
|
31
|
-
* used by the CDK CLI.
|
|
32
|
-
*/
|
|
33
|
-
cdkContext: Record<string, string | string[]>;
|
|
34
|
-
/**
|
|
35
|
-
* The secret containing username and password (or access token)
|
|
36
|
-
* for a valid docker user. This is used to access private
|
|
37
|
-
* repositories or to handle docker hub's pull rate limiting.
|
|
38
|
-
*/
|
|
39
|
-
dockerCredentialsSecretName?: string;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* This construct is responsible for the privileges and logic of
|
|
43
|
-
* automatically deploying stack resources in an account.
|
|
44
|
-
* Its resources are used from a deployment pipeline.
|
|
45
|
-
*
|
|
46
|
-
* The deployment is performed by invoking the "start deploy"
|
|
47
|
-
* lambda with details of what should be deployed. As this is
|
|
48
|
-
* responsible for deploying infrastructure, the principal invoking
|
|
49
|
-
* might be able to cause privilege escalation. The principal invoking
|
|
50
|
-
* should be assumed to have full administrator access.
|
|
51
|
-
*
|
|
52
|
-
* The process deploying the infrastructure is locked down so this
|
|
53
|
-
* is only possibly by deployment through CloudFormation, and as
|
|
54
|
-
* such removes a lot of possible escalation paths (e.g. no role
|
|
55
|
-
* can be created by direct API call).
|
|
56
|
-
*
|
|
57
|
-
* The "status" lambda can be used to poll for completion, and will
|
|
58
|
-
* also return logs from the job upon completion.
|
|
59
|
-
*/
|
|
60
|
-
export declare class CdkDeploy extends constructs.Construct {
|
|
61
|
-
constructor(scope: constructs.Construct, id: string, props: Props);
|
|
62
|
-
}
|
|
63
|
-
export {};
|
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CdkDeploy = void 0;
|
|
4
|
-
const constructs = require("constructs");
|
|
5
|
-
const codebuild = require("aws-cdk-lib/aws-codebuild");
|
|
6
|
-
const iam = require("aws-cdk-lib/aws-iam");
|
|
7
|
-
const lambda = require("aws-cdk-lib/aws-lambda");
|
|
8
|
-
const s3 = require("aws-cdk-lib/aws-s3");
|
|
9
|
-
const cdk = require("aws-cdk-lib");
|
|
10
|
-
const secretsmanager = require("aws-cdk-lib/aws-secretsmanager");
|
|
11
|
-
const aws_lambda_nodejs_1 = require("aws-cdk-lib/aws-lambda-nodejs");
|
|
12
|
-
/**
|
|
13
|
-
* This construct is responsible for the privileges and logic of
|
|
14
|
-
* automatically deploying stack resources in an account.
|
|
15
|
-
* Its resources are used from a deployment pipeline.
|
|
16
|
-
*
|
|
17
|
-
* The deployment is performed by invoking the "start deploy"
|
|
18
|
-
* lambda with details of what should be deployed. As this is
|
|
19
|
-
* responsible for deploying infrastructure, the principal invoking
|
|
20
|
-
* might be able to cause privilege escalation. The principal invoking
|
|
21
|
-
* should be assumed to have full administrator access.
|
|
22
|
-
*
|
|
23
|
-
* The process deploying the infrastructure is locked down so this
|
|
24
|
-
* is only possibly by deployment through CloudFormation, and as
|
|
25
|
-
* such removes a lot of possible escalation paths (e.g. no role
|
|
26
|
-
* can be created by direct API call).
|
|
27
|
-
*
|
|
28
|
-
* The "status" lambda can be used to poll for completion, and will
|
|
29
|
-
* also return logs from the job upon completion.
|
|
30
|
-
*/
|
|
31
|
-
class CdkDeploy extends constructs.Construct {
|
|
32
|
-
constructor(scope, id, props) {
|
|
33
|
-
super(scope, id);
|
|
34
|
-
const account = cdk.Stack.of(this).account;
|
|
35
|
-
const region = cdk.Stack.of(this).region;
|
|
36
|
-
const artifactsBucket = s3.Bucket.fromBucketName(this, "ArtifactsBucket", props.artifactsBucketName);
|
|
37
|
-
const roleToBeAssumed = new iam.Role(this, "Role", {
|
|
38
|
-
roleName: props.roleName,
|
|
39
|
-
assumedBy: new iam.ArnPrincipal(props.callerRoleArn),
|
|
40
|
-
});
|
|
41
|
-
// Bucked used for input to CodeBuild.
|
|
42
|
-
// We let CloudFormation manage the bucket name.
|
|
43
|
-
const codebuildBucket = new s3.Bucket(this, "CodebuildSourceBucket", {
|
|
44
|
-
encryption: s3.BucketEncryption.S3_MANAGED,
|
|
45
|
-
blockPublicAccess: s3.BlockPublicAccess.BLOCK_ALL,
|
|
46
|
-
lifecycleRules: [
|
|
47
|
-
{
|
|
48
|
-
expiration: cdk.Duration.days(5),
|
|
49
|
-
},
|
|
50
|
-
],
|
|
51
|
-
});
|
|
52
|
-
// The role used for CloudFormation deployment.
|
|
53
|
-
const cloudFormationRole = new iam.Role(this, "CloudFormationRole", {
|
|
54
|
-
assumedBy: new iam.ServicePrincipal("cloudformation.amazonaws.com"),
|
|
55
|
-
managedPolicies: [
|
|
56
|
-
// TODO: Can we restrict this a bit more? E.g. look into how Griid has
|
|
57
|
-
// limited what the individual stack deployments have permissions to do.
|
|
58
|
-
iam.ManagedPolicy.fromAwsManagedPolicyName("AdministratorAccess"),
|
|
59
|
-
],
|
|
60
|
-
});
|
|
61
|
-
// Replace CodeBuild with ECS task?
|
|
62
|
-
// See https://aws.amazon.com/blogs/devops/using-aws-codebuild-to-execute-administrative-tasks/
|
|
63
|
-
const codebuildProject = new codebuild.Project(this, "CodebuildProject", {
|
|
64
|
-
environment: {
|
|
65
|
-
buildImage: props.dockerCredentialsSecretName == null
|
|
66
|
-
? codebuild.LinuxBuildImage.fromDockerRegistry("node:16")
|
|
67
|
-
: codebuild.LinuxBuildImage.fromDockerRegistry("node:16", {
|
|
68
|
-
secretsManagerCredentials: secretsmanager.Secret.fromSecretNameV2(this, "dockerCredentialsSecretName", props.dockerCredentialsSecretName),
|
|
69
|
-
}),
|
|
70
|
-
},
|
|
71
|
-
buildSpec: codebuild.BuildSpec.fromObject({
|
|
72
|
-
version: "0.2",
|
|
73
|
-
env: {
|
|
74
|
-
variables: {
|
|
75
|
-
CDK_DEPLOY_ROLE_ARN: cloudFormationRole.roleArn,
|
|
76
|
-
CDK_TOOLKIT_STACK_NAME: props.cdkToolkitStackName,
|
|
77
|
-
},
|
|
78
|
-
},
|
|
79
|
-
phases: {
|
|
80
|
-
build: {
|
|
81
|
-
commands: [
|
|
82
|
-
"npm install -g aws-cdk",
|
|
83
|
-
'cdk --app "$CODEBUILD_SRC_DIR_CLOUDASSEMBLY" --role-arn "$CDK_DEPLOY_ROLE_ARN" --toolkit-stack-name "$CDK_TOOLKIT_STACK_NAME" --require-approval never deploy --exclusively $(cat stack-names.txt)',
|
|
84
|
-
],
|
|
85
|
-
},
|
|
86
|
-
},
|
|
87
|
-
}),
|
|
88
|
-
timeout: cdk.Duration.hours(4),
|
|
89
|
-
});
|
|
90
|
-
// Grant access to CloudFormation.
|
|
91
|
-
codebuildProject.addToRolePolicy(new iam.PolicyStatement({
|
|
92
|
-
actions: [
|
|
93
|
-
// For diff.
|
|
94
|
-
"cloudformation:DescribeStacks",
|
|
95
|
-
"cloudformation:GetTemplate",
|
|
96
|
-
// For deploy.
|
|
97
|
-
"cloudformation:CreateChangeSet",
|
|
98
|
-
"cloudformation:DeleteStack",
|
|
99
|
-
"cloudformation:DescribeChangeSet",
|
|
100
|
-
"cloudformation:ExecuteChangeSet",
|
|
101
|
-
"cloudformation:DescribeStackEvents",
|
|
102
|
-
"cloudformation:DeleteChangeSet",
|
|
103
|
-
],
|
|
104
|
-
resources: ["*"],
|
|
105
|
-
}));
|
|
106
|
-
// Grant access to the CDK Toolkit bucket.
|
|
107
|
-
codebuildProject.addToRolePolicy(new iam.PolicyStatement({
|
|
108
|
-
actions: [
|
|
109
|
-
"s3:GetObject*",
|
|
110
|
-
"s3:GetBucket*",
|
|
111
|
-
"s3:List*",
|
|
112
|
-
"s3:PutObject*",
|
|
113
|
-
"s3:Abort*",
|
|
114
|
-
"s3:DeleteObject*",
|
|
115
|
-
],
|
|
116
|
-
resources: [
|
|
117
|
-
`arn:aws:s3:::${props.cdkToolkitStackName.toLowerCase()}-stagingbucket-*`,
|
|
118
|
-
],
|
|
119
|
-
}));
|
|
120
|
-
artifactsBucket.grantRead(codebuildProject);
|
|
121
|
-
cloudFormationRole.grantPassRole(codebuildProject.role);
|
|
122
|
-
codebuildBucket.grantReadWrite(codebuildProject);
|
|
123
|
-
const startDeployFn = new aws_lambda_nodejs_1.NodejsFunction(this, "StartDeployFunction", {
|
|
124
|
-
entry: require.resolve("./start-deploy-handler"),
|
|
125
|
-
runtime: lambda.Runtime.NODEJS_18_X,
|
|
126
|
-
functionName: props.startDeployFunctionName,
|
|
127
|
-
awsSdkConnectionReuse: false,
|
|
128
|
-
environment: {
|
|
129
|
-
PROJECT_NAME: codebuildProject.projectName,
|
|
130
|
-
BUCKET_NAME: codebuildBucket.bucketName,
|
|
131
|
-
CDK_CONTEXT: JSON.stringify(props.cdkContext),
|
|
132
|
-
},
|
|
133
|
-
timeout: cdk.Duration.seconds(30),
|
|
134
|
-
});
|
|
135
|
-
startDeployFn.grantInvoke(roleToBeAssumed);
|
|
136
|
-
codebuildBucket.grantReadWrite(startDeployFn);
|
|
137
|
-
startDeployFn.addToRolePolicy(new iam.PolicyStatement({
|
|
138
|
-
actions: ["codebuild:StartBuild", "codebuild:BatchGetBuilds"],
|
|
139
|
-
resources: [codebuildProject.projectArn],
|
|
140
|
-
}));
|
|
141
|
-
const statusFn = new aws_lambda_nodejs_1.NodejsFunction(this, "StatusFunction", {
|
|
142
|
-
entry: require.resolve("./status-handler"),
|
|
143
|
-
runtime: lambda.Runtime.NODEJS_18_X,
|
|
144
|
-
functionName: props.statusFunctionName,
|
|
145
|
-
awsSdkConnectionReuse: false,
|
|
146
|
-
environment: {
|
|
147
|
-
PROJECT_NAME: codebuildProject.projectName,
|
|
148
|
-
},
|
|
149
|
-
timeout: cdk.Duration.seconds(30),
|
|
150
|
-
});
|
|
151
|
-
statusFn.grantInvoke(roleToBeAssumed);
|
|
152
|
-
statusFn.addToRolePolicy(new iam.PolicyStatement({
|
|
153
|
-
actions: ["codebuild:BatchGetBuilds"],
|
|
154
|
-
resources: [codebuildProject.projectArn],
|
|
155
|
-
}));
|
|
156
|
-
statusFn.addToRolePolicy(new iam.PolicyStatement({
|
|
157
|
-
actions: ["logs:GetLogEvents"],
|
|
158
|
-
resources: [
|
|
159
|
-
`arn:aws:logs:${region}:${account}:log-group:/aws/codebuild/${codebuildProject.projectName}:log-stream:*`,
|
|
160
|
-
],
|
|
161
|
-
}));
|
|
162
|
-
new cdk.CfnOutput(this, "RoleToBeAssumedArn", {
|
|
163
|
-
value: roleToBeAssumed.roleArn,
|
|
164
|
-
});
|
|
165
|
-
new cdk.CfnOutput(this, "StatusFunctionArn", {
|
|
166
|
-
value: statusFn.functionArn,
|
|
167
|
-
});
|
|
168
|
-
new cdk.CfnOutput(this, "StartDeployFunctionArn", {
|
|
169
|
-
value: startDeployFn.functionArn,
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
exports.CdkDeploy = CdkDeploy;
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWRlcGxveS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jZGstZGVwbG95L2Nkay1kZXBsb3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQXdDO0FBQ3hDLHVEQUFzRDtBQUN0RCwyQ0FBMEM7QUFDMUMsaURBQWdEO0FBQ2hELHlDQUF3QztBQUN4QyxtQ0FBa0M7QUFDbEMsaUVBQWdFO0FBQ2hFLHFFQUE4RDtBQXlDOUQ7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUNILE1BQWEsU0FBVSxTQUFRLFVBQVUsQ0FBQyxTQUFTO0lBQ2pELFlBQVksS0FBMkIsRUFBRSxFQUFVLEVBQUUsS0FBWTtRQUMvRCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBRWhCLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQTtRQUMxQyxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUE7UUFFeEMsTUFBTSxlQUFlLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQzlDLElBQUksRUFDSixpQkFBaUIsRUFDakIsS0FBSyxDQUFDLG1CQUFtQixDQUMxQixDQUFBO1FBRUQsTUFBTSxlQUFlLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDakQsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLFNBQVMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQztTQUNyRCxDQUFDLENBQUE7UUFFRixzQ0FBc0M7UUFDdEMsZ0RBQWdEO1FBQ2hELE1BQU0sZUFBZSxHQUFHLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsdUJBQXVCLEVBQUU7WUFDbkUs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QUFFLEtBQUs7WUFDNUIsV0FBVyxFQUFFO2dCQUNYLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxXQUFXO2FBQzNDO1lBQ0QsT0FBTyxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztTQUNsQyxDQUFDLENBQUE7UUFFRixRQUFRLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFBO1FBRXJDLFFBQVEsQ0FBQyxlQUFlLENBQ3RCLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztZQUN0QixPQUFPLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztZQUNyQyxTQUFTLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUM7U0FDekMsQ0FBQyxDQUNILENBQUE7UUFFRCxRQUFRLENBQUMsZUFBZSxDQUN0QixJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7WUFDdEIsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUM7WUFDOUIsU0FBUyxFQUFFO2dCQUNULGdCQUFnQixNQUFNLElBQUksT0FBTyw2QkFBNkIsZ0JBQWdCLENBQUMsV0FBVyxlQUFlO2FBQzFHO1NBQ0YsQ0FBQyxDQUNILENBQUE7UUFFRCxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLG9CQUFvQixFQUFFO1lBQzVDLEtBQUssRUFBRSxlQUFlLENBQUMsT0FBTztTQUMvQixDQUFDLENBQUE7UUFDRixJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLG1CQUFtQixFQUFFO1lBQzNDLEtBQUssRUFBRSxRQUFRLENBQUMsV0FBVztTQUM1QixDQUFDLENBQUE7UUFDRixJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLHdCQUF3QixFQUFFO1lBQ2hELEtBQUssRUFBRSxhQUFhLENBQUMsV0FBVztTQUNqQyxDQUFDLENBQUE7SUFDSixDQUFDO0NBQ0Y7QUFwTEQsOEJBb0xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tIFwiY29uc3RydWN0c1wiXG5pbXBvcnQgKiBhcyBjb2RlYnVpbGQgZnJvbSBcImF3cy1jZGstbGliL2F3cy1jb2RlYnVpbGRcIlxuaW1wb3J0ICogYXMgaWFtIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCJcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiXG5pbXBvcnQgKiBhcyBzMyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzXCJcbmltcG9ydCAqIGFzIGNkayBmcm9tIFwiYXdzLWNkay1saWJcIlxuaW1wb3J0ICogYXMgc2VjcmV0c21hbmFnZXIgZnJvbSBcImF3cy1jZGstbGliL2F3cy1zZWNyZXRzbWFuYWdlclwiXG5pbXBvcnQgeyBOb2RlanNGdW5jdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhLW5vZGVqc1wiXG5cbmludGVyZmFjZSBQcm9wcyBleHRlbmRzIGNkay5TdGFja1Byb3BzIHtcbiAgLyoqXG4gICAqIFRoZSByb2xlIHRoYXQgd2lsbCBiZSBncmFudGVkIHBlcm1pc3Npb24gdG8gYXNzdW1lIHRoZSBkZXBsb3lcbiAgICogcm9sZS4gVGhpcyByb2xlIG11c3QgaGF2ZSBwZXJtaXNzaW9uIHRvIGFzc3VtZSB0aGUgZGVwbG95IHJvbGUuXG4gICAqL1xuICBjYWxsZXJSb2xlQXJuOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoZSBuYW1lIHRoYXQgd2lsbCBiZSB1c2VkIGZvciB0aGUgZGVwbG95IHJvbGUuIFRoaXMgaXMgdGhlIHJvbGVcbiAgICogdGhhdCB0aGUgY2FsbGVyIHdpbGwgYXNzdW1lIGluIG9yZGVyIHRvIGhhdmUgcGVybWlzc2lvbiB0byBpbnZva2VcbiAgICogdGhlIExhbWJkYSBGdW5jdGlvbnMuXG4gICAqL1xuICByb2xlTmFtZTogc3RyaW5nXG4gIC8qKlxuICAgKiBUaGUgYnVja2V0IHVzZWQgZm9yIHN0b3JpbmcgYXJ0aWZhY3RzLiBUaGlzIGlzIHVzZWQgdG8gZ3JhbnRcbiAgICogcGVybWlzc2lvbiB0byB0aGUgcm9sZSB0byByZWFkIGFydGlmYWN0LiBJZiB0aGUgYnVja2V0IGlzIGluXG4gICAqIGFub3RoZXIgYWNjb3VudCwgaXQgbXVzdCBoYXZlIGEgcG9saWN5IHdoaWNoIGFsbG93cyB0aGUgdGFyZ2V0XG4gICAqIGFjY291bnQgdG8gdXNlIElBTSBwZXJtaXNzaW9ucyBmcm9tIHRhcmdldCBhY2NvdW50LlxuICAgKi9cbiAgYXJ0aWZhY3RzQnVja2V0TmFtZTogc3RyaW5nXG4gIHN0YXJ0RGVwbG95RnVuY3Rpb25OYW1lOiBzdHJpbmdcbiAgc3RhdHVzRnVuY3Rpb25OYW1lOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoaXMgaXMgdGhlIHN0YWNrIG5hbWUgdXNlZCB3aXRoIGBjZGsgYm9vdHN0cmFwYCBhbmQgY2FuIGVcbiAgICogZm91bmQgaW4gY2RrLmpzb24gYXMgXCJ0b29sa2l0U3RhY2tOYW1lXCIuXG4gICAqL1xuICBjZGtUb29sa2l0U3RhY2tOYW1lOiBzdHJpbmdcbiAgLyoqXG4gICAqIFdlIHBhc3MgdGhlIENESyBjb250ZXh0IHZhbHVlcyBhcyB0aGV5IGNvbnRhaW4gZmVhdHVyZSBmbGFnc1xuICAgKiB1c2VkIGJ5IHRoZSBDREsgQ0xJLlxuICAgKi9cbiAgY2RrQ29udGV4dDogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10+XG4gIC8qKlxuICAgKiBUaGUgc2VjcmV0IGNvbnRhaW5pbmcgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIChvciBhY2Nlc3MgdG9rZW4pXG4gICAqIGZvciBhIHZhbGlkIGRvY2tlciB1c2VyLiBUaGlzIGlzIHVzZWQgdG8gYWNjZXNzIHByaXZhdGVcbiAgICogcmVwb3NpdG9yaWVzIG9yIHRvIGhhbmRsZSBkb2NrZXIgaHViJ3MgcHVsbCByYXRlIGxpbWl0aW5nLlxuICAgKi9cbiAgZG9ja2VyQ3JlZGVudGlhbHNTZWNyZXROYW1lPzogc3RyaW5nXG59XG5cbi8qKlxuICogVGhpcyBjb25zdHJ1Y3QgaXMgcmVzcG9uc2libGUgZm9yIHRoZSBwcml2aWxlZ2VzIGFuZCBsb2dpYyBvZlxuICogYXV0b21hdGljYWxseSBkZXBsb3lpbmcgc3RhY2sgcmVzb3VyY2VzIGluIGFuIGFjY291bnQuXG4gKiBJdHMgcmVzb3VyY2VzIGFyZSB1c2VkIGZyb20gYSBkZXBsb3ltZW50IHBpcGVsaW5lLlxuICpcbiAqIFRoZSBkZXBsb3ltZW50IGlzIHBlcmZvcm1lZCBieSBpbnZva2luZyB0aGUgXCJzdGFydCBkZXBsb3lcIlxuICogbGFtYmRhIHdpdGggZGV0YWlscyBvZiB3aGF0IHNob3VsZCBiZSBkZXBsb3llZC4gQXMgdGhpcyBpc1xuICogcmVzcG9uc2libGUgZm9yIGRlcGxveWluZyBpbmZyYXN0cnVjdHVyZSwgdGhlIHByaW5jaXBhbCBpbnZva2luZ1xuICogbWlnaHQgYmUgYWJsZSB0byBjYXVzZSBwcml2aWxlZ2UgZXNjYWxhdGlvbi4gVGhlIHByaW5jaXBhbCBpbnZva2luZ1xuICogc2hvdWxkIGJlIGFzc3VtZWQgdG8gaGF2ZSBmdWxsIGFkbWluaXN0cmF0b3IgYWNjZXNzLlxuICpcbiAqIFRoZSBwcm9jZXNzIGRlcGxveWluZyB0aGUgaW5mcmFzdHJ1Y3R1cmUgaXMgbG9ja2VkIGRvd24gc28gdGhpc1xuICogaXMgb25seSBwb3NzaWJseSBieSBkZXBsb3ltZW50IHRocm91Z2ggQ2xvdWRGb3JtYXRpb24sIGFuZCBhc1xuICogc3VjaCByZW1vdmVzIGEgbG90IG9mIHBvc3NpYmxlIGVzY2FsYXRpb24gcGF0aHMgKGUuZy4gbm8gcm9sZVxuICogY2FuIGJlIGNyZWF0ZWQgYnkgZGlyZWN0IEFQSSBjYWxsKS5cbiAqXG4gKiBUaGUgXCJzdGF0dXNcIiBsYW1iZGEgY2FuIGJlIHVzZWQgdG8gcG9sbCBmb3IgY29tcGxldGlvbiwgYW5kIHdpbGxcbiAqIGFsc28gcmV0dXJuIGxvZ3MgZnJvbSB0aGUgam9iIHVwb24gY29tcGxldGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIENka0RlcGxveSBleHRlbmRzIGNvbnN0cnVjdHMuQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpXG5cbiAgICBjb25zdCBhY2NvdW50ID0gY2RrLlN0YWNrLm9mKHRoaXMpLmFjY291bnRcbiAgICBjb25zdCByZWdpb24gPSBjZGsuU3RhY2sub2YodGhpcykucmVnaW9uXG5cbiAgICBjb25zdCBhcnRpZmFjdHNCdWNrZXQgPSBzMy5CdWNrZXQuZnJvbUJ1Y2tldE5hbWUoXG4gICAgICB0aGlzLFxuICAgICAgXCJBcnRpZmFjdHNCdWNrZXRcIixcbiAgICAgIHByb3BzLmFydGlmYWN0c0J1Y2tldE5hbWUsXG4gICAgKVxuXG4gICAgY29uc3Qgcm9sZVRvQmVBc3N1bWVkID0gbmV3IGlhbS5Sb2xlKHRoaXMsIFwiUm9sZVwiLCB7XG4gICAgICByb2xlTmFtZTogcHJvcHMucm9sZU5hbWUsXG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uQXJuUHJpbmNpcGFsKHByb3BzLmNhbGxlclJvbGVBcm4pLFxuICAgIH0pXG5cbiAgICAvLyBCdWNrZWQgdXNlZCBmb3IgaW5wdXQgdG8gQ29kZUJ1aWxkLlxuICAgIC8vIFdlIGxldCBDbG91ZEZvcm1hdGlvbiBtYW5hZ2UgdGhlIGJ1Y2tldCBuYW1lLlxuICAgIGNvbnN0IGNvZGVidWlsZEJ1Y2tldCA9IG5ldyBzMy5CdWNrZXQodGhpcywgXCJDb2RlYnVpbGRTb3VyY2VCdWNrZXRcIiwge1xuICAgICAgZW5jcnlwdGlvbjogczMuQnVja2V0RW5jcnlwdGlvbi5TM19NQU5BR0VELFxuICAgICAgYmxvY2tQdWJsaWNBY2Nlc3M6IHMzLkJsb2NrUHVibGljQWNjZXNzLkJMT0NLX0FMTCxcbiAgICAgIGxpZmVjeWNsZVJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBleHBpcmF0aW9uOiBjZGsuRHVyYXRpb24uZGF5cyg1KSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSlcblxuICAgIC8vIFRoZSByb2xlIHVzZWQgZm9yIENsb3VkRm9ybWF0aW9uIGRlcGxveW1lbnQuXG4gICAgY29uc3QgY2xvdWRGb3JtYXRpb25Sb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsIFwiQ2xvdWRGb3JtYXRpb25Sb2xlXCIsIHtcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKFwiY2xvdWRmb3JtYXRpb24uYW1hem9uYXdzLmNvbVwiKSxcbiAgICAgIG1hbmFnZWRQb2xpY2llczogW1xuICAgICAgICAvLyBUT0RPOiBDYW4gd2UgcmVzdHJpY3QgdGhpcyBhIGJpdCBtb3JlPyBFLmcuIGxvb2sgaW50byBob3cgR3JpaWQgaGFzXG4gICAgICAgIC8vICBsaW1pdGVkIHdoYXQgdGhlIGluZGl2aWR1YWwgc3RhY2sgZGVwbG95bWVudHMgaGF2ZSBwZXJtaXNzaW9ucyB0byBkby5cbiAgICAgICAgaWFtLk1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKFwiQWRtaW5pc3RyYXRvckFjY2Vzc1wiKSxcbiAgICAgIF0sXG4gICAgfSlcblxuICAgIC8vIFJlcGxhY2UgQ29kZUJ1aWxkIHdpdGggRUNTIHRhc2s/XG4gICAgLy8gU2VlIGh0dHBzOi8vYXdzLmFtYXpvbi5jb20vYmxvZ3MvZGV2b3BzL3VzaW5nLWF3cy1jb2RlYnVpbGQtdG8tZXhlY3V0ZS1hZG1pbmlzdHJhdGl2ZS10YXNrcy9cbiAgICBjb25zdCBjb2RlYnVpbGRQcm9qZWN0ID0gbmV3IGNvZGVidWlsZC5Qcm9qZWN0KHRoaXMsIFwiQ29kZWJ1aWxkUHJvamVjdFwiLCB7XG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBidWlsZEltYWdlOlxuICAgICAgICAgIHByb3BzLmRvY2tlckNyZWRlbnRpYWxzU2VjcmV0TmFtZSA9PSBudWxsXG4gICAgICAgICAgICA/IGNvZGVidWlsZC5MaW51eEJ1aWxkSW1hZ2UuZnJvbURvY2tlclJlZ2lzdHJ5KFwibm9kZToxNlwiKVxuICAgICAgICAgICAgOiBjb2RlYnVpbGQuTGludXhCdWlsZEltYWdlLmZyb21Eb2NrZXJSZWdpc3RyeShcIm5vZGU6MTZcIiwge1xuICAgICAgICAgICAgICAgIHNlY3JldHNNYW5hZ2VyQ3JlZGVudGlhbHM6XG4gICAgICAgICAgICAgICAgICBzZWNyZXRzbWFuYWdlci5TZWNyZXQuZnJvbVNlY3JldE5hbWVWMihcbiAgICAgICAgICAgICAgICAgICAgdGhpcyxcbiAgICAgICAgICAgICAgICAgICAgXCJkb2NrZXJDcmVkZW50aWFsc1NlY3JldE5hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgcHJvcHMuZG9ja2VyQ3JlZGVudGlhbHNTZWNyZXROYW1lLFxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgfSksXG4gICAgICB9LFxuICAgICAgYnVpbGRTcGVjOiBjb2RlYnVpbGQuQnVpbGRTcGVjLmZyb21PYmplY3Qoe1xuICAgICAgICB2ZXJzaW9uOiBcIjAuMlwiLFxuICAgICAgICBlbnY6IHtcbiAgICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICAgIENES19ERVBMT1lfUk9MRV9BUk46IGNsb3VkRm9ybWF0aW9uUm9sZS5yb2xlQXJuLFxuICAgICAgICAgICAgQ0RLX1RPT0xLSVRfU1RBQ0tfTkFNRTogcHJvcHMuY2RrVG9vbGtpdFN0YWNrTmFtZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBwaGFzZXM6IHtcbiAgICAgICAgICBidWlsZDoge1xuICAgICAgICAgICAgY29tbWFuZHM6IFtcbiAgICAgICAgICAgICAgXCJucG0gaW5zdGFsbCAtZyBhd3MtY2RrXCIsXG4gICAgICAgICAgICAgICdjZGsgLS1hcHAgXCIkQ09ERUJVSUxEX1NSQ19ESVJfQ0xPVURBU1NFTUJMWVwiIC0tcm9sZS1hcm4gXCIkQ0RLX0RFUExPWV9ST0xFX0FSTlwiIC0tdG9vbGtpdC1zdGFjay1uYW1lIFwiJENES19UT09MS0lUX1NUQUNLX05BTUVcIiAtLXJlcXVpcmUtYXBwcm92YWwgbmV2ZXIgZGVwbG95IC0tZXhjbHVzaXZlbHkgJChjYXQgc3RhY2stbmFtZXMudHh0KScsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICAgIHRpbWVvdXQ6IGNkay5EdXJhdGlvbi5ob3Vycyg0KSxcbiAgICB9KVxuXG4gICAgLy8gR3JhbnQgYWNjZXNzIHRvIENsb3VkRm9ybWF0aW9uLlxuICAgIGNvZGVidWlsZFByb2plY3QuYWRkVG9Sb2xlUG9saWN5KFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgLy8gRm9yIGRpZmYuXG4gICAgICAgICAgXCJjbG91ZGZvcm1hdGlvbjpEZXNjcmliZVN0YWNrc1wiLFxuICAgICAgICAgIFwiY2xvdWRmb3JtYXRpb246R2V0VGVtcGxhdGVcIixcbiAgICAgICAgICAvLyBGb3IgZGVwbG95LlxuICAgICAgICAgIFwiY2xvdWRmb3JtYXRpb246Q3JlYXRlQ2hhbmdlU2V0XCIsXG4gICAgICAgICAgXCJjbG91ZGZvcm1hdGlvbjpEZWxldGVTdGFja1wiLFxuICAgICAgICAgIFwiY2xvdWRmb3JtYXRpb246RGVzY3JpYmVDaGFuZ2VTZXRcIixcbiAgICAgICAgICBcImNsb3VkZm9ybWF0aW9uOkV4ZWN1dGVDaGFuZ2VTZXRcIixcbiAgICAgICAgICBcImNsb3VkZm9ybWF0aW9uOkRlc2NyaWJlU3RhY2tFdmVudHNcIixcbiAgICAgICAgICBcImNsb3VkZm9ybWF0aW9uOkRlbGV0ZUNoYW5nZVNldFwiLFxuICAgICAgICBdLFxuICAgICAgICByZXNvdXJjZXM6IFtcIipcIl0sXG4gICAgICB9KSxcbiAgICApXG5cbiAgICAvLyBHcmFudCBhY2Nlc3MgdG8gdGhlIENESyBUb29sa2l0IGJ1Y2tldC5cbiAgICBjb2RlYnVpbGRQcm9qZWN0LmFkZFRvUm9sZVBvbGljeShcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgIFwiczM6R2V0T2JqZWN0KlwiLFxuICAgICAgICAgIFwiczM6R2V0QnVja2V0KlwiLFxuICAgICAgICAgIFwiczM6TGlzdCpcIixcbiAgICAgICAgICBcInMzOlB1dE9iamVjdCpcIixcbiAgICAgICAgICBcInMzOkFib3J0KlwiLFxuICAgICAgICAgIFwiczM6RGVsZXRlT2JqZWN0KlwiLFxuICAgICAgICBdLFxuICAgICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgICBgYXJuOmF3czpzMzo6OiR7cHJvcHMuY2RrVG9vbGtpdFN0YWNrTmFtZS50b0xvd2VyQ2FzZSgpfS1zdGFnaW5nYnVja2V0LSpgLFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgKVxuXG4gICAgYXJ0aWZhY3RzQnVja2V0LmdyYW50UmVhZChjb2RlYnVpbGRQcm9qZWN0KVxuXG4gICAgY2xvdWRGb3JtYXRpb25Sb2xlLmdyYW50UGFzc1JvbGUoY29kZWJ1aWxkUHJvamVjdC5yb2xlISlcblxuICAgIGNvZGVidWlsZEJ1Y2tldC5ncmFudFJlYWRXcml0ZShjb2RlYnVpbGRQcm9qZWN0KVxuXG4gICAgY29uc3Qgc3RhcnREZXBsb3lGbiA9IG5ldyBOb2RlanNGdW5jdGlvbih0aGlzLCBcIlN0YXJ0RGVwbG95RnVuY3Rpb25cIiwge1xuICAgICAgZW50cnk6IHJlcXVpcmUucmVzb2x2ZShcIi4vc3RhcnQtZGVwbG95LWhhbmRsZXJcIiksXG4gICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5OT0RFSlNfMThfWCxcbiAgICAgIGZ1bmN0aW9uTmFtZTogcHJvcHMuc3RhcnREZXBsb3lGdW5jdGlvbk5hbWUsXG4gICAgICBhd3NTZGtDb25uZWN0aW9uUmV1c2U6IGZhbHNlLFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgUFJPSkVDVF9OQU1FOiBjb2RlYnVpbGRQcm9qZWN0LnByb2plY3ROYW1lLFxuICAgICAgICBCVUNLRVRfTkFNRTogY29kZWJ1aWxkQnVja2V0LmJ1Y2tldE5hbWUsXG4gICAgICAgIENES19DT05URVhUOiBKU09OLnN0cmluZ2lmeShwcm9wcy5jZGtDb250ZXh0KSxcbiAgICAgIH0sXG4gICAgICB0aW1lb3V0OiBjZGsuRHVyYXRpb24uc2Vjb25kcygzMCksXG4gICAgfSlcblxuICAgIHN0YXJ0RGVwbG95Rm4uZ3JhbnRJbnZva2Uocm9sZVRvQmVBc3N1bWVkKVxuICAgIGNvZGVidWlsZEJ1Y2tldC5ncmFudFJlYWRXcml0ZShzdGFydERlcGxveUZuKVxuXG4gICAgc3RhcnREZXBsb3lGbi5hZGRUb1JvbGVQb2xpY3koXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFtcImNvZGVidWlsZDpTdGFydEJ1aWxkXCIsIFwiY29kZWJ1aWxkOkJhdGNoR2V0QnVpbGRzXCJdLFxuICAgICAgICByZXNvdXJjZXM6IFtjb2RlYnVpbGRQcm9qZWN0LnByb2plY3RBcm5dLFxuICAgICAgfSksXG4gICAgKVxuXG4gICAgY29uc3Qgc3RhdHVzRm4gPSBuZXcgTm9kZWpzRnVuY3Rpb24odGhpcywgXCJTdGF0dXNGdW5jdGlvblwiLCB7XG4gICAgICBlbnRyeTogcmVxdWlyZS5yZXNvbHZlKFwiLi9zdGF0dXMtaGFuZGxlclwiKSxcbiAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLk5PREVKU18xOF9YLFxuICAgICAgZnVuY3Rpb25OYW1lOiBwcm9wcy5zdGF0dXNGdW5jdGlvbk5hbWUsXG4gICAgICBhd3NTZGtDb25uZWN0aW9uUmV1c2U6IGZhbHNlLFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgUFJPSkVDVF9OQU1FOiBjb2RlYnVpbGRQcm9qZWN0LnByb2plY3ROYW1lLFxuICAgICAgfSxcbiAgICAgIHRpbWVvdXQ6IGNkay5EdXJhdGlvbi5zZWNvbmRzKDMwKSxcbiAgICB9KVxuXG4gICAgc3RhdHVzRm4uZ3JhbnRJbnZva2Uocm9sZVRvQmVBc3N1bWVkKVxuXG4gICAgc3RhdHVzRm4uYWRkVG9Sb2xlUG9saWN5KFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBbXCJjb2RlYnVpbGQ6QmF0Y2hHZXRCdWlsZHNcIl0sXG4gICAgICAgIHJlc291cmNlczogW2NvZGVidWlsZFByb2plY3QucHJvamVjdEFybl0sXG4gICAgICB9KSxcbiAgICApXG5cbiAgICBzdGF0dXNGbi5hZGRUb1JvbGVQb2xpY3koXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFtcImxvZ3M6R2V0TG9nRXZlbnRzXCJdLFxuICAgICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgICBgYXJuOmF3czpsb2dzOiR7cmVnaW9ufToke2FjY291bnR9OmxvZy1ncm91cDovYXdzL2NvZGVidWlsZC8ke2NvZGVidWlsZFByb2plY3QucHJvamVjdE5hbWV9OmxvZy1zdHJlYW06KmAsXG4gICAgICAgIF0sXG4gICAgICB9KSxcbiAgICApXG5cbiAgICBuZXcgY2RrLkNmbk91dHB1dCh0aGlzLCBcIlJvbGVUb0JlQXNzdW1lZEFyblwiLCB7XG4gICAgICB2YWx1ZTogcm9sZVRvQmVBc3N1bWVkLnJvbGVBcm4sXG4gICAgfSlcbiAgICBuZXcgY2RrLkNmbk91dHB1dCh0aGlzLCBcIlN0YXR1c0Z1bmN0aW9uQXJuXCIsIHtcbiAgICAgIHZhbHVlOiBzdGF0dXNGbi5mdW5jdGlvbkFybixcbiAgICB9KVxuICAgIG5ldyBjZGsuQ2ZuT3V0cHV0KHRoaXMsIFwiU3RhcnREZXBsb3lGdW5jdGlvbkFyblwiLCB7XG4gICAgICB2YWx1ZTogc3RhcnREZXBsb3lGbi5mdW5jdGlvbkFybixcbiAgICB9KVxuICB9XG59XG4iXX0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { CdkDeploy } from "./cdk-deploy";
|
package/lib/cdk-deploy/index.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CdkDeploy = void 0;
|
|
4
|
-
var cdk_deploy_1 = require("./cdk-deploy");
|
|
5
|
-
Object.defineProperty(exports, "CdkDeploy", { enumerable: true, get: function () { return cdk_deploy_1.CdkDeploy; } });
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2RrLWRlcGxveS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBd0M7QUFBL0IsdUdBQUEsU0FBUyxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQ2RrRGVwbG95IH0gZnJvbSBcIi4vY2RrLWRlcGxveVwiXG4iXX0=
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.handler = void 0;
|
|
4
|
-
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
5
|
-
const client_codebuild_1 = require("@aws-sdk/client-codebuild");
|
|
6
|
-
// noinspection JSUnusedGlobalSymbols
|
|
7
|
-
const handler = async (event, context) => {
|
|
8
|
-
const codeBuildClient = new client_codebuild_1.CodeBuildClient();
|
|
9
|
-
const s3Client = new client_s3_1.S3Client();
|
|
10
|
-
function requireEnv(name) {
|
|
11
|
-
const value = process.env[name];
|
|
12
|
-
if (value === undefined) {
|
|
13
|
-
throw new Error(`Missing ${name}`);
|
|
14
|
-
}
|
|
15
|
-
return value;
|
|
16
|
-
}
|
|
17
|
-
const projectName = requireEnv("PROJECT_NAME");
|
|
18
|
-
const bucketName = requireEnv("BUCKET_NAME");
|
|
19
|
-
const cdkContext = JSON.parse(requireEnv("CDK_CONTEXT"));
|
|
20
|
-
// Since we pass the stack names as strings to the shell,
|
|
21
|
-
// be a bit restrictive of the valid values we can use.
|
|
22
|
-
const validStackName = /^[a-z0-9_][a-z0-9\-_]*$/i;
|
|
23
|
-
const s3KeyPrefix = `${context.awsRequestId}/`;
|
|
24
|
-
// Validate the input.
|
|
25
|
-
if (typeof event.bucketName !== "string" ||
|
|
26
|
-
typeof event.bucketKey !== "string" ||
|
|
27
|
-
!Array.isArray(event.stackNames) ||
|
|
28
|
-
!event.stackNames.every((it) => typeof it === "string" && validStackName.test(it))) {
|
|
29
|
-
throw new Error("Input invalid: " + JSON.stringify(event, undefined, " "));
|
|
30
|
-
}
|
|
31
|
-
async function putObject(name, data) {
|
|
32
|
-
await s3Client.send(new client_s3_1.PutObjectCommand({
|
|
33
|
-
Bucket: bucketName,
|
|
34
|
-
Key: `${s3KeyPrefix}${name}`,
|
|
35
|
-
Body: data,
|
|
36
|
-
}));
|
|
37
|
-
}
|
|
38
|
-
await putObject("stack-names.txt", event.stackNames.join(" "));
|
|
39
|
-
// Ensure that we run the script using same feature flags.
|
|
40
|
-
await putObject("cdk.json", JSON.stringify({ context: cdkContext }));
|
|
41
|
-
const { build } = await codeBuildClient.send(new client_codebuild_1.StartBuildCommand({
|
|
42
|
-
projectName,
|
|
43
|
-
sourceTypeOverride: client_codebuild_1.SourceType.S3,
|
|
44
|
-
sourceLocationOverride: `${bucketName}/${s3KeyPrefix}`,
|
|
45
|
-
secondarySourcesOverride: [
|
|
46
|
-
{
|
|
47
|
-
type: client_codebuild_1.SourceType.S3,
|
|
48
|
-
location: `${event.bucketName}/${event.bucketKey}`,
|
|
49
|
-
sourceIdentifier: "CLOUDASSEMBLY",
|
|
50
|
-
},
|
|
51
|
-
],
|
|
52
|
-
}));
|
|
53
|
-
const buildId = build === null || build === void 0 ? void 0 : build.id;
|
|
54
|
-
if (buildId == null) {
|
|
55
|
-
throw new Error("Unknown build ID");
|
|
56
|
-
}
|
|
57
|
-
return {
|
|
58
|
-
// This is the value the caller will use to fetch updated status.
|
|
59
|
-
// Avoid exposing what kind of ID this is, because we should be free
|
|
60
|
-
// to change implementation details.
|
|
61
|
-
jobId: buildId,
|
|
62
|
-
};
|
|
63
|
-
};
|
|
64
|
-
exports.handler = handler;
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQtZGVwbG95LWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2RrLWRlcGxveS9zdGFydC1kZXBsb3ktaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSxrREFBK0Q7QUFDL0QsZ0VBSWtDO0FBUWxDLHFDQUFxQztBQUM5QixNQUFNLE9BQU8sR0FBK0MsS0FBSyxFQUN0RSxLQUFLLEVBQ0wsT0FBTyxFQUNQLEVBQUU7SUFDRixNQUFNLGVBQWUsR0FBRyxJQUFJLGtDQUFlLEVBQUUsQ0FBQTtJQUM3QyxNQUFNLFFBQVEsR0FBRyxJQUFJLG9CQUFRLEVBQUUsQ0FBQTtJQUUvQixTQUFTLFVBQVUsQ0FBQyxJQUFZO1FBQzlCLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDL0IsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLENBQUE7UUFDcEMsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUVELE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUM5QyxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUE7SUFDNUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQTtJQUV4RCx5REFBeUQ7SUFDekQsdURBQXVEO0lBQ3ZELE1BQU0sY0FBYyxHQUFHLDBCQUEwQixDQUFBO0lBQ2pELE1BQU0sV0FBVyxHQUFHLEdBQUcsT0FBTyxDQUFDLFlBQVksR0FBRyxDQUFBO0lBRTlDLHNCQUFzQjtJQUN0QixJQUNFLE9BQU8sS0FBSyxDQUFDLFVBQVUsS0FBSyxRQUFRO1FBQ3BDLE9BQU8sS0FBSyxDQUFDLFNBQVMsS0FBSyxRQUFRO1FBQ25DLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO1FBQ2hDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQ3JCLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxRQUFRLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FDMUQsRUFDRCxDQUFDO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUM3RSxDQUFDO0lBRUQsS0FBSyxVQUFVLFNBQVMsQ0FBQyxJQUFZLEVBQUUsSUFBWTtRQUNqRCxNQUFNLFFBQVEsQ0FBQyxJQUFJLENBQ2pCLElBQUksNEJBQWdCLENBQUM7WUFDbkIsTUFBTSxFQUFFLFVBQVU7WUFDbEIsR0FBRyxFQUFFLEdBQUcsV0FBVyxHQUFHLElBQUksRUFBRTtZQUM1QixJQUFJLEVBQUUsSUFBSTtTQUNYLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQztJQUVELE1BQU0sU0FBUyxDQUFDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7SUFDOUQsMERBQTBEO0lBQzFELE1BQU0sU0FBUyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUVwRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxlQUFlLENBQUMsSUFBSSxDQUMxQyxJQUFJLG9DQUFpQixDQUFDO1FBQ3BCLFdBQVc7UUFDWCxrQkFBa0IsRUFBRSw2QkFBVSxDQUFDLEVBQUU7UUFDakMsc0JBQXNCLEVBQUUsR0FBRyxVQUFVLElBQUksV0FBVyxFQUFFO1FBQ3RELHdCQUF3QixFQUFFO1lBQ3hCO2dCQUNFLElBQUksRUFBRSw2QkFBVSxDQUFDLEVBQUU7Z0JBQ25CLFFBQVEsRUFBRSxHQUFHLEtBQUssQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRTtnQkFDbEQsZ0JBQWdCLEVBQUUsZUFBZTthQUNsQztTQUNGO0tBQ0YsQ0FBQyxDQUNILENBQUE7SUFDRCxNQUFNLE9BQU8sR0FBRyxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsRUFBRSxDQUFBO0lBRXpCLElBQUksT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtJQUNyQyxDQUFDO0lBRUQsT0FBTztRQUNMLGlFQUFpRTtRQUNqRSxvRUFBb0U7UUFDcEUsb0NBQW9DO1FBQ3BDLEtBQUssRUFBRSxPQUFPO0tBQ2YsQ0FBQTtBQUNILENBQUMsQ0FBQTtBQTVFWSxRQUFBLE9BQU8sV0E0RW5CIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hc3NpZ25tZW50ICovXG5pbXBvcnQgeyBIYW5kbGVyIH0gZnJvbSBcImF3cy1sYW1iZGFcIlxuXG5pbXBvcnQgeyBTM0NsaWVudCwgUHV0T2JqZWN0Q29tbWFuZCB9IGZyb20gXCJAYXdzLXNkay9jbGllbnQtczNcIlxuaW1wb3J0IHtcbiAgQ29kZUJ1aWxkQ2xpZW50LFxuICBTdGFydEJ1aWxkQ29tbWFuZCxcbiAgU291cmNlVHlwZSxcbn0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1jb2RlYnVpbGRcIlxuXG5pbnRlcmZhY2UgU3RhcnREZXBsb3lFeHBlY3RlZElucHV0IHtcbiAgYnVja2V0TmFtZTogc3RyaW5nXG4gIGJ1Y2tldEtleTogc3RyaW5nXG4gIHN0YWNrTmFtZXM6IHN0cmluZ1tdXG59XG5cbi8vIG5vaW5zcGVjdGlvbiBKU1VudXNlZEdsb2JhbFN5bWJvbHNcbmV4cG9ydCBjb25zdCBoYW5kbGVyOiBIYW5kbGVyPFBhcnRpYWw8U3RhcnREZXBsb3lFeHBlY3RlZElucHV0Pj4gPSBhc3luYyAoXG4gIGV2ZW50LFxuICBjb250ZXh0LFxuKSA9PiB7XG4gIGNvbnN0IGNvZGVCdWlsZENsaWVudCA9IG5ldyBDb2RlQnVpbGRDbGllbnQoKVxuICBjb25zdCBzM0NsaWVudCA9IG5ldyBTM0NsaWVudCgpXG5cbiAgZnVuY3Rpb24gcmVxdWlyZUVudihuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHZhbHVlID0gcHJvY2Vzcy5lbnZbbmFtZV1cbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nICR7bmFtZX1gKVxuICAgIH1cbiAgICByZXR1cm4gdmFsdWVcbiAgfVxuXG4gIGNvbnN0IHByb2plY3ROYW1lID0gcmVxdWlyZUVudihcIlBST0pFQ1RfTkFNRVwiKVxuICBjb25zdCBidWNrZXROYW1lID0gcmVxdWlyZUVudihcIkJVQ0tFVF9OQU1FXCIpXG4gIGNvbnN0IGNka0NvbnRleHQgPSBKU09OLnBhcnNlKHJlcXVpcmVFbnYoXCJDREtfQ09OVEVYVFwiKSlcblxuICAvLyBTaW5jZSB3ZSBwYXNzIHRoZSBzdGFjayBuYW1lcyBhcyBzdHJpbmdzIHRvIHRoZSBzaGVsbCxcbiAgLy8gYmUgYSBiaXQgcmVzdHJpY3RpdmUgb2YgdGhlIHZhbGlkIHZhbHVlcyB3ZSBjYW4gdXNlLlxuICBjb25zdCB2YWxpZFN0YWNrTmFtZSA9IC9eW2EtejAtOV9dW2EtejAtOVxcLV9dKiQvaVxuICBjb25zdCBzM0tleVByZWZpeCA9IGAke2NvbnRleHQuYXdzUmVxdWVzdElkfS9gXG5cbiAgLy8gVmFsaWRhdGUgdGhlIGlucHV0LlxuICBpZiAoXG4gICAgdHlwZW9mIGV2ZW50LmJ1Y2tldE5hbWUgIT09IFwic3RyaW5nXCIgfHxcbiAgICB0eXBlb2YgZXZlbnQuYnVja2V0S2V5ICE9PSBcInN0cmluZ1wiIHx8XG4gICAgIUFycmF5LmlzQXJyYXkoZXZlbnQuc3RhY2tOYW1lcykgfHxcbiAgICAhZXZlbnQuc3RhY2tOYW1lcy5ldmVyeShcbiAgICAgIChpdCkgPT4gdHlwZW9mIGl0ID09PSBcInN0cmluZ1wiICYmIHZhbGlkU3RhY2tOYW1lLnRlc3QoaXQpLFxuICAgIClcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiSW5wdXQgaW52YWxpZDogXCIgKyBKU09OLnN0cmluZ2lmeShldmVudCwgdW5kZWZpbmVkLCBcIiAgXCIpKVxuICB9XG5cbiAgYXN5bmMgZnVuY3Rpb24gcHV0T2JqZWN0KG5hbWU6IHN0cmluZywgZGF0YTogc3RyaW5nKSB7XG4gICAgYXdhaXQgczNDbGllbnQuc2VuZChcbiAgICAgIG5ldyBQdXRPYmplY3RDb21tYW5kKHtcbiAgICAgICAgQnVja2V0OiBidWNrZXROYW1lLFxuICAgICAgICBLZXk6IGAke3MzS2V5UHJlZml4fSR7bmFtZX1gLFxuICAgICAgICBCb2R5OiBkYXRhLFxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgYXdhaXQgcHV0T2JqZWN0KFwic3RhY2stbmFtZXMudHh0XCIsIGV2ZW50LnN0YWNrTmFtZXMuam9pbihcIiBcIikpXG4gIC8vIEVuc3VyZSB0aGF0IHdlIHJ1biB0aGUgc2NyaXB0IHVzaW5nIHNhbWUgZmVhdHVyZSBmbGFncy5cbiAgYXdhaXQgcHV0T2JqZWN0KFwiY2RrLmpzb25cIiwgSlNPTi5zdHJpbmdpZnkoeyBjb250ZXh0OiBjZGtDb250ZXh0IH0pKVxuXG4gIGNvbnN0IHsgYnVpbGQgfSA9IGF3YWl0IGNvZGVCdWlsZENsaWVudC5zZW5kKFxuICAgIG5ldyBTdGFydEJ1aWxkQ29tbWFuZCh7XG4gICAgICBwcm9qZWN0TmFtZSxcbiAgICAgIHNvdXJjZVR5cGVPdmVycmlkZTogU291cmNlVHlwZS5TMyxcbiAgICAgIHNvdXJjZUxvY2F0aW9uT3ZlcnJpZGU6IGAke2J1Y2tldE5hbWV9LyR7czNLZXlQcmVmaXh9YCxcbiAgICAgIHNlY29uZGFyeVNvdXJjZXNPdmVycmlkZTogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogU291cmNlVHlwZS5TMyxcbiAgICAgICAgICBsb2NhdGlvbjogYCR7ZXZlbnQuYnVja2V0TmFtZX0vJHtldmVudC5idWNrZXRLZXl9YCxcbiAgICAgICAgICBzb3VyY2VJZGVudGlmaWVyOiBcIkNMT1VEQVNTRU1CTFlcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSksXG4gIClcbiAgY29uc3QgYnVpbGRJZCA9IGJ1aWxkPy5pZFxuXG4gIGlmIChidWlsZElkID09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbmtub3duIGJ1aWxkIElEXCIpXG4gIH1cblxuICByZXR1cm4ge1xuICAgIC8vIFRoaXMgaXMgdGhlIHZhbHVlIHRoZSBjYWxsZXIgd2lsbCB1c2UgdG8gZmV0Y2ggdXBkYXRlZCBzdGF0dXMuXG4gICAgLy8gQXZvaWQgZXhwb3Npbmcgd2hhdCBraW5kIG9mIElEIHRoaXMgaXMsIGJlY2F1c2Ugd2Ugc2hvdWxkIGJlIGZyZWVcbiAgICAvLyB0byBjaGFuZ2UgaW1wbGVtZW50YXRpb24gZGV0YWlscy5cbiAgICBqb2JJZDogYnVpbGRJZCxcbiAgfVxufVxuIl19
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.handler = void 0;
|
|
4
|
-
const client_codebuild_1 = require("@aws-sdk/client-codebuild");
|
|
5
|
-
const client_cloudwatch_logs_1 = require("@aws-sdk/client-cloudwatch-logs");
|
|
6
|
-
const handler = async (event) => {
|
|
7
|
-
const codeBuildClient = new client_codebuild_1.CodeBuildClient();
|
|
8
|
-
const cloudWatchLogsClient = new client_cloudwatch_logs_1.CloudWatchLogsClient();
|
|
9
|
-
function requireEnv(name) {
|
|
10
|
-
const value = process.env[name];
|
|
11
|
-
if (value === undefined) {
|
|
12
|
-
throw new Error(`Missing ${name}`);
|
|
13
|
-
}
|
|
14
|
-
return value;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Get success status.
|
|
18
|
-
*
|
|
19
|
-
* A value of true means the job has completed successfully, while
|
|
20
|
-
* a value of false means the job did complete but not successfully.
|
|
21
|
-
*
|
|
22
|
-
* A null value means the job is still in progress and the
|
|
23
|
-
* completion status is not yet known.
|
|
24
|
-
*/
|
|
25
|
-
function getSuccess(status) {
|
|
26
|
-
if (status == "SUCCEEDED") {
|
|
27
|
-
return true;
|
|
28
|
-
}
|
|
29
|
-
if (status == "IN_PROGRESS") {
|
|
30
|
-
return null;
|
|
31
|
-
}
|
|
32
|
-
return false;
|
|
33
|
-
}
|
|
34
|
-
async function getBuild(buildId) {
|
|
35
|
-
var _a;
|
|
36
|
-
const { builds } = await codeBuildClient.send(new client_codebuild_1.BatchGetBuildsCommand({ ids: [buildId] }));
|
|
37
|
-
if ((builds === null || builds === void 0 ? void 0 : builds.length) !== 1) {
|
|
38
|
-
throw new Error(`Expected 1 item, found ${(_a = builds === null || builds === void 0 ? void 0 : builds.length) !== null && _a !== void 0 ? _a : "unknown"}`);
|
|
39
|
-
}
|
|
40
|
-
return builds[0];
|
|
41
|
-
}
|
|
42
|
-
async function getLogs(build) {
|
|
43
|
-
if (build.logs == null) {
|
|
44
|
-
throw new Error("Missing logs attribute on build");
|
|
45
|
-
}
|
|
46
|
-
if (build.logs.groupName == null) {
|
|
47
|
-
throw new Error("Missing log groupName");
|
|
48
|
-
}
|
|
49
|
-
if (build.logs.streamName == null) {
|
|
50
|
-
throw new Error("Missing log streamName");
|
|
51
|
-
}
|
|
52
|
-
const { events } = await cloudWatchLogsClient.send(new client_cloudwatch_logs_1.GetLogEventsCommand({
|
|
53
|
-
logGroupName: build.logs.groupName,
|
|
54
|
-
logStreamName: build.logs.streamName,
|
|
55
|
-
startFromHead: true,
|
|
56
|
-
}));
|
|
57
|
-
if (events == null) {
|
|
58
|
-
throw new Error("Failed to fetch log events");
|
|
59
|
-
}
|
|
60
|
-
// The logs contain newlines, so no need to add more.
|
|
61
|
-
return events.map((it) => it.message).join("");
|
|
62
|
-
}
|
|
63
|
-
const projectName = requireEnv("PROJECT_NAME");
|
|
64
|
-
// Validate the input.
|
|
65
|
-
if (typeof event.jobId !== "string" ||
|
|
66
|
-
!event.jobId.startsWith(`${projectName}:`)) {
|
|
67
|
-
throw new Error("Input invalid: " + JSON.stringify(event, undefined, " "));
|
|
68
|
-
}
|
|
69
|
-
const build = await getBuild(event.jobId);
|
|
70
|
-
const success = build.buildStatus == null ? null : getSuccess(build.buildStatus);
|
|
71
|
-
// Read logs from CloudWatch if completed.
|
|
72
|
-
const logs = success != null ? await getLogs(build) : null;
|
|
73
|
-
return {
|
|
74
|
-
jobId: event.jobId,
|
|
75
|
-
success,
|
|
76
|
-
logs,
|
|
77
|
-
};
|
|
78
|
-
};
|
|
79
|
-
exports.handler = handler;
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2RrLWRlcGxveS9zdGF0dXMtaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxnRUFLa0M7QUFFbEMsNEVBR3dDO0FBTWpDLE1BQU0sT0FBTyxHQUEwQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7SUFDNUUsTUFBTSxlQUFlLEdBQUcsSUFBSSxrQ0FBZSxFQUFFLENBQUE7SUFDN0MsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLDZDQUFvQixFQUFFLENBQUE7SUFFdkQsU0FBUyxVQUFVLENBQUMsSUFBWTtRQUM5QixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQy9CLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBQ3BDLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILFNBQVMsVUFBVSxDQUFDLE1BQWtCO1FBQ3BDLElBQUksTUFBTSxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQzFCLE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQztRQUVELElBQUksTUFBTSxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQzVCLE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUVELEtBQUssVUFBVSxRQUFRLENBQUMsT0FBZTs7UUFDckMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sZUFBZSxDQUFDLElBQUksQ0FDM0MsSUFBSSx3Q0FBcUIsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FDOUMsQ0FBQTtRQUVELElBQUksQ0FBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsTUFBTSxNQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLE1BQUEsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLE1BQU0sbUNBQUksU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUMxRSxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDbEIsQ0FBQztJQUVELEtBQUssVUFBVSxPQUFPLENBQUMsS0FBWTtRQUNqQyxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFBO1FBQ3BELENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtRQUMxQyxDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUE7UUFDM0MsQ0FBQztRQUVELE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLG9CQUFvQixDQUFDLElBQUksQ0FDaEQsSUFBSSw0Q0FBbUIsQ0FBQztZQUN0QixZQUFZLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQ2xDLGFBQWEsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVU7WUFDcEMsYUFBYSxFQUFFLElBQUk7U0FDcEIsQ0FBQyxDQUNILENBQUE7UUFFRCxJQUFJLE1BQU0sSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUE7UUFDL0MsQ0FBQztRQUVELHFEQUFxRDtRQUNyRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDaEQsQ0FBQztJQUVELE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUU5QyxzQkFBc0I7SUFDdEIsSUFDRSxPQUFPLEtBQUssQ0FBQyxLQUFLLEtBQUssUUFBUTtRQUMvQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsV0FBVyxHQUFHLENBQUMsRUFDMUMsQ0FBQztRQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDN0UsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLE1BQU0sUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUV6QyxNQUFNLE9BQU8sR0FDWCxLQUFLLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBRWxFLDBDQUEwQztJQUMxQyxNQUFNLElBQUksR0FBRyxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBO0lBRTFELE9BQU87UUFDTCxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7UUFDbEIsT0FBTztRQUNQLElBQUk7S0FDTCxDQUFBO0FBQ0gsQ0FBQyxDQUFBO0FBakdZLFFBQUEsT0FBTyxXQWlHbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIYW5kbGVyIH0gZnJvbSBcImF3cy1sYW1iZGFcIlxuXG5pbXBvcnQge1xuICBDb2RlQnVpbGRDbGllbnQsXG4gIEJhdGNoR2V0QnVpbGRzQ29tbWFuZCxcbiAgU3RhdHVzVHlwZSxcbiAgQnVpbGQsXG59IGZyb20gXCJAYXdzLXNkay9jbGllbnQtY29kZWJ1aWxkXCJcblxuaW1wb3J0IHtcbiAgQ2xvdWRXYXRjaExvZ3NDbGllbnQsXG4gIEdldExvZ0V2ZW50c0NvbW1hbmQsXG59IGZyb20gXCJAYXdzLXNkay9jbGllbnQtY2xvdWR3YXRjaC1sb2dzXCJcblxuaW50ZXJmYWNlIFN0YXR1c0V4cGVjdGVkSW5wdXQge1xuICBqb2JJZDogc3RyaW5nXG59XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVyOiBIYW5kbGVyPFBhcnRpYWw8U3RhdHVzRXhwZWN0ZWRJbnB1dD4+ID0gYXN5bmMgKGV2ZW50KSA9PiB7XG4gIGNvbnN0IGNvZGVCdWlsZENsaWVudCA9IG5ldyBDb2RlQnVpbGRDbGllbnQoKVxuICBjb25zdCBjbG91ZFdhdGNoTG9nc0NsaWVudCA9IG5ldyBDbG91ZFdhdGNoTG9nc0NsaWVudCgpXG5cbiAgZnVuY3Rpb24gcmVxdWlyZUVudihuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHZhbHVlID0gcHJvY2Vzcy5lbnZbbmFtZV1cbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nICR7bmFtZX1gKVxuICAgIH1cbiAgICByZXR1cm4gdmFsdWVcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgc3VjY2VzcyBzdGF0dXMuXG4gICAqXG4gICAqIEEgdmFsdWUgb2YgdHJ1ZSBtZWFucyB0aGUgam9iIGhhcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LCB3aGlsZVxuICAgKiBhIHZhbHVlIG9mIGZhbHNlIG1lYW5zIHRoZSBqb2IgZGlkIGNvbXBsZXRlIGJ1dCBub3Qgc3VjY2Vzc2Z1bGx5LlxuICAgKlxuICAgKiBBIG51bGwgdmFsdWUgbWVhbnMgdGhlIGpvYiBpcyBzdGlsbCBpbiBwcm9ncmVzcyBhbmQgdGhlXG4gICAqIGNvbXBsZXRpb24gc3RhdHVzIGlzIG5vdCB5ZXQga25vd24uXG4gICAqL1xuICBmdW5jdGlvbiBnZXRTdWNjZXNzKHN0YXR1czogU3RhdHVzVHlwZSk6IGJvb2xlYW4gfCBudWxsIHtcbiAgICBpZiAoc3RhdHVzID09IFwiU1VDQ0VFREVEXCIpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKHN0YXR1cyA9PSBcIklOX1BST0dSRVNTXCIpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBhc3luYyBmdW5jdGlvbiBnZXRCdWlsZChidWlsZElkOiBzdHJpbmcpOiBQcm9taXNlPEJ1aWxkPiB7XG4gICAgY29uc3QgeyBidWlsZHMgfSA9IGF3YWl0IGNvZGVCdWlsZENsaWVudC5zZW5kKFxuICAgICAgbmV3IEJhdGNoR2V0QnVpbGRzQ29tbWFuZCh7IGlkczogW2J1aWxkSWRdIH0pLFxuICAgIClcblxuICAgIGlmIChidWlsZHM/Lmxlbmd0aCAhPT0gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCAxIGl0ZW0sIGZvdW5kICR7YnVpbGRzPy5sZW5ndGggPz8gXCJ1bmtub3duXCJ9YClcbiAgICB9XG5cbiAgICByZXR1cm4gYnVpbGRzWzBdXG4gIH1cblxuICBhc3luYyBmdW5jdGlvbiBnZXRMb2dzKGJ1aWxkOiBCdWlsZCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgaWYgKGJ1aWxkLmxvZ3MgPT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyBsb2dzIGF0dHJpYnV0ZSBvbiBidWlsZFwiKVxuICAgIH1cblxuICAgIGlmIChidWlsZC5sb2dzLmdyb3VwTmFtZSA9PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIGxvZyBncm91cE5hbWVcIilcbiAgICB9XG5cbiAgICBpZiAoYnVpbGQubG9ncy5zdHJlYW1OYW1lID09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgbG9nIHN0cmVhbU5hbWVcIilcbiAgICB9XG5cbiAgICBjb25zdCB7IGV2ZW50cyB9ID0gYXdhaXQgY2xvdWRXYXRjaExvZ3NDbGllbnQuc2VuZChcbiAgICAgIG5ldyBHZXRMb2dFdmVudHNDb21tYW5kKHtcbiAgICAgICAgbG9nR3JvdXBOYW1lOiBidWlsZC5sb2dzLmdyb3VwTmFtZSxcbiAgICAgICAgbG9nU3RyZWFtTmFtZTogYnVpbGQubG9ncy5zdHJlYW1OYW1lLFxuICAgICAgICBzdGFydEZyb21IZWFkOiB0cnVlLFxuICAgICAgfSksXG4gICAgKVxuXG4gICAgaWYgKGV2ZW50cyA9PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJGYWlsZWQgdG8gZmV0Y2ggbG9nIGV2ZW50c1wiKVxuICAgIH1cblxuICAgIC8vIFRoZSBsb2dzIGNvbnRhaW4gbmV3bGluZXMsIHNvIG5vIG5lZWQgdG8gYWRkIG1vcmUuXG4gICAgcmV0dXJuIGV2ZW50cy5tYXAoKGl0KSA9PiBpdC5tZXNzYWdlKS5qb2luKFwiXCIpXG4gIH1cblxuICBjb25zdCBwcm9qZWN0TmFtZSA9IHJlcXVpcmVFbnYoXCJQUk9KRUNUX05BTUVcIilcblxuICAvLyBWYWxpZGF0ZSB0aGUgaW5wdXQuXG4gIGlmIChcbiAgICB0eXBlb2YgZXZlbnQuam9iSWQgIT09IFwic3RyaW5nXCIgfHxcbiAgICAhZXZlbnQuam9iSWQuc3RhcnRzV2l0aChgJHtwcm9qZWN0TmFtZX06YClcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiSW5wdXQgaW52YWxpZDogXCIgKyBKU09OLnN0cmluZ2lmeShldmVudCwgdW5kZWZpbmVkLCBcIiAgXCIpKVxuICB9XG5cbiAgY29uc3QgYnVpbGQgPSBhd2FpdCBnZXRCdWlsZChldmVudC5qb2JJZClcblxuICBjb25zdCBzdWNjZXNzID1cbiAgICBidWlsZC5idWlsZFN0YXR1cyA9PSBudWxsID8gbnVsbCA6IGdldFN1Y2Nlc3MoYnVpbGQuYnVpbGRTdGF0dXMpXG5cbiAgLy8gUmVhZCBsb2dzIGZyb20gQ2xvdWRXYXRjaCBpZiBjb21wbGV0ZWQuXG4gIGNvbnN0IGxvZ3MgPSBzdWNjZXNzICE9IG51bGwgPyBhd2FpdCBnZXRMb2dzKGJ1aWxkKSA6IG51bGxcblxuICByZXR1cm4ge1xuICAgIGpvYklkOiBldmVudC5qb2JJZCxcbiAgICBzdWNjZXNzLFxuICAgIGxvZ3MsXG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
interface Props {
|
|
2
|
-
artifactPushedAndTagUpdated: boolean;
|
|
3
|
-
}
|
|
4
|
-
/**
|
|
5
|
-
* The responsibility of this class is to be a Value Object to cause
|
|
6
|
-
* more consistent usage and the importance of an artifact being published.
|
|
7
|
-
*
|
|
8
|
-
* Due to the way we build and deploy ECS services, the ECR image will
|
|
9
|
-
* not be available during the first initial account/service deployment.
|
|
10
|
-
*
|
|
11
|
-
* This causes the following sequence:
|
|
12
|
-
*
|
|
13
|
-
* 1. The ECR repository must be provisioned.
|
|
14
|
-
*
|
|
15
|
-
* 2. The tag container must be provisioned in every target account.
|
|
16
|
-
* Before we can provision the ECS service this must be updated
|
|
17
|
-
* to reference an existing artifact.
|
|
18
|
-
*
|
|
19
|
-
* 3. The build system must produce and upload an artifact.
|
|
20
|
-
*
|
|
21
|
-
* 4. The tag container must be updated in every target account
|
|
22
|
-
* to contain the newly built image. This is easiest done by also
|
|
23
|
-
* provisioning the ECS update image construct as part of step 2,
|
|
24
|
-
* without including service and task definition details (which
|
|
25
|
-
* does not exist yet before we can resolve the ECR image).
|
|
26
|
-
* When the ECS update image construct is provisioned the deployment
|
|
27
|
-
* pipeline can start a deployment, which under this state will
|
|
28
|
-
* only store the updated tag but cause no ECS service update.
|
|
29
|
-
*
|
|
30
|
-
* 5. The ECS service can be provisioned, which will use the image
|
|
31
|
-
* reference in the tag container as the first deployment.
|
|
32
|
-
*
|
|
33
|
-
* 6. The next time a deploy is started, the ECS service will be updated.
|
|
34
|
-
*/
|
|
35
|
-
export declare class EcsUpdateImageArtifactStatus {
|
|
36
|
-
readonly artifactPushedAndTagUpdated: boolean;
|
|
37
|
-
constructor(props: Props);
|
|
38
|
-
}
|
|
39
|
-
export {};
|