deployable-awscdk-app-ts 0.0.13 → 0.0.14
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/.jsii +36 -18
- package/API.md +14 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +12 -8
- package/lib/steps.d.ts +6 -5
- package/lib/steps.js +41 -13
- package/lib/types.d.ts +7 -0
- package/lib/types.js +1 -1
- package/package.json +1 -1
package/.jsii
CHANGED
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
"kind": "interface",
|
|
94
94
|
"locationInModule": {
|
|
95
95
|
"filename": "src/types.ts",
|
|
96
|
-
"line":
|
|
96
|
+
"line": 58
|
|
97
97
|
},
|
|
98
98
|
"name": "AWSCredentials",
|
|
99
99
|
"properties": [
|
|
@@ -107,7 +107,7 @@
|
|
|
107
107
|
"immutable": true,
|
|
108
108
|
"locationInModule": {
|
|
109
109
|
"filename": "src/types.ts",
|
|
110
|
-
"line":
|
|
110
|
+
"line": 86
|
|
111
111
|
},
|
|
112
112
|
"name": "region",
|
|
113
113
|
"type": {
|
|
@@ -124,7 +124,7 @@
|
|
|
124
124
|
"immutable": true,
|
|
125
125
|
"locationInModule": {
|
|
126
126
|
"filename": "src/types.ts",
|
|
127
|
-
"line":
|
|
127
|
+
"line": 63
|
|
128
128
|
},
|
|
129
129
|
"name": "accessKeyIdSecretName",
|
|
130
130
|
"optional": true,
|
|
@@ -142,7 +142,7 @@
|
|
|
142
142
|
"immutable": true,
|
|
143
143
|
"locationInModule": {
|
|
144
144
|
"filename": "src/types.ts",
|
|
145
|
-
"line":
|
|
145
|
+
"line": 80
|
|
146
146
|
},
|
|
147
147
|
"name": "assumeRoleDurationSeconds",
|
|
148
148
|
"optional": true,
|
|
@@ -159,7 +159,7 @@
|
|
|
159
159
|
"immutable": true,
|
|
160
160
|
"locationInModule": {
|
|
161
161
|
"filename": "src/types.ts",
|
|
162
|
-
"line":
|
|
162
|
+
"line": 74
|
|
163
163
|
},
|
|
164
164
|
"name": "roleToAssume",
|
|
165
165
|
"optional": true,
|
|
@@ -177,7 +177,7 @@
|
|
|
177
177
|
"immutable": true,
|
|
178
178
|
"locationInModule": {
|
|
179
179
|
"filename": "src/types.ts",
|
|
180
|
-
"line":
|
|
180
|
+
"line": 69
|
|
181
181
|
},
|
|
182
182
|
"name": "secretAccessKeySecretName",
|
|
183
183
|
"optional": true,
|
|
@@ -198,7 +198,7 @@
|
|
|
198
198
|
"kind": "interface",
|
|
199
199
|
"locationInModule": {
|
|
200
200
|
"filename": "src/types.ts",
|
|
201
|
-
"line":
|
|
201
|
+
"line": 22
|
|
202
202
|
},
|
|
203
203
|
"name": "DeployOptions",
|
|
204
204
|
"properties": [
|
|
@@ -211,7 +211,7 @@
|
|
|
211
211
|
"immutable": true,
|
|
212
212
|
"locationInModule": {
|
|
213
213
|
"filename": "src/types.ts",
|
|
214
|
-
"line":
|
|
214
|
+
"line": 26
|
|
215
215
|
},
|
|
216
216
|
"name": "environments",
|
|
217
217
|
"type": {
|
|
@@ -234,7 +234,7 @@
|
|
|
234
234
|
"immutable": true,
|
|
235
235
|
"locationInModule": {
|
|
236
236
|
"filename": "src/types.ts",
|
|
237
|
-
"line":
|
|
237
|
+
"line": 43
|
|
238
238
|
},
|
|
239
239
|
"name": "npmConfigEnvironment",
|
|
240
240
|
"optional": true,
|
|
@@ -253,7 +253,7 @@
|
|
|
253
253
|
"immutable": true,
|
|
254
254
|
"locationInModule": {
|
|
255
255
|
"filename": "src/types.ts",
|
|
256
|
-
"line":
|
|
256
|
+
"line": 34
|
|
257
257
|
},
|
|
258
258
|
"name": "stackPattern",
|
|
259
259
|
"optional": true,
|
|
@@ -277,7 +277,7 @@
|
|
|
277
277
|
},
|
|
278
278
|
"locationInModule": {
|
|
279
279
|
"filename": "src/index.ts",
|
|
280
|
-
"line":
|
|
280
|
+
"line": 16
|
|
281
281
|
},
|
|
282
282
|
"parameters": [
|
|
283
283
|
{
|
|
@@ -300,7 +300,7 @@
|
|
|
300
300
|
},
|
|
301
301
|
"locationInModule": {
|
|
302
302
|
"filename": "src/index.ts",
|
|
303
|
-
"line":
|
|
303
|
+
"line": 47
|
|
304
304
|
},
|
|
305
305
|
"name": "addEnvironments",
|
|
306
306
|
"parameters": [
|
|
@@ -322,7 +322,7 @@
|
|
|
322
322
|
},
|
|
323
323
|
"locationInModule": {
|
|
324
324
|
"filename": "src/index.ts",
|
|
325
|
-
"line":
|
|
325
|
+
"line": 35
|
|
326
326
|
},
|
|
327
327
|
"name": "synth",
|
|
328
328
|
"overrides": "projen.Project"
|
|
@@ -364,6 +364,24 @@
|
|
|
364
364
|
"fqn": "deployable-awscdk-app-ts.DeployOptions"
|
|
365
365
|
}
|
|
366
366
|
},
|
|
367
|
+
{
|
|
368
|
+
"abstract": true,
|
|
369
|
+
"docs": {
|
|
370
|
+
"default": "false",
|
|
371
|
+
"stability": "stable",
|
|
372
|
+
"summary": "Whether to check and skip the deployment for environments that have active deployment of the same commit."
|
|
373
|
+
},
|
|
374
|
+
"immutable": true,
|
|
375
|
+
"locationInModule": {
|
|
376
|
+
"filename": "src/types.ts",
|
|
377
|
+
"line": 19
|
|
378
|
+
},
|
|
379
|
+
"name": "checkActiveDeployment",
|
|
380
|
+
"optional": true,
|
|
381
|
+
"type": {
|
|
382
|
+
"primitive": "boolean"
|
|
383
|
+
}
|
|
384
|
+
},
|
|
367
385
|
{
|
|
368
386
|
"abstract": true,
|
|
369
387
|
"docs": {
|
|
@@ -395,7 +413,7 @@
|
|
|
395
413
|
"kind": "interface",
|
|
396
414
|
"locationInModule": {
|
|
397
415
|
"filename": "src/types.ts",
|
|
398
|
-
"line":
|
|
416
|
+
"line": 46
|
|
399
417
|
},
|
|
400
418
|
"name": "EnvironmentOptions",
|
|
401
419
|
"properties": [
|
|
@@ -408,7 +426,7 @@
|
|
|
408
426
|
"immutable": true,
|
|
409
427
|
"locationInModule": {
|
|
410
428
|
"filename": "src/types.ts",
|
|
411
|
-
"line":
|
|
429
|
+
"line": 55
|
|
412
430
|
},
|
|
413
431
|
"name": "awsCredentials",
|
|
414
432
|
"type": {
|
|
@@ -424,7 +442,7 @@
|
|
|
424
442
|
"immutable": true,
|
|
425
443
|
"locationInModule": {
|
|
426
444
|
"filename": "src/types.ts",
|
|
427
|
-
"line":
|
|
445
|
+
"line": 50
|
|
428
446
|
},
|
|
429
447
|
"name": "name",
|
|
430
448
|
"type": {
|
|
@@ -435,6 +453,6 @@
|
|
|
435
453
|
"symbolId": "src/types:EnvironmentOptions"
|
|
436
454
|
}
|
|
437
455
|
},
|
|
438
|
-
"version": "0.0.
|
|
439
|
-
"fingerprint": "
|
|
456
|
+
"version": "0.0.14",
|
|
457
|
+
"fingerprint": "EYgwik6M05LCva4WVd76NeTefwwgzke8rxovK+ozBNo="
|
|
440
458
|
}
|
package/API.md
CHANGED
|
@@ -244,6 +244,7 @@ const deployableAwsCdkTypeScriptAppOptions: DeployableAwsCdkTypeScriptAppOptions
|
|
|
244
244
|
| [`lambdaAutoDiscover`](#deployableawscdkapptsdeployableawscdktypescriptappoptionspropertylambdaautodiscover) | `boolean` | Automatically adds an `awscdk.LambdaFunction` for each `.lambda.ts` handler in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project. |
|
|
245
245
|
| [`lambdaOptions`](#deployableawscdkapptsdeployableawscdktypescriptappoptionspropertylambdaoptions) | [`projen.awscdk.LambdaFunctionCommonOptions`](#projen.awscdk.LambdaFunctionCommonOptions) | Common options for all AWS Lambda functions. |
|
|
246
246
|
| [`deployOptions`](#deployableawscdkapptsdeployableawscdktypescriptappoptionspropertydeployoptions)<span title="Required">*</span> | [`deployable-awscdk-app-ts.DeployOptions`](#deployable-awscdk-app-ts.DeployOptions) | Deployment options. |
|
|
247
|
+
| [`checkActiveDeployment`](#deployableawscdkapptsdeployableawscdktypescriptappoptionspropertycheckactivedeployment) | `boolean` | Whether to check and skip the deployment for environments that have active deployment of the same commit. |
|
|
247
248
|
| [`generateNvmrc`](#deployableawscdkapptsdeployableawscdktypescriptappoptionspropertygeneratenvmrc) | `boolean` | Whether to generate nvmrc file for the node version of the project. |
|
|
248
249
|
|
|
249
250
|
---
|
|
@@ -2176,6 +2177,19 @@ Deployment options.
|
|
|
2176
2177
|
|
|
2177
2178
|
---
|
|
2178
2179
|
|
|
2180
|
+
##### `checkActiveDeployment`<sup>Optional</sup> <a name="deployable-awscdk-app-ts.DeployableAwsCdkTypeScriptAppOptions.property.checkActiveDeployment" id="deployableawscdkapptsdeployableawscdktypescriptappoptionspropertycheckactivedeployment"></a>
|
|
2181
|
+
|
|
2182
|
+
```typescript
|
|
2183
|
+
public readonly checkActiveDeployment: boolean;
|
|
2184
|
+
```
|
|
2185
|
+
|
|
2186
|
+
- *Type:* `boolean`
|
|
2187
|
+
- *Default:* false
|
|
2188
|
+
|
|
2189
|
+
Whether to check and skip the deployment for environments that have active deployment of the same commit.
|
|
2190
|
+
|
|
2191
|
+
---
|
|
2192
|
+
|
|
2179
2193
|
##### `generateNvmrc`<sup>Optional</sup> <a name="deployable-awscdk-app-ts.DeployableAwsCdkTypeScriptAppOptions.property.generateNvmrc" id="deployableawscdkapptsdeployableawscdktypescriptappoptionspropertygeneratenvmrc"></a>
|
|
2180
2194
|
|
|
2181
2195
|
```typescript
|
package/lib/index.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export * from './types';
|
|
|
7
7
|
export declare class DeployableAwsCdkTypeScriptApp extends awscdk.AwsCdkTypeScriptApp {
|
|
8
8
|
private readonly deployable;
|
|
9
9
|
private readonly generateNvmrc;
|
|
10
|
+
private readonly checkActiveDeployment;
|
|
10
11
|
private readonly workflowNodeVersion?;
|
|
11
12
|
private readonly deployOptions;
|
|
12
13
|
/**
|
package/lib/index.js
CHANGED
|
@@ -25,7 +25,7 @@ class DeployableAwsCdkTypeScriptApp extends projen_1.awscdk.AwsCdkTypeScriptApp
|
|
|
25
25
|
* @stability stable
|
|
26
26
|
*/
|
|
27
27
|
constructor(options) {
|
|
28
|
-
var _b, _c;
|
|
28
|
+
var _b, _c, _d;
|
|
29
29
|
const deployable = (_b = options.release) !== null && _b !== void 0 ? _b : true;
|
|
30
30
|
super({
|
|
31
31
|
...options,
|
|
@@ -33,6 +33,7 @@ class DeployableAwsCdkTypeScriptApp extends projen_1.awscdk.AwsCdkTypeScriptApp
|
|
|
33
33
|
});
|
|
34
34
|
this.deployable = deployable;
|
|
35
35
|
this.generateNvmrc = (_c = options.generateNvmrc) !== null && _c !== void 0 ? _c : true;
|
|
36
|
+
this.checkActiveDeployment = (_d = options.checkActiveDeployment) !== null && _d !== void 0 ? _d : false;
|
|
36
37
|
this.workflowNodeVersion = options.workflowNodeVersion;
|
|
37
38
|
this.deployOptions = options.deployOptions;
|
|
38
39
|
if (!deployable)
|
|
@@ -97,6 +98,7 @@ class DeployableAwsCdkTypeScriptApp extends projen_1.awscdk.AwsCdkTypeScriptApp
|
|
|
97
98
|
],
|
|
98
99
|
permissions: {
|
|
99
100
|
contents: workflows_model_1.JobPermission.READ,
|
|
101
|
+
deployments: workflows_model_1.JobPermission.READ,
|
|
100
102
|
},
|
|
101
103
|
strategy: {
|
|
102
104
|
maxParallel: 1,
|
|
@@ -113,17 +115,19 @@ class DeployableAwsCdkTypeScriptApp extends projen_1.awscdk.AwsCdkTypeScriptApp
|
|
|
113
115
|
steps: [],
|
|
114
116
|
};
|
|
115
117
|
jobDefinition.steps.push(steps.checkoutStep());
|
|
118
|
+
if (this.checkActiveDeployment)
|
|
119
|
+
jobDefinition.steps.push(steps.checkActiveDeploymentStep());
|
|
116
120
|
if (this.workflowNodeVersion)
|
|
117
|
-
jobDefinition.steps.push(steps.setNodeVersionStep(this.workflowNodeVersion));
|
|
118
|
-
jobDefinition.steps.push(steps.installDependenciesStep(this.package.installCommand));
|
|
119
|
-
jobDefinition.steps.push(...steps.setAwsCredentialsSteps());
|
|
121
|
+
jobDefinition.steps.push(steps.setNodeVersionStep(this.workflowNodeVersion, this.checkActiveDeployment));
|
|
122
|
+
jobDefinition.steps.push(steps.installDependenciesStep(this.package.installCommand, this.checkActiveDeployment));
|
|
123
|
+
jobDefinition.steps.push(...steps.setAwsCredentialsSteps(this.checkActiveDeployment));
|
|
120
124
|
if (this.deployOptions.npmConfigEnvironment)
|
|
121
|
-
jobDefinition.steps.push(steps.setNpmConfig(this.deployOptions.npmConfigEnvironment, '${{ matrix.environment }}'));
|
|
122
|
-
jobDefinition.steps.push(steps.deploymentStep(this.deployOptions.stackPattern));
|
|
125
|
+
jobDefinition.steps.push(steps.setNpmConfig(this.deployOptions.npmConfigEnvironment, '${{ matrix.environment }}', this.checkActiveDeployment));
|
|
126
|
+
jobDefinition.steps.push(steps.deploymentStep(this.deployOptions.stackPattern, this.checkActiveDeployment));
|
|
123
127
|
(_b = this.release) === null || _b === void 0 ? void 0 : _b.addJobs({ deploy: jobDefinition });
|
|
124
128
|
}
|
|
125
129
|
}
|
|
126
130
|
exports.DeployableAwsCdkTypeScriptApp = DeployableAwsCdkTypeScriptApp;
|
|
127
131
|
_a = JSII_RTTI_SYMBOL_1;
|
|
128
|
-
DeployableAwsCdkTypeScriptApp[_a] = { fqn: "deployable-awscdk-app-ts.DeployableAwsCdkTypeScriptApp", version: "0.0.
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
132
|
+
DeployableAwsCdkTypeScriptApp[_a] = { fqn: "deployable-awscdk-app-ts.DeployableAwsCdkTypeScriptApp", version: "0.0.14" };
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbUNBQXVDO0FBQ3ZDLHVFQUFvRTtBQUNwRSxpQ0FBZ0M7QUFHaEMsMENBQXVCOzs7O0FBRXZCLE1BQWEsNkJBQThCLFNBQVEsZUFBTSxDQUFDLG1CQUFtQjs7OztJQVEzRSxZQUFZLE9BQTZDOztRQUN2RCxNQUFNLFVBQVUsU0FBRyxPQUFPLENBQUMsT0FBTyxtQ0FBSSxJQUFJLENBQUE7UUFDMUMsS0FBSyxDQUFDO1lBQ0osR0FBRyxPQUFPO1lBQ1YsT0FBTyxFQUFFLFVBQVU7U0FDcEIsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUE7UUFDNUIsSUFBSSxDQUFDLGFBQWEsU0FBRyxPQUFPLENBQUMsYUFBYSxtQ0FBSSxJQUFJLENBQUE7UUFDbEQsSUFBSSxDQUFDLHFCQUFxQixTQUFHLE9BQU8sQ0FBQyxxQkFBcUIsbUNBQUksS0FBSyxDQUFBO1FBQ25FLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxPQUFPLENBQUMsbUJBQW1CLENBQUE7UUFDdEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFBO1FBRTFDLElBQUksQ0FBQyxVQUFVO1lBQ2IsT0FBTyxDQUFDLElBQUksQ0FBQyxpRkFBaUYsQ0FBQyxDQUFBO1FBRWpHLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUI7WUFDakQsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFBO0lBQ2hFLENBQUM7Ozs7Ozs7Ozs7Ozs7SUFFRCxLQUFLOztRQUNILElBQUksSUFBSSxDQUFDLFVBQVU7WUFDakIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFBO1FBRXRCLElBQUksSUFBSSxDQUFDLGFBQWE7WUFDcEIsSUFBSSxpQkFBUSxDQUFDLElBQUks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LHFCQUFxQixDQUFDLENBQUMsQ0FBQTtRQUNoSCxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFBO1FBRXJGLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0I7WUFDekMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLG9CQUFvQixFQUFFLDJCQUEyQixFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUE7UUFFaEosYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFBO1FBRTNHLE1BQUEsSUFBSSxDQUFDLE9BQU8sMENBQUUsT0FBTyxDQUFDLEVBQUMsTUFBTSxFQUFFLGFBQWEsRUFBQyxFQUFDO0lBRWhELENBQUM7O0FBL0dILHNFQWdIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7YXdzY2RrLCBUZXh0RmlsZX0gZnJvbSAncHJvamVuJ1xuaW1wb3J0IHtKb2IsIEpvYlBlcm1pc3Npb259IGZyb20gJ3Byb2plbi9saWIvZ2l0aHViL3dvcmtmbG93cy1tb2RlbCdcbmltcG9ydCAqIGFzIHN0ZXBzIGZyb20gJy4vc3RlcHMnXG5pbXBvcnQge0RlcGxveWFibGVBd3NDZGtUeXBlU2NyaXB0QXBwT3B0aW9ucywgRGVwbG95T3B0aW9ucywgRW52aXJvbm1lbnRPcHRpb25zfSBmcm9tICcuL3R5cGVzJ1xuXG5leHBvcnQgKiBmcm9tICcuL3R5cGVzJ1xuXG5leHBvcnQgY2xhc3MgRGVwbG95YWJsZUF3c0Nka1R5cGVTY3JpcHRBcHAgZXh0ZW5kcyBhd3NjZGsuQXdzQ2RrVHlwZVNjcmlwdEFwcCB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkZXBsb3lhYmxlOiBib29sZWFuXG4gIHByaXZhdGUgcmVhZG9ubHkgZ2VuZXJhdGVOdm1yYzogYm9vbGVhblxuICBwcml2YXRlIHJlYWRvbmx5IGNoZWNrQWN0aXZlRGVwbG95bWVudDogYm9vbGVhblxuICBwcml2YXRlIHJlYWRvbmx5IHdvcmtmbG93Tm9kZVZlcnNpb24/OiBzdHJpbmdcbiAgcHJpdmF0ZSByZWFkb25seSBkZXBsb3lPcHRpb25zOiBEZXBsb3lPcHRpb25zXG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogRGVwbG95YWJsZUF3c0Nka1R5cGVTY3JpcHRBcHBPcHRpb25zKSB7XG4gICAgY29uc3QgZGVwbG95YWJsZSA9IG9wdGlvbnMucmVsZWFzZSA/PyB0cnVlXG4gICAgc3VwZXIoe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHJlbGVhc2U6IGRlcGxveWFibGUsXG4gICAgfSlcbiAgICB0aGlzLmRlcGxveWFibGUgPSBkZXBsb3lhYmxlXG4gICAgdGhpcy5nZW5lcmF0ZU52bXJjID0gb3B0aW9ucy5nZW5lcmF0ZU52bXJjID8/IHRydWVcbiAgICB0aGlzLmNoZWNrQWN0aXZlRGVwbG95bWVudCA9IG9wdGlvbnMuY2hlY2tBY3RpdmVEZXBsb3ltZW50ID8/IGZhbHNlXG4gICAgdGhpcy53b3JrZmxvd05vZGVWZXJzaW9uID0gb3B0aW9ucy53b3JrZmxvd05vZGVWZXJzaW9uXG4gICAgdGhpcy5kZXBsb3lPcHRpb25zID0gb3B0aW9ucy5kZXBsb3lPcHRpb25zXG5cbiAgICBpZiAoIWRlcGxveWFibGUpXG4gICAgICBjb25zb2xlLndhcm4oJ1RoZSBwcm9qZWN0IGlzIGV4cGxpY2l0bHkgc2V0IHRvIG5vdCByZWxlYXNlLCBtYWtlIHN1cmUgdGhpcyBpcyBkZXNpcmVkIHNldHRpbmcnKVxuXG4gICAgaWYgKHRoaXMuZ2VuZXJhdGVOdm1yYyAmJiAhdGhpcy53b3JrZmxvd05vZGVWZXJzaW9uKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCd3b3JrZmxvd05vZGVWZXJzaW9uIGlzIHJlcXVpcmVkIGZvciBudm1yYycpXG4gIH1cblxuICBzeW50aCgpIHtcbiAgICBpZiAodGhpcy5kZXBsb3lhYmxlKVxuICAgICAgdGhpcy5hZGREZXBsb3lKb2JzKClcblxuICAgIGlmICh0aGlzLmdlbmVyYXRlTnZtcmMpXG4gICAgICBuZXcgVGV4dEZpbGUodGhpcywgJy5udm1yYycsIHtcbiAgICAgICAgbGluZXM6IFt0aGlzLndvcmtmbG93Tm9kZVZlcnNpb24gPz8gJyddLFxuICAgICAgfSlcblxuICAgIHN1cGVyLnN5bnRoKClcbiAgfVxuXG4gIGFkZEVudmlyb25tZW50cyguLi5pdGVtczogRW52aXJvbm1lbnRPcHRpb25zW10pIHtcbiAgICB0aGlzLmRlcGxveU9wdGlvbnMuZW52aXJvbm1lbnRzLnB1c2goLi4uaXRlbXMpXG4gIH1cblxuICBwcml2YXRlIGFkZERlcGxveUpvYnMoKSB7XG5cbiAgICBpZiAodGhpcy5kZXBsb3lPcHRpb25zLmVudmlyb25tZW50cy5sZW5ndGggPT09IDApXG4gICAgICBjb25zb2xlLndhcm4oJ1RoZSBwcm9qZWN0IGRvZXMgbm90IGhhdmUgYW55IGVudmlyb25tZW50IHNldCwgbWFrZSBzdXJlIHRoaXMgaXMgZGVzaXJlZCBzZXR0aW5nJylcblxuICAgIGNvbnN0IGluY2x1ZGUgPSB0aGlzLmRlcGxveU9wdGlvbnMuZW52aXJvbm1lbnRzLm1hcChlbnZpcm9ubWVudE9wdGlvbnMgPT4ge1xuICAgICAgY29uc3Qge2F3c0NyZWRlbnRpYWxzfSA9IGVudmlyb25tZW50T3B0aW9uc1xuXG4gICAgICBjb25zdCBhc3N1bWVSb2xlID0gYXdzQ3JlZGVudGlhbHMucm9sZVRvQXNzdW1lID8gJ3RydWUnIDogJ2ZhbHNlJ1xuXG4gICAgICBjb25zdCBhc3N1bWVSb2xlU2V0dGluZ3MgPSBhd3NDcmVkZW50aWFscy5yb2xlVG9Bc3N1bWUgPyB7XG4gICAgICAgIHJvbGVUb0Fzc3VtZTogYXdzQ3JlZGVudGlhbHMucm9sZVRvQXNzdW1lLFxuICAgICAgICBhc3N1bWVSb2xlRHVyYXRpb25TZWNvbmRzOiAoYXdzQ3JlZGVudGlhbHMuYXNzdW1lUm9sZUR1cmF0aW9uU2Vjb25kcyB8fCAzMDApLnRvU3RyaW5nKCksXG4gICAgICB9OiB1bmRlZmluZWRcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZW52aXJvbm1lbnQ6IGVudmlyb25tZW50T3B0aW9ucy5uYW1lLFxuICAgICAgICBhY2Nlc3NLZXlJZDogYXdzQ3JlZGVudGlhbHMuYWNjZXNzS2V5SWRTZWNyZXROYW1lID8/ICdBV1NfQUNDRVNTX0tFWV9JRCcsXG4gICAgICAgIHNlY3JldEFjY2Vzc0tleTogYXdzQ3JlZGVudGlhbHMuc2VjcmV0QWNjZXNzS2V5U2VjcmV0TmFtZSA/PyAnQVdTX1NFQ1JFVF9BQ0NFU1NfS0VZJyxcbiAgICAgICAgcmVnaW9uOiBhd3NDcmVkZW50aWFscy5yZWdpb24sXG4gICAgICAgIGFzc3VtZVJvbGUsXG4gICAgICAgIC4uLmFzc3VtZVJvbGVTZXR0aW5ncyxcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgY29uc3Qgam9iRGVmaW5pdGlvbjogSm9iID0ge1xuICAgICAgcnVuc09uOiBbJ3VidW50dS1sYXRlc3QnXSxcbiAgICAgIGNvbmN1cnJlbmN5OiAnZGVwbG95JyxcbiAgICAgIG5lZWRzOiBbXG4gICAgICAgICdyZWxlYXNlX2dpdGh1YicsXG4gICAgICBdLFxuICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgY29udGVudHM6IEpvYlBlcm1pc3Npb24uUkVBRCxcbiAgICAgICAgZGVwbG95bWVudHM6IEpvYlBlcm1pc3Npb24uUkVBRCxcbiAgICAgIH0sXG4gICAgICBzdHJhdGVneToge1xuICAgICAgICBtYXhQYXJhbGxlbDogMSxcbiAgICAgICAgbWF0cml4OiB7XG4gICAgICAgICAgZG9tYWluOiB7XG4gICAgICAgICAgICBlbnZpcm9ubWVudDogaW5jbHVkZS5tYXAoZSA9PiBlLmVudmlyb25tZW50KSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGluY2x1ZGUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgbmFtZTogJyR7eyBtYXRyaXguZW52aXJvbm1lbnQgfX0nLFxuICAgICAgfSxcbiAgICAgIHN0ZXBzOiBbXSxcbiAgICB9XG5cbiAgICBqb2JEZWZpbml0aW9uLnN0ZXBzLnB1c2goc3RlcHMuY2hlY2tvdXRTdGVwKCkpXG5cbiAgICBpZiAodGhpcy5jaGVja0FjdGl2ZURlcGxveW1lbnQpXG4gICAgICBqb2JEZWZpbml0aW9uLnN0ZXBzLnB1c2goc3RlcHMuY2hlY2tBY3RpdmVEZXBsb3ltZW50U3RlcCgpKVxuXG4gICAgaWYgKHRoaXMud29ya2Zsb3dOb2RlVmVyc2lvbilcbiAgICAgIGpvYkRlZmluaXRpb24uc3RlcHMucHVzaChzdGVwcy5zZXROb2RlVmVyc2lvblN0ZXAodGhpcy53b3JrZmxvd05vZGVWZXJzaW9uLCB0aGlzLmNoZWNrQWN0aXZlRGVwbG95bWVudCkpXG5cbiAgICBqb2JEZWZpbml0aW9uLnN0ZXBzLnB1c2goc3RlcHMuaW5zdGFsbERlcGVuZGVuY2llc1N0ZXAodGhpcy5wYWNrYWdlLmluc3RhbGxDb21tYW5kLCB0aGlzLmNoZWNrQWN0aXZlRGVwbG95bWVudCkpXG4gICAgam9iRGVmaW5pdGlvbi5zdGVwcy5wdXNoKC4uLnN0ZXBzLnNldEF3c0NyZWRlbnRpYWxzU3RlcHModGhpcy5jaGVja0FjdGl2ZURlcGxveW1lbnQpKVxuXG4gICAgaWYgKHRoaXMuZGVwbG95T3B0aW9ucy5ucG1Db25maWdFbnZpcm9ubWVudClcbiAgICAgIGpvYkRlZmluaXRpb24uc3RlcHMucHVzaChzdGVwcy5zZXROcG1Db25maWcodGhpcy5kZXBsb3lPcHRpb25zLm5wbUNvbmZpZ0Vudmlyb25tZW50LCAnJHt7IG1hdHJpeC5lbnZpcm9ubWVudCB9fScsIHRoaXMuY2hlY2tBY3RpdmVEZXBsb3ltZW50KSlcblxuICAgIGpvYkRlZmluaXRpb24uc3RlcHMucHVzaChzdGVwcy5kZXBsb3ltZW50U3RlcCh0aGlzLmRlcGxveU9wdGlvbnMuc3RhY2tQYXR0ZXJuLCB0aGlzLmNoZWNrQWN0aXZlRGVwbG95bWVudCkpXG5cbiAgICB0aGlzLnJlbGVhc2U/LmFkZEpvYnMoe2RlcGxveTogam9iRGVmaW5pdGlvbn0pXG5cbiAgfVxufSJdfQ==
|
package/lib/steps.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { JobStep } from 'projen/lib/github/workflows-model';
|
|
2
2
|
export declare function checkoutStep(): JobStep;
|
|
3
|
-
export declare function setNodeVersionStep(nodeVersion: string): JobStep;
|
|
4
|
-
export declare function installDependenciesStep(command: string): JobStep;
|
|
5
|
-
export declare function deploymentStep(stackPattern
|
|
6
|
-
export declare function setAwsCredentialsSteps(): JobStep[];
|
|
7
|
-
export declare function setNpmConfig(configName: string, configValue: string): JobStep;
|
|
3
|
+
export declare function setNodeVersionStep(nodeVersion: string, checkActiveDeployment: boolean): JobStep;
|
|
4
|
+
export declare function installDependenciesStep(command: string, checkActiveDeployment: boolean): JobStep;
|
|
5
|
+
export declare function deploymentStep(stackPattern: string | undefined, checkActiveDeployment: boolean): JobStep;
|
|
6
|
+
export declare function setAwsCredentialsSteps(checkActiveDeployment: boolean): JobStep[];
|
|
7
|
+
export declare function setNpmConfig(configName: string, configValue: string, checkActiveDeployment: boolean): JobStep;
|
|
8
|
+
export declare function checkActiveDeploymentStep(): JobStep;
|
package/lib/steps.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.setNpmConfig = exports.setAwsCredentialsSteps = exports.deploymentStep = exports.installDependenciesStep = exports.setNodeVersionStep = exports.checkoutStep = void 0;
|
|
3
|
+
exports.checkActiveDeploymentStep = exports.setNpmConfig = exports.setAwsCredentialsSteps = exports.deploymentStep = exports.installDependenciesStep = exports.setNodeVersionStep = exports.checkoutStep = void 0;
|
|
4
4
|
function checkoutStep() {
|
|
5
5
|
return {
|
|
6
6
|
name: 'Checkout',
|
|
@@ -11,8 +11,9 @@ function checkoutStep() {
|
|
|
11
11
|
};
|
|
12
12
|
}
|
|
13
13
|
exports.checkoutStep = checkoutStep;
|
|
14
|
-
function setNodeVersionStep(nodeVersion) {
|
|
14
|
+
function setNodeVersionStep(nodeVersion, checkActiveDeployment) {
|
|
15
15
|
return {
|
|
16
|
+
...getSkipIfAlreadyActiveDeploymentCondition(checkActiveDeployment),
|
|
16
17
|
name: 'Setup Node.js',
|
|
17
18
|
uses: 'actions/setup-node@v2.2.0',
|
|
18
19
|
with: {
|
|
@@ -21,29 +22,34 @@ function setNodeVersionStep(nodeVersion) {
|
|
|
21
22
|
};
|
|
22
23
|
}
|
|
23
24
|
exports.setNodeVersionStep = setNodeVersionStep;
|
|
24
|
-
function installDependenciesStep(command) {
|
|
25
|
+
function installDependenciesStep(command, checkActiveDeployment) {
|
|
25
26
|
return {
|
|
27
|
+
...getSkipIfAlreadyActiveDeploymentCondition(checkActiveDeployment),
|
|
26
28
|
name: 'Install dependencies',
|
|
27
29
|
run: command,
|
|
28
30
|
};
|
|
29
31
|
}
|
|
30
32
|
exports.installDependenciesStep = installDependenciesStep;
|
|
31
|
-
function deploymentStep(stackPattern) {
|
|
33
|
+
function deploymentStep(stackPattern, checkActiveDeployment) {
|
|
32
34
|
const deployArgument = stackPattern ? ` ${stackPattern}` : '';
|
|
33
35
|
return {
|
|
36
|
+
...getSkipIfAlreadyActiveDeploymentCondition(checkActiveDeployment),
|
|
34
37
|
name: 'Deployment',
|
|
35
38
|
run: `npx projen deploy${deployArgument}`,
|
|
36
39
|
};
|
|
37
40
|
}
|
|
38
41
|
exports.deploymentStep = deploymentStep;
|
|
39
|
-
function setAwsCredentialsInEnvironment() {
|
|
42
|
+
function setAwsCredentialsInEnvironment(checkActiveDeployment) {
|
|
40
43
|
const commands = [
|
|
41
44
|
'echo "AWS_ACCESS_KEY_ID=$accessKeyId" >> $GITHUB_ENV',
|
|
42
45
|
'echo "AWS_SECRET_ACCESS_KEY=$secretAccessKey" >> $GITHUB_ENV',
|
|
43
46
|
'echo "AWS_REGION=$region" >> $GITHUB_ENV',
|
|
44
47
|
];
|
|
48
|
+
const condition = checkActiveDeployment ?
|
|
49
|
+
`\${{ matrix.assumeRole == 'false' && ${skipIfAlreadyActiveDeploymentCondition} }}` :
|
|
50
|
+
'${{ matrix.assumeRole == \'false\' }}';
|
|
45
51
|
return {
|
|
46
|
-
if:
|
|
52
|
+
if: condition,
|
|
47
53
|
name: 'Configure AWS Credentials',
|
|
48
54
|
run: `\n${commands.join('\n')}`,
|
|
49
55
|
env: {
|
|
@@ -53,9 +59,12 @@ function setAwsCredentialsInEnvironment() {
|
|
|
53
59
|
},
|
|
54
60
|
};
|
|
55
61
|
}
|
|
56
|
-
function assumeAwsRoleStep() {
|
|
62
|
+
function assumeAwsRoleStep(checkActiveDeployment) {
|
|
63
|
+
const condition = checkActiveDeployment ?
|
|
64
|
+
`\${{ matrix.assumeRole == 'true' && ${skipIfAlreadyActiveDeploymentCondition} }}` :
|
|
65
|
+
'${{ matrix.assumeRole == \'true\' }}';
|
|
57
66
|
return {
|
|
58
|
-
if:
|
|
67
|
+
if: condition,
|
|
59
68
|
name: 'Assume AWS Role',
|
|
60
69
|
uses: 'aws-actions/configure-aws-credentials@v1',
|
|
61
70
|
with: {
|
|
@@ -67,16 +76,17 @@ function assumeAwsRoleStep() {
|
|
|
67
76
|
},
|
|
68
77
|
};
|
|
69
78
|
}
|
|
70
|
-
function setAwsCredentialsSteps() {
|
|
79
|
+
function setAwsCredentialsSteps(checkActiveDeployment) {
|
|
71
80
|
return [
|
|
72
|
-
setAwsCredentialsInEnvironment(),
|
|
73
|
-
assumeAwsRoleStep(),
|
|
81
|
+
setAwsCredentialsInEnvironment(checkActiveDeployment),
|
|
82
|
+
assumeAwsRoleStep(checkActiveDeployment),
|
|
74
83
|
];
|
|
75
84
|
}
|
|
76
85
|
exports.setAwsCredentialsSteps = setAwsCredentialsSteps;
|
|
77
|
-
function setNpmConfig(configName, configValue) {
|
|
86
|
+
function setNpmConfig(configName, configValue, checkActiveDeployment) {
|
|
78
87
|
const environmentVariableName = 'CONFIG_VALUE';
|
|
79
88
|
return {
|
|
89
|
+
...getSkipIfAlreadyActiveDeploymentCondition(checkActiveDeployment),
|
|
80
90
|
name: 'Setting NPM Config',
|
|
81
91
|
env: {
|
|
82
92
|
[environmentVariableName]: configValue,
|
|
@@ -85,4 +95,22 @@ function setNpmConfig(configName, configValue) {
|
|
|
85
95
|
};
|
|
86
96
|
}
|
|
87
97
|
exports.setNpmConfig = setNpmConfig;
|
|
88
|
-
|
|
98
|
+
const checkActiveDeploymentStepId = 'deployment-check';
|
|
99
|
+
function checkActiveDeploymentStep() {
|
|
100
|
+
return {
|
|
101
|
+
id: checkActiveDeploymentStepId,
|
|
102
|
+
uses: 'AminFazlMondo/check-deployed-environment@v1',
|
|
103
|
+
with: {
|
|
104
|
+
environment: '${{ matrix.environment }}',
|
|
105
|
+
},
|
|
106
|
+
env: {
|
|
107
|
+
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}',
|
|
108
|
+
},
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
exports.checkActiveDeploymentStep = checkActiveDeploymentStep;
|
|
112
|
+
const skipIfAlreadyActiveDeploymentCondition = `steps.${checkActiveDeploymentStepId}.outputs.has_active_deployment == 'true'`;
|
|
113
|
+
function getSkipIfAlreadyActiveDeploymentCondition(checkActiveDeployment) {
|
|
114
|
+
return checkActiveDeployment ? { if: `\${{ ${skipIfAlreadyActiveDeploymentCondition} }}` } : undefined;
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3RlcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsU0FBZ0IsWUFBWTtJQUMxQixPQUFPO1FBQ0wsSUFBSSxFQUFFLFVBQVU7UUFDaEIsSUFBSSxFQUFFLHFCQUFxQjtRQUMzQixJQUFJLEVBQUU7WUFDSixHQUFHLEVBQUUsbUJBQW1CO1NBQ3pCO0tBQ0YsQ0FBQTtBQUNILENBQUM7QUFSRCxvQ0FRQztBQUVELFNBQWdCLGtCQUFrQixDQUFDLFdBQW1CLEVBQUUscUJBQThCO0lBQ3BGLE9BQU87UUFDTCxHQUFHLHlDQUF5QyxDQUFDLHFCQUFxQixDQUFDO1FBQ25FLElBQUksRUFBRSxlQUFlO1FBQ3JCLElBQUksRUFBRSwyQkFBMkI7UUFDakMsSUFBSSxFQUFFO1lBQ0osY0FBYyxFQUFFLFdBQVc7U0FDNUI7S0FDRixDQUFBO0FBQ0gsQ0FBQztBQVRELGdEQVNDO0FBRUQsU0FBZ0IsdUJBQXVCLENBQUMsT0FBZSxFQUFFLHFCQUE4QjtJQUNyRixPQUFPO1FBQ0wsR0FBRyx5Q0FBeUMsQ0FBQyxxQkFBcUIsQ0FBQztRQUNuRSxJQUFJLEVBQUUsc0JBQXNCO1FBQzVCLEdBQUcsRUFBRSxPQUFPO0tBQ2IsQ0FBQTtBQUNILENBQUM7QUFORCwwREFNQztBQUVELFNBQWdCLGNBQWMsQ0FBQyxZQUFnQyxFQUFFLHFCQUE4QjtJQUM3RixNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksWUFBWSxFQUFFLENBQUEsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUU1RCxPQUFPO1FBQ0wsR0FBRyx5Q0FBeUMsQ0FBQyxxQkFBcUIsQ0FBQztRQUNuRSxJQUFJLEVBQUUsWUFBWTtRQUNsQixHQUFHLEVBQUUsb0JBQW9CLGNBQWMsRUFBRTtLQUMxQyxDQUFBO0FBQ0gsQ0FBQztBQVJELHdDQVFDO0FBRUQsU0FBUyw4QkFBOEIsQ0FBQyxxQkFBOEI7SUFDcEUsTUFBTSxRQUFRLEdBQUc7UUFDZixzREFBc0Q7UUFDdEQsOERBQThEO1FBQzlELDBDQUEwQztLQUMzQyxDQUFBO0lBRUQsTUFBTSxTQUFTLEdBQ2IscUJBQXFCLENBQUMsQ0FBQztRQUNyQix3Q0FBd0Msc0NBQXNDLEtBQUssQ0FBQyxDQUFDO1FBQ3JGLHVDQUF1QyxDQUFBO0lBRTNDLE9BQU87UUFDTCxFQUFFLEVBQUUsU0FBUztRQUNiLElBQUksRUFBRSwyQkFBMkI7UUFDakMsR0FBRyxFQUFFLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUMvQixHQUFHLEVBQUU7WUFDSCxXQUFXLEVBQUUsMkJBQTJCO1lBQ3hDLGVBQWUsRUFBRSwrQkFBK0I7WUFDaEQsTUFBTSxFQUFFLHNCQUFzQjtTQUMvQjtLQUNGLENBQUE7QUFDSCxDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxxQkFBOEI7SUFDdkQsTUFBTSxTQUFTLEdBQ2IscUJBQXFCLENBQUMsQ0FBQztRQUNyQix1Q0FBdUMsc0NBQXNDLEtBQUssQ0FBQyxDQUFDO1FBQ3BGLHNDQUFzQyxDQUFBO0lBQzFDLE9BQU87UUFDTCxFQUFFLEVBQUUsU0FBUztRQUNiLElBQUksRUFBRSxpQkFBaUI7UUFDdkIsSUFBSSxFQUFFLDBDQUEwQztRQUNoRCxJQUFJLEVBQUU7WUFDSixtQkFBbUIsRUFBRSwyQkFBMkI7WUFDaEQsdUJBQXVCLEVBQUUsK0JBQStCO1lBQ3hELGdCQUFnQixFQUFFLDRCQUE0QjtZQUM5QyxZQUFZLEVBQUUsc0JBQXNCO1lBQ3BDLHVCQUF1QixFQUFFLHlDQUF5QztTQUNuRTtLQUNGLENBQUE7QUFDSCxDQUFDO0FBRUQsU0FBZ0Isc0JBQXNCLENBQUMscUJBQThCO0lBQ25FLE9BQU87UUFDTCw4QkFBOEIsQ0FBQyxxQkFBcUIsQ0FBQztRQUNyRCxpQkFBaUIsQ0FBQyxxQkFBcUIsQ0FBQztLQUN6QyxDQUFBO0FBQ0gsQ0FBQztBQUxELHdEQUtDO0FBRUQsU0FBZ0IsWUFBWSxDQUFDLFVBQWtCLEVBQUUsV0FBbUIsRUFBRSxxQkFBOEI7SUFDbEcsTUFBTSx1QkFBdUIsR0FBRyxjQUFjLENBQUE7SUFDOUMsT0FBTztRQUNMLEdBQUcseUNBQXlDLENBQUMscUJBQXFCLENBQUM7UUFDbkUsSUFBSSxFQUFFLG9CQUFvQjtRQUMxQixHQUFHLEVBQUU7WUFDSCxDQUFDLHVCQUF1QixDQUFDLEVBQUUsV0FBVztTQUN2QztRQUNELEdBQUcsRUFBRSxrQkFBa0IsVUFBVSxLQUFLLHVCQUF1QixFQUFFO0tBQ2hFLENBQUE7QUFDSCxDQUFDO0FBVkQsb0NBVUM7QUFFRCxNQUFNLDJCQUEyQixHQUFHLGtCQUFrQixDQUFBO0FBQ3RELFNBQWdCLHlCQUF5QjtJQUN2QyxPQUFPO1FBQ0wsRUFBRSxFQUFFLDJCQUEyQjtRQUMvQixJQUFJLEVBQUUsNkNBQTZDO1FBQ25ELElBQUksRUFBRTtZQUNKLFdBQVcsRUFBRSwyQkFBMkI7U0FDekM7UUFDRCxHQUFHLEVBQUU7WUFDSCxZQUFZLEVBQUUsNkJBQTZCO1NBQzVDO0tBQ0YsQ0FBQTtBQUNILENBQUM7QUFYRCw4REFXQztBQUVELE1BQU0sc0NBQXNDLEdBQUUsU0FBUywyQkFBMkIsMENBQTBDLENBQUE7QUFFNUgsU0FBUyx5Q0FBeUMsQ0FBQyxxQkFBOEI7SUFDL0UsT0FBTyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsRUFBQyxFQUFFLEVBQUUsUUFBUSxzQ0FBc0MsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQTtBQUN0RyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtKb2JTdGVwfSBmcm9tICdwcm9qZW4vbGliL2dpdGh1Yi93b3JrZmxvd3MtbW9kZWwnXG5cbmV4cG9ydCBmdW5jdGlvbiBjaGVja291dFN0ZXAoKTogSm9iU3RlcCB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0NoZWNrb3V0JyxcbiAgICB1c2VzOiAnYWN0aW9ucy9jaGVja291dEB2MicsXG4gICAgd2l0aDoge1xuICAgICAgcmVmOiAnJHt7IGdpdGh1Yi5zaGEgfX0nLFxuICAgIH0sXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldE5vZGVWZXJzaW9uU3RlcChub2RlVmVyc2lvbjogc3RyaW5nLCBjaGVja0FjdGl2ZURlcGxveW1lbnQ6IGJvb2xlYW4pOiBKb2JTdGVwIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5nZXRTa2lwSWZBbHJlYWR5QWN0aXZlRGVwbG95bWVudENvbmRpdGlvbihjaGVja0FjdGl2ZURlcGxveW1lbnQpLFxuICAgIG5hbWU6ICdTZXR1cCBOb2RlLmpzJyxcbiAgICB1c2VzOiAnYWN0aW9ucy9zZXR1cC1ub2RlQHYyLjIuMCcsXG4gICAgd2l0aDoge1xuICAgICAgJ25vZGUtdmVyc2lvbic6IG5vZGVWZXJzaW9uLFxuICAgIH0sXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbGxEZXBlbmRlbmNpZXNTdGVwKGNvbW1hbmQ6IHN0cmluZywgY2hlY2tBY3RpdmVEZXBsb3ltZW50OiBib29sZWFuKTogSm9iU3RlcCB7XG4gIHJldHVybiB7XG4gICAgLi4uZ2V0U2tpcElmQWxyZWFkeUFjdGl2ZURlcGxveW1lbnRDb25kaXRpb24oY2hlY2tBY3RpdmVEZXBsb3ltZW50KSxcbiAgICBuYW1lOiAnSW5zdGFsbCBkZXBlbmRlbmNpZXMnLFxuICAgIHJ1bjogY29tbWFuZCxcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVwbG95bWVudFN0ZXAoc3RhY2tQYXR0ZXJuOiBzdHJpbmcgfCB1bmRlZmluZWQsIGNoZWNrQWN0aXZlRGVwbG95bWVudDogYm9vbGVhbik6IEpvYlN0ZXAge1xuICBjb25zdCBkZXBsb3lBcmd1bWVudCA9IHN0YWNrUGF0dGVybiA/IGAgJHtzdGFja1BhdHRlcm59YDogJydcblxuICByZXR1cm4ge1xuICAgIC4uLmdldFNraXBJZkFscmVhZHlBY3RpdmVEZXBsb3ltZW50Q29uZGl0aW9uKGNoZWNrQWN0aXZlRGVwbG95bWVudCksXG4gICAgbmFtZTogJ0RlcGxveW1lbnQnLFxuICAgIHJ1bjogYG5weCBwcm9qZW4gZGVwbG95JHtkZXBsb3lBcmd1bWVudH1gLFxuICB9XG59XG5cbmZ1bmN0aW9uIHNldEF3c0NyZWRlbnRpYWxzSW5FbnZpcm9ubWVudChjaGVja0FjdGl2ZURlcGxveW1lbnQ6IGJvb2xlYW4pOiBKb2JTdGVwIHtcbiAgY29uc3QgY29tbWFuZHMgPSBbXG4gICAgJ2VjaG8gXCJBV1NfQUNDRVNTX0tFWV9JRD0kYWNjZXNzS2V5SWRcIiA+PiAkR0lUSFVCX0VOVicsXG4gICAgJ2VjaG8gXCJBV1NfU0VDUkVUX0FDQ0VTU19LRVk9JHNlY3JldEFjY2Vzc0tleVwiID4+ICRHSVRIVUJfRU5WJyxcbiAgICAnZWNobyBcIkFXU19SRUdJT049JHJlZ2lvblwiID4+ICRHSVRIVUJfRU5WJyxcbiAgXVxuXG4gIGNvbnN0IGNvbmRpdGlvbiA9XG4gICAgY2hlY2tBY3RpdmVEZXBsb3ltZW50ID9cbiAgICAgIGBcXCR7eyBtYXRyaXguYXNzdW1lUm9sZSA9PSAnZmFsc2UnICYmICR7c2tpcElmQWxyZWFkeUFjdGl2ZURlcGxveW1lbnRDb25kaXRpb259IH19YCA6XG4gICAgICAnJHt7IG1hdHJpeC5hc3N1bWVSb2xlID09IFxcJ2ZhbHNlXFwnIH19J1xuXG4gIHJldHVybiB7XG4gICAgaWY6IGNvbmRpdGlvbixcbiAgICBuYW1lOiAnQ29uZmlndXJlIEFXUyBDcmVkZW50aWFscycsXG4gICAgcnVuOiBgXFxuJHtjb21tYW5kcy5qb2luKCdcXG4nKX1gLFxuICAgIGVudjoge1xuICAgICAgYWNjZXNzS2V5SWQ6ICcke3sgbWF0cml4LmFjY2Vzc0tleUlkIH19JyxcbiAgICAgIHNlY3JldEFjY2Vzc0tleTogJyR7eyBtYXRyaXguc2VjcmV0QWNjZXNzS2V5IH19JyxcbiAgICAgIHJlZ2lvbjogJyR7eyBtYXRyaXgucmVnaW9uIH19JyxcbiAgICB9LFxuICB9XG59XG5cbmZ1bmN0aW9uIGFzc3VtZUF3c1JvbGVTdGVwKGNoZWNrQWN0aXZlRGVwbG95bWVudDogYm9vbGVhbik6IEpvYlN0ZXAge1xuICBjb25zdCBjb25kaXRpb24gPVxuICAgIGNoZWNrQWN0aXZlRGVwbG95bWVudCA/XG4gICAgICBgXFwke3sgbWF0cml4LmFzc3VtZVJvbGUgPT0gJ3RydWUnICYmICR7c2tpcElmQWxyZWFkeUFjdGl2ZURlcGxveW1lbnRDb25kaXRpb259IH19YCA6XG4gICAgICAnJHt7IG1hdHJpeC5hc3N1bWVSb2xlID09IFxcJ3RydWVcXCcgfX0nXG4gIHJldHVybiB7XG4gICAgaWY6IGNvbmRpdGlvbixcbiAgICBuYW1lOiAnQXNzdW1lIEFXUyBSb2xlJyxcbiAgICB1c2VzOiAnYXdzLWFjdGlvbnMvY29uZmlndXJlLWF3cy1jcmVkZW50aWFsc0B2MScsXG4gICAgd2l0aDoge1xuICAgICAgJ2F3cy1hY2Nlc3Mta2V5LWlkJzogJyR7eyBtYXRyaXguYWNjZXNzS2V5SWQgfX0nLFxuICAgICAgJ2F3cy1zZWNyZXQtYWNjZXNzLWtleSc6ICcke3sgbWF0cml4LnNlY3JldEFjY2Vzc0tleSB9fScsXG4gICAgICAncm9sZS10by1hc3N1bWUnOiAnJHt7IG1hdHJpeC5yb2xlVG9Bc3N1bWUgfX0nLFxuICAgICAgJ2F3cy1yZWdpb24nOiAnJHt7IG1hdHJpeC5yZWdpb24gfX0nLFxuICAgICAgJ3JvbGUtZHVyYXRpb24tc2Vjb25kcyc6ICcke3sgbWF0cml4LmFzc3VtZVJvbGVEdXJhdGlvblNlY29uZHMgfX0nLFxuICAgIH0sXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEF3c0NyZWRlbnRpYWxzU3RlcHMoY2hlY2tBY3RpdmVEZXBsb3ltZW50OiBib29sZWFuKTogSm9iU3RlcFtdIHtcbiAgcmV0dXJuIFtcbiAgICBzZXRBd3NDcmVkZW50aWFsc0luRW52aXJvbm1lbnQoY2hlY2tBY3RpdmVEZXBsb3ltZW50KSxcbiAgICBhc3N1bWVBd3NSb2xlU3RlcChjaGVja0FjdGl2ZURlcGxveW1lbnQpLFxuICBdXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXROcG1Db25maWcoY29uZmlnTmFtZTogc3RyaW5nLCBjb25maWdWYWx1ZTogc3RyaW5nLCBjaGVja0FjdGl2ZURlcGxveW1lbnQ6IGJvb2xlYW4pOiBKb2JTdGVwIHtcbiAgY29uc3QgZW52aXJvbm1lbnRWYXJpYWJsZU5hbWUgPSAnQ09ORklHX1ZBTFVFJ1xuICByZXR1cm4ge1xuICAgIC4uLmdldFNraXBJZkFscmVhZHlBY3RpdmVEZXBsb3ltZW50Q29uZGl0aW9uKGNoZWNrQWN0aXZlRGVwbG95bWVudCksXG4gICAgbmFtZTogJ1NldHRpbmcgTlBNIENvbmZpZycsXG4gICAgZW52OiB7XG4gICAgICBbZW52aXJvbm1lbnRWYXJpYWJsZU5hbWVdOiBjb25maWdWYWx1ZSxcbiAgICB9LFxuICAgIHJ1bjogYG5wbSBjb25maWcgc2V0ICR7Y29uZmlnTmFtZX0gJCR7ZW52aXJvbm1lbnRWYXJpYWJsZU5hbWV9YCxcbiAgfVxufVxuXG5jb25zdCBjaGVja0FjdGl2ZURlcGxveW1lbnRTdGVwSWQgPSAnZGVwbG95bWVudC1jaGVjaydcbmV4cG9ydCBmdW5jdGlvbiBjaGVja0FjdGl2ZURlcGxveW1lbnRTdGVwKCk6IEpvYlN0ZXAge1xuICByZXR1cm4ge1xuICAgIGlkOiBjaGVja0FjdGl2ZURlcGxveW1lbnRTdGVwSWQsXG4gICAgdXNlczogJ0FtaW5GYXpsTW9uZG8vY2hlY2stZGVwbG95ZWQtZW52aXJvbm1lbnRAdjEnLFxuICAgIHdpdGg6IHtcbiAgICAgIGVudmlyb25tZW50OiAnJHt7IG1hdHJpeC5lbnZpcm9ubWVudCB9fScsXG4gICAgfSxcbiAgICBlbnY6IHtcbiAgICAgIEdJVEhVQl9UT0tFTjogJyR7eyBzZWNyZXRzLkdJVEhVQl9UT0tFTiB9fScsXG4gICAgfSxcbiAgfVxufVxuXG5jb25zdCBza2lwSWZBbHJlYWR5QWN0aXZlRGVwbG95bWVudENvbmRpdGlvbj0gYHN0ZXBzLiR7Y2hlY2tBY3RpdmVEZXBsb3ltZW50U3RlcElkfS5vdXRwdXRzLmhhc19hY3RpdmVfZGVwbG95bWVudCA9PSAndHJ1ZSdgXG5cbmZ1bmN0aW9uIGdldFNraXBJZkFscmVhZHlBY3RpdmVEZXBsb3ltZW50Q29uZGl0aW9uKGNoZWNrQWN0aXZlRGVwbG95bWVudDogYm9vbGVhbik6IEpvYlN0ZXAgfCB1bmRlZmluZWQge1xuICByZXR1cm4gY2hlY2tBY3RpdmVEZXBsb3ltZW50ID8ge2lmOiBgXFwke3sgJHtza2lwSWZBbHJlYWR5QWN0aXZlRGVwbG95bWVudENvbmRpdGlvbn0gfX1gfSA6IHVuZGVmaW5lZFxufSJdfQ==
|
package/lib/types.d.ts
CHANGED
|
@@ -16,6 +16,13 @@ export interface DeployableAwsCdkTypeScriptAppOptions extends awscdk.AwsCdkTypeS
|
|
|
16
16
|
* @stability stable
|
|
17
17
|
*/
|
|
18
18
|
readonly generateNvmrc?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Whether to check and skip the deployment for environments that have active deployment of the same commit.
|
|
21
|
+
*
|
|
22
|
+
* @default false
|
|
23
|
+
* @stability stable
|
|
24
|
+
*/
|
|
25
|
+
readonly checkActiveDeployment?: boolean;
|
|
19
26
|
}
|
|
20
27
|
/**
|
|
21
28
|
* @stability stable
|
package/lib/types.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7YXdzY2RrfSBmcm9tICdwcm9qZW4nXG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVwbG95YWJsZUF3c0Nka1R5cGVTY3JpcHRBcHBPcHRpb25zIGV4dGVuZHMgYXdzY2RrLkF3c0Nka1R5cGVTY3JpcHRBcHBPcHRpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGRlcGxveU9wdGlvbnM6IERlcGxveU9wdGlvbnM7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBnZW5lcmF0ZU52bXJjPzogYm9vbGVhbjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGNoZWNrQWN0aXZlRGVwbG95bWVudD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVwbG95T3B0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBlbnZpcm9ubWVudHM6IEVudmlyb25tZW50T3B0aW9uc1tdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBzdGFja1BhdHRlcm4/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBucG1Db25maWdFbnZpcm9ubWVudD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnZpcm9ubWVudE9wdGlvbnMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBhd3NDcmVkZW50aWFsczogQVdTQ3JlZGVudGlhbHM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVdTQ3JlZGVudGlhbHMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBhY2Nlc3NLZXlJZFNlY3JldE5hbWU/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBzZWNyZXRBY2Nlc3NLZXlTZWNyZXROYW1lPzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHJvbGVUb0Fzc3VtZT86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGFzc3VtZVJvbGVEdXJhdGlvblNlY29uZHM/OiBudW1iZXI7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xufVxuIl19
|