deployable-awscdk-app-ts 0.0.1 → 0.0.2

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 CHANGED
@@ -67,7 +67,7 @@
67
67
  },
68
68
  "name": "deployable-awscdk-app-ts",
69
69
  "readme": {
70
- "markdown": "# Deployable Typescript AWS CDK App Projen Project\n\nInspired by [projen](https://github.com/projen/projen)\nThis is a projen project for typescript AWS CDK Applications deployed via github actions.\n\n## Getting started\n\nTo create a new project, run the following command and follow the instructions:\n\n```\nconsole\n$ mkdir my-project\n$ cd my-project\n$ git init\n$ npx projen new --from deployable-awscdk-app-ts\nšŸ¤– Synthesizing project...\n...\n```\n\nThis will initialize a projen project and will create `.projenrc.js` file for capturing the project details and options. Below is an example of the contents in this file\n\n### Example\n```javascript\nconst { DeployableAwsCdkTypeScriptApp } = require('deployable-awscdk-app-ts');\n\nconst project = new TypeScriptProject({\n name: 'my-test-app',\n defaultReleaseBranch: 'main',\n cdkVersion: '1.129.0',\n workflowNodeVersion: '14.18.1',\n deployOptions: {\n environments: ['dev', 'prod'],\n awsCredentials: {\n accessKeyIdSecretName: 'secret-1',\n secretAccessKeySecretName: 'secret-2',\n region: 'aws-region-1',\n },\n }\n});\n\nproject.synth()\n```\n"
70
+ "markdown": "# Deployable Typescript AWS CDK App Projen Project\n\nInspired by [projen](https://github.com/projen/projen)\nThis is a projen project for typescript AWS CDK Applications deployed via github actions.\n\n## Getting started\n\nTo create a new project, run the following command and follow the instructions:\n\n```\nconsole\n$ mkdir my-project\n$ cd my-project\n$ git init\n$ npx projen new --from deployable-awscdk-app-ts\nšŸ¤– Synthesizing project...\n...\n```\n\nThis will initialize a projen project and will create `.projenrc.js` file for capturing the project details and options. Below is an example of the contents in this file\n\n### Example\n```javascript\nconst { DeployableAwsCdkTypeScriptApp } = require('deployable-awscdk-app-ts');\n\nconst project = new TypeScriptProject({\n name: 'my-test-app',\n defaultReleaseBranch: 'main',\n cdkVersion: '1.129.0',\n workflowNodeVersion: '14.18.1',\n deployOptions: {\n environments: [\n {\n name: 'dev',\n awsCredentials: {\n accessKeyIdSecretName: 'dev-secret-1',\n secretAccessKeySecretName: 'dev-secret-2',\n region: 'dev-aws-region-1',\n },\n },\n {\n name: 'staging',\n awsCredentials: {\n accessKeyIdSecretName: 'staging-secret-1',\n secretAccessKeySecretName: 'staging-secret-2',\n region: 'staging-aws-region-1',\n },\n },\n ]\n }\n});\n\nproject.synth()\n```\n"
71
71
  },
72
72
  "repository": {
73
73
  "type": "git",
@@ -80,19 +80,19 @@
80
80
  }
81
81
  },
82
82
  "types": {
83
- "deployable-awscdk-app-ts.AWSCredentialsBase": {
83
+ "deployable-awscdk-app-ts.AWSCredentials": {
84
84
  "assembly": "deployable-awscdk-app-ts",
85
85
  "datatype": true,
86
86
  "docs": {
87
87
  "stability": "stable"
88
88
  },
89
- "fqn": "deployable-awscdk-app-ts.AWSCredentialsBase",
89
+ "fqn": "deployable-awscdk-app-ts.AWSCredentials",
90
90
  "kind": "interface",
91
91
  "locationInModule": {
92
92
  "filename": "src/types.ts",
93
- "line": 55
93
+ "line": 36
94
94
  },
95
- "name": "AWSCredentialsBase",
95
+ "name": "AWSCredentials",
96
96
  "properties": [
97
97
  {
98
98
  "abstract": true,
@@ -104,7 +104,7 @@
104
104
  "immutable": true,
105
105
  "locationInModule": {
106
106
  "filename": "src/types.ts",
107
- "line": 71
107
+ "line": 64
108
108
  },
109
109
  "name": "region",
110
110
  "type": {
@@ -114,70 +114,52 @@
114
114
  {
115
115
  "abstract": true,
116
116
  "docs": {
117
- "default": "300",
117
+ "default": "\"AWS_ACCESS_KEY_ID\"",
118
118
  "stability": "stable",
119
- "summary": "Duration of assume role session."
119
+ "summary": "GitHub Secret name for AWS Access Key Id."
120
120
  },
121
121
  "immutable": true,
122
122
  "locationInModule": {
123
123
  "filename": "src/types.ts",
124
- "line": 65
124
+ "line": 41
125
125
  },
126
- "name": "assumeRoleDurationSeconds",
126
+ "name": "accessKeyIdSecretName",
127
127
  "optional": true,
128
128
  "type": {
129
- "primitive": "number"
129
+ "primitive": "string"
130
130
  }
131
131
  },
132
132
  {
133
133
  "abstract": true,
134
134
  "docs": {
135
+ "default": "300",
135
136
  "stability": "stable",
136
- "summary": "ARN of AWS role to be assumed."
137
+ "summary": "Duration of assume role session."
137
138
  },
138
139
  "immutable": true,
139
140
  "locationInModule": {
140
141
  "filename": "src/types.ts",
141
- "line": 59
142
+ "line": 58
142
143
  },
143
- "name": "roleToAssume",
144
+ "name": "assumeRoleDurationSeconds",
144
145
  "optional": true,
145
146
  "type": {
146
- "primitive": "string"
147
+ "primitive": "number"
147
148
  }
148
- }
149
- ],
150
- "symbolId": "src/types:AWSCredentialsBase"
151
- },
152
- "deployable-awscdk-app-ts.AWSCredentialsGitHubSecrets": {
153
- "assembly": "deployable-awscdk-app-ts",
154
- "datatype": true,
155
- "docs": {
156
- "stability": "stable"
157
- },
158
- "fqn": "deployable-awscdk-app-ts.AWSCredentialsGitHubSecrets",
159
- "interfaces": [
160
- "deployable-awscdk-app-ts.AWSCredentialsBase"
161
- ],
162
- "kind": "interface",
163
- "locationInModule": {
164
- "filename": "src/types.ts",
165
- "line": 31
166
- },
167
- "name": "AWSCredentialsGitHubSecrets",
168
- "properties": [
149
+ },
169
150
  {
170
151
  "abstract": true,
171
152
  "docs": {
172
153
  "stability": "stable",
173
- "summary": "GitHub Secret name for AWS Access Key Id."
154
+ "summary": "ARN of AWS role to be assumed."
174
155
  },
175
156
  "immutable": true,
176
157
  "locationInModule": {
177
158
  "filename": "src/types.ts",
178
- "line": 35
159
+ "line": 52
179
160
  },
180
- "name": "accessKeyIdSecretName",
161
+ "name": "roleToAssume",
162
+ "optional": true,
181
163
  "type": {
182
164
  "primitive": "string"
183
165
  }
@@ -185,73 +167,23 @@
185
167
  {
186
168
  "abstract": true,
187
169
  "docs": {
170
+ "default": "\"AWS_SECRET_ACCESS_KEY\"",
188
171
  "stability": "stable",
189
172
  "summary": "GitHub Secret name for AWS Secret Access Key."
190
173
  },
191
174
  "immutable": true,
192
- "locationInModule": {
193
- "filename": "src/types.ts",
194
- "line": 40
195
- },
196
- "name": "secretAccessKeySecretName",
197
- "type": {
198
- "primitive": "string"
199
- }
200
- }
201
- ],
202
- "symbolId": "src/types:AWSCredentialsGitHubSecrets"
203
- },
204
- "deployable-awscdk-app-ts.AWSCredentialsValues": {
205
- "assembly": "deployable-awscdk-app-ts",
206
- "datatype": true,
207
- "docs": {
208
- "stability": "stable"
209
- },
210
- "fqn": "deployable-awscdk-app-ts.AWSCredentialsValues",
211
- "interfaces": [
212
- "deployable-awscdk-app-ts.AWSCredentialsBase"
213
- ],
214
- "kind": "interface",
215
- "locationInModule": {
216
- "filename": "src/types.ts",
217
- "line": 43
218
- },
219
- "name": "AWSCredentialsValues",
220
- "properties": [
221
- {
222
- "abstract": true,
223
- "docs": {
224
- "stability": "stable",
225
- "summary": "AWS Access Key Id."
226
- },
227
- "immutable": true,
228
175
  "locationInModule": {
229
176
  "filename": "src/types.ts",
230
177
  "line": 47
231
178
  },
232
- "name": "accessKeyId",
233
- "type": {
234
- "primitive": "string"
235
- }
236
- },
237
- {
238
- "abstract": true,
239
- "docs": {
240
- "stability": "stable",
241
- "summary": "AWS Secret Access Key."
242
- },
243
- "immutable": true,
244
- "locationInModule": {
245
- "filename": "src/types.ts",
246
- "line": 52
247
- },
248
- "name": "secretAccessKey",
179
+ "name": "secretAccessKeySecretName",
180
+ "optional": true,
249
181
  "type": {
250
182
  "primitive": "string"
251
183
  }
252
184
  }
253
185
  ],
254
- "symbolId": "src/types:AWSCredentialsValues"
186
+ "symbolId": "src/types:AWSCredentials"
255
187
  },
256
188
  "deployable-awscdk-app-ts.DeployOptions": {
257
189
  "assembly": "deployable-awscdk-app-ts",
@@ -271,32 +203,7 @@
271
203
  "abstract": true,
272
204
  "docs": {
273
205
  "stability": "stable",
274
- "summary": "AWS credential details for deployment."
275
- },
276
- "immutable": true,
277
- "locationInModule": {
278
- "filename": "src/types.ts",
279
- "line": 26
280
- },
281
- "name": "awsCredentials",
282
- "type": {
283
- "union": {
284
- "types": [
285
- {
286
- "fqn": "deployable-awscdk-app-ts.AWSCredentialsGitHubSecrets"
287
- },
288
- {
289
- "fqn": "deployable-awscdk-app-ts.AWSCredentialsValues"
290
- }
291
- ]
292
- }
293
- }
294
- },
295
- {
296
- "abstract": true,
297
- "docs": {
298
- "stability": "stable",
299
- "summary": "Environment names to deploy to."
206
+ "summary": "Environment settings to deploy to."
300
207
  },
301
208
  "immutable": true,
302
209
  "locationInModule": {
@@ -307,7 +214,7 @@
307
214
  "type": {
308
215
  "collection": {
309
216
  "elementtype": {
310
- "primitive": "string"
217
+ "fqn": "deployable-awscdk-app-ts.EnvironmentOptions"
311
218
  },
312
219
  "kind": "array"
313
220
  }
@@ -347,7 +254,7 @@
347
254
  },
348
255
  "locationInModule": {
349
256
  "filename": "src/index.ts",
350
- "line": 12
257
+ "line": 14
351
258
  },
352
259
  "parameters": [
353
260
  {
@@ -363,6 +270,21 @@
363
270
  "filename": "src/index.ts",
364
271
  "line": 8
365
272
  },
273
+ "methods": [
274
+ {
275
+ "docs": {
276
+ "remarks": "1. Call \"this.preSynthesize()\"\n2. Delete all generated files\n3. Synthesize all sub-projects\n4. Synthesize all components of this project\n5. Call \"postSynthesize()\" for all components of this project\n6. Call \"this.postSynthesize()\"",
277
+ "stability": "stable",
278
+ "summary": "(experimental) Synthesize all project files into `outdir`."
279
+ },
280
+ "locationInModule": {
281
+ "filename": "src/index.ts",
282
+ "line": 28
283
+ },
284
+ "name": "synth",
285
+ "overrides": "projen.Project"
286
+ }
287
+ ],
366
288
  "name": "DeployableAwsCdkTypeScriptApp",
367
289
  "symbolId": "src/index:DeployableAwsCdkTypeScriptApp"
368
290
  },
@@ -401,8 +323,57 @@
401
323
  }
402
324
  ],
403
325
  "symbolId": "src/types:DeployableAwsCdkTypeScriptAppOptions"
326
+ },
327
+ "deployable-awscdk-app-ts.EnvironmentOptions": {
328
+ "assembly": "deployable-awscdk-app-ts",
329
+ "datatype": true,
330
+ "docs": {
331
+ "stability": "stable"
332
+ },
333
+ "fqn": "deployable-awscdk-app-ts.EnvironmentOptions",
334
+ "kind": "interface",
335
+ "locationInModule": {
336
+ "filename": "src/types.ts",
337
+ "line": 24
338
+ },
339
+ "name": "EnvironmentOptions",
340
+ "properties": [
341
+ {
342
+ "abstract": true,
343
+ "docs": {
344
+ "stability": "stable",
345
+ "summary": "AWS credential details for deployment."
346
+ },
347
+ "immutable": true,
348
+ "locationInModule": {
349
+ "filename": "src/types.ts",
350
+ "line": 33
351
+ },
352
+ "name": "awsCredentials",
353
+ "type": {
354
+ "fqn": "deployable-awscdk-app-ts.AWSCredentials"
355
+ }
356
+ },
357
+ {
358
+ "abstract": true,
359
+ "docs": {
360
+ "stability": "stable",
361
+ "summary": "Environment name to deploy to."
362
+ },
363
+ "immutable": true,
364
+ "locationInModule": {
365
+ "filename": "src/types.ts",
366
+ "line": 28
367
+ },
368
+ "name": "name",
369
+ "type": {
370
+ "primitive": "string"
371
+ }
372
+ }
373
+ ],
374
+ "symbolId": "src/types:EnvironmentOptions"
404
375
  }
405
376
  },
406
- "version": "0.0.1",
407
- "fingerprint": "+TO8Vco2CMpIavkGQ6VrdWgKqzU7O+ardmdrk/JdZH4="
377
+ "version": "0.0.2",
378
+ "fingerprint": "IGfkz2nEJ7zKbHII+fLpoVOuuiXnunTiaQxkns2lSGg="
408
379
  }
package/API.md CHANGED
@@ -3,17 +3,17 @@
3
3
 
4
4
  ## Structs <a name="Structs"></a>
5
5
 
6
- ### AWSCredentialsBase <a name="deployable-awscdk-app-ts.AWSCredentialsBase"></a>
6
+ ### AWSCredentials <a name="deployable-awscdk-app-ts.AWSCredentials"></a>
7
7
 
8
8
  #### Initializer <a name="[object Object].Initializer"></a>
9
9
 
10
10
  ```typescript
11
- import { AWSCredentialsBase } from 'deployable-awscdk-app-ts'
11
+ import { AWSCredentials } from 'deployable-awscdk-app-ts'
12
12
 
13
- const aWSCredentialsBase: AWSCredentialsBase = { ... }
13
+ const aWSCredentials: AWSCredentials = { ... }
14
14
  ```
15
15
 
16
- ##### `region`<sup>Required</sup> <a name="deployable-awscdk-app-ts.AWSCredentialsBase.property.region"></a>
16
+ ##### `region`<sup>Required</sup> <a name="deployable-awscdk-app-ts.AWSCredentials.property.region"></a>
17
17
 
18
18
  ```typescript
19
19
  public readonly region: string;
@@ -25,125 +25,20 @@ Default AWS region for the account.
25
25
 
26
26
  ---
27
27
 
28
- ##### `assumeRoleDurationSeconds`<sup>Optional</sup> <a name="deployable-awscdk-app-ts.AWSCredentialsBase.property.assumeRoleDurationSeconds"></a>
29
-
30
- ```typescript
31
- public readonly assumeRoleDurationSeconds: number;
32
- ```
33
-
34
- - *Type:* `number`
35
- - *Default:* 300
36
-
37
- Duration of assume role session.
38
-
39
- ---
40
-
41
- ##### `roleToAssume`<sup>Optional</sup> <a name="deployable-awscdk-app-ts.AWSCredentialsBase.property.roleToAssume"></a>
42
-
43
- ```typescript
44
- public readonly roleToAssume: string;
45
- ```
46
-
47
- - *Type:* `string`
48
-
49
- ARN of AWS role to be assumed.
50
-
51
- ---
52
-
53
- ### AWSCredentialsGitHubSecrets <a name="deployable-awscdk-app-ts.AWSCredentialsGitHubSecrets"></a>
54
-
55
- #### Initializer <a name="[object Object].Initializer"></a>
56
-
57
- ```typescript
58
- import { AWSCredentialsGitHubSecrets } from 'deployable-awscdk-app-ts'
59
-
60
- const aWSCredentialsGitHubSecrets: AWSCredentialsGitHubSecrets = { ... }
61
- ```
62
-
63
- ##### `region`<sup>Required</sup> <a name="deployable-awscdk-app-ts.AWSCredentialsGitHubSecrets.property.region"></a>
64
-
65
- ```typescript
66
- public readonly region: string;
67
- ```
68
-
69
- - *Type:* `string`
70
-
71
- Default AWS region for the account.
72
-
73
- ---
74
-
75
- ##### `assumeRoleDurationSeconds`<sup>Optional</sup> <a name="deployable-awscdk-app-ts.AWSCredentialsGitHubSecrets.property.assumeRoleDurationSeconds"></a>
76
-
77
- ```typescript
78
- public readonly assumeRoleDurationSeconds: number;
79
- ```
80
-
81
- - *Type:* `number`
82
- - *Default:* 300
83
-
84
- Duration of assume role session.
85
-
86
- ---
87
-
88
- ##### `roleToAssume`<sup>Optional</sup> <a name="deployable-awscdk-app-ts.AWSCredentialsGitHubSecrets.property.roleToAssume"></a>
89
-
90
- ```typescript
91
- public readonly roleToAssume: string;
92
- ```
93
-
94
- - *Type:* `string`
95
-
96
- ARN of AWS role to be assumed.
97
-
98
- ---
99
-
100
- ##### `accessKeyIdSecretName`<sup>Required</sup> <a name="deployable-awscdk-app-ts.AWSCredentialsGitHubSecrets.property.accessKeyIdSecretName"></a>
28
+ ##### `accessKeyIdSecretName`<sup>Optional</sup> <a name="deployable-awscdk-app-ts.AWSCredentials.property.accessKeyIdSecretName"></a>
101
29
 
102
30
  ```typescript
103
31
  public readonly accessKeyIdSecretName: string;
104
32
  ```
105
33
 
106
34
  - *Type:* `string`
35
+ - *Default:* "AWS_ACCESS_KEY_ID"
107
36
 
108
37
  GitHub Secret name for AWS Access Key Id.
109
38
 
110
39
  ---
111
40
 
112
- ##### `secretAccessKeySecretName`<sup>Required</sup> <a name="deployable-awscdk-app-ts.AWSCredentialsGitHubSecrets.property.secretAccessKeySecretName"></a>
113
-
114
- ```typescript
115
- public readonly secretAccessKeySecretName: string;
116
- ```
117
-
118
- - *Type:* `string`
119
-
120
- GitHub Secret name for AWS Secret Access Key.
121
-
122
- ---
123
-
124
- ### AWSCredentialsValues <a name="deployable-awscdk-app-ts.AWSCredentialsValues"></a>
125
-
126
- #### Initializer <a name="[object Object].Initializer"></a>
127
-
128
- ```typescript
129
- import { AWSCredentialsValues } from 'deployable-awscdk-app-ts'
130
-
131
- const aWSCredentialsValues: AWSCredentialsValues = { ... }
132
- ```
133
-
134
- ##### `region`<sup>Required</sup> <a name="deployable-awscdk-app-ts.AWSCredentialsValues.property.region"></a>
135
-
136
- ```typescript
137
- public readonly region: string;
138
- ```
139
-
140
- - *Type:* `string`
141
-
142
- Default AWS region for the account.
143
-
144
- ---
145
-
146
- ##### `assumeRoleDurationSeconds`<sup>Optional</sup> <a name="deployable-awscdk-app-ts.AWSCredentialsValues.property.assumeRoleDurationSeconds"></a>
41
+ ##### `assumeRoleDurationSeconds`<sup>Optional</sup> <a name="deployable-awscdk-app-ts.AWSCredentials.property.assumeRoleDurationSeconds"></a>
147
42
 
148
43
  ```typescript
149
44
  public readonly assumeRoleDurationSeconds: number;
@@ -156,7 +51,7 @@ Duration of assume role session.
156
51
 
157
52
  ---
158
53
 
159
- ##### `roleToAssume`<sup>Optional</sup> <a name="deployable-awscdk-app-ts.AWSCredentialsValues.property.roleToAssume"></a>
54
+ ##### `roleToAssume`<sup>Optional</sup> <a name="deployable-awscdk-app-ts.AWSCredentials.property.roleToAssume"></a>
160
55
 
161
56
  ```typescript
162
57
  public readonly roleToAssume: string;
@@ -168,27 +63,16 @@ ARN of AWS role to be assumed.
168
63
 
169
64
  ---
170
65
 
171
- ##### `accessKeyId`<sup>Required</sup> <a name="deployable-awscdk-app-ts.AWSCredentialsValues.property.accessKeyId"></a>
66
+ ##### `secretAccessKeySecretName`<sup>Optional</sup> <a name="deployable-awscdk-app-ts.AWSCredentials.property.secretAccessKeySecretName"></a>
172
67
 
173
68
  ```typescript
174
- public readonly accessKeyId: string;
175
- ```
176
-
177
- - *Type:* `string`
178
-
179
- AWS Access Key Id.
180
-
181
- ---
182
-
183
- ##### `secretAccessKey`<sup>Required</sup> <a name="deployable-awscdk-app-ts.AWSCredentialsValues.property.secretAccessKey"></a>
184
-
185
- ```typescript
186
- public readonly secretAccessKey: string;
69
+ public readonly secretAccessKeySecretName: string;
187
70
  ```
188
71
 
189
72
  - *Type:* `string`
73
+ - *Default:* "AWS_SECRET_ACCESS_KEY"
190
74
 
191
- AWS Secret Access Key.
75
+ GitHub Secret name for AWS Secret Access Key.
192
76
 
193
77
  ---
194
78
 
@@ -1996,41 +1880,63 @@ import { DeployOptions } from 'deployable-awscdk-app-ts'
1996
1880
  const deployOptions: DeployOptions = { ... }
1997
1881
  ```
1998
1882
 
1999
- ##### `awsCredentials`<sup>Required</sup> <a name="deployable-awscdk-app-ts.DeployOptions.property.awsCredentials"></a>
1883
+ ##### `environments`<sup>Required</sup> <a name="deployable-awscdk-app-ts.DeployOptions.property.environments"></a>
1884
+
1885
+ ```typescript
1886
+ public readonly environments: EnvironmentOptions[];
1887
+ ```
1888
+
1889
+ - *Type:* [`deployable-awscdk-app-ts.EnvironmentOptions`](#deployable-awscdk-app-ts.EnvironmentOptions)[]
1890
+
1891
+ Environment settings to deploy to.
1892
+
1893
+ ---
1894
+
1895
+ ##### `stackPattern`<sup>Optional</sup> <a name="deployable-awscdk-app-ts.DeployOptions.property.stackPattern"></a>
2000
1896
 
2001
1897
  ```typescript
2002
- public readonly awsCredentials: AWSCredentialsGitHubSecrets | AWSCredentialsValues;
1898
+ public readonly stackPattern: string;
2003
1899
  ```
2004
1900
 
2005
- - *Type:* [`deployable-awscdk-app-ts.AWSCredentialsGitHubSecrets`](#deployable-awscdk-app-ts.AWSCredentialsGitHubSecrets) | [`deployable-awscdk-app-ts.AWSCredentialsValues`](#deployable-awscdk-app-ts.AWSCredentialsValues)
1901
+ - *Type:* `string`
2006
1902
 
2007
- AWS credential details for deployment.
1903
+ Regex for stacks to be deployed.
1904
+
1905
+ if not provided matches all of the stacks in the CDK App.
2008
1906
 
2009
1907
  ---
2010
1908
 
2011
- ##### `environments`<sup>Required</sup> <a name="deployable-awscdk-app-ts.DeployOptions.property.environments"></a>
1909
+ ### EnvironmentOptions <a name="deployable-awscdk-app-ts.EnvironmentOptions"></a>
1910
+
1911
+ #### Initializer <a name="[object Object].Initializer"></a>
2012
1912
 
2013
1913
  ```typescript
2014
- public readonly environments: string[];
1914
+ import { EnvironmentOptions } from 'deployable-awscdk-app-ts'
1915
+
1916
+ const environmentOptions: EnvironmentOptions = { ... }
2015
1917
  ```
2016
1918
 
2017
- - *Type:* `string`[]
1919
+ ##### `awsCredentials`<sup>Required</sup> <a name="deployable-awscdk-app-ts.EnvironmentOptions.property.awsCredentials"></a>
1920
+
1921
+ ```typescript
1922
+ public readonly awsCredentials: AWSCredentials;
1923
+ ```
2018
1924
 
2019
- Environment names to deploy to.
1925
+ - *Type:* [`deployable-awscdk-app-ts.AWSCredentials`](#deployable-awscdk-app-ts.AWSCredentials)
1926
+
1927
+ AWS credential details for deployment.
2020
1928
 
2021
1929
  ---
2022
1930
 
2023
- ##### `stackPattern`<sup>Optional</sup> <a name="deployable-awscdk-app-ts.DeployOptions.property.stackPattern"></a>
1931
+ ##### `name`<sup>Required</sup> <a name="deployable-awscdk-app-ts.EnvironmentOptions.property.name"></a>
2024
1932
 
2025
1933
  ```typescript
2026
- public readonly stackPattern: string;
1934
+ public readonly name: string;
2027
1935
  ```
2028
1936
 
2029
1937
  - *Type:* `string`
2030
1938
 
2031
- Regex for stacks to be deployed.
2032
-
2033
- if not provided matches all of the stacks in the CDK App.
1939
+ Environment name to deploy to.
2034
1940
 
2035
1941
  ---
2036
1942
 
@@ -2052,6 +1958,13 @@ new DeployableAwsCdkTypeScriptApp(options: DeployableAwsCdkTypeScriptAppOptions)
2052
1958
 
2053
1959
  ---
2054
1960
 
1961
+ #### Methods <a name="Methods"></a>
1962
+
1963
+ ##### `synth` <a name="deployable-awscdk-app-ts.DeployableAwsCdkTypeScriptApp.synth"></a>
1964
+
1965
+ ```typescript
1966
+ public synth()
1967
+ ```
2055
1968
 
2056
1969
 
2057
1970
 
package/README.md CHANGED
@@ -29,12 +29,24 @@ const project = new TypeScriptProject({
29
29
  cdkVersion: '1.129.0',
30
30
  workflowNodeVersion: '14.18.1',
31
31
  deployOptions: {
32
- environments: ['dev', 'prod'],
33
- awsCredentials: {
34
- accessKeyIdSecretName: 'secret-1',
35
- secretAccessKeySecretName: 'secret-2',
36
- region: 'aws-region-1',
37
- },
32
+ environments: [
33
+ {
34
+ name: 'dev',
35
+ awsCredentials: {
36
+ accessKeyIdSecretName: 'dev-secret-1',
37
+ secretAccessKeySecretName: 'dev-secret-2',
38
+ region: 'dev-aws-region-1',
39
+ },
40
+ },
41
+ {
42
+ name: 'staging',
43
+ awsCredentials: {
44
+ accessKeyIdSecretName: 'staging-secret-1',
45
+ secretAccessKeySecretName: 'staging-secret-2',
46
+ region: 'staging-aws-region-1',
47
+ },
48
+ },
49
+ ]
38
50
  }
39
51
  });
40
52
 
package/lib/index.d.ts CHANGED
@@ -5,10 +5,25 @@ export * from './types';
5
5
  * @stability stable
6
6
  */
7
7
  export declare class DeployableAwsCdkTypeScriptApp extends AwsCdkTypeScriptApp {
8
+ private readonly deployable;
9
+ private readonly workflowNodeVersion?;
8
10
  private readonly deployOptions;
9
11
  /**
10
12
  * @stability stable
11
13
  */
12
14
  constructor(options: DeployableAwsCdkTypeScriptAppOptions);
15
+ /**
16
+ * (experimental) Synthesize all project files into `outdir`.
17
+ *
18
+ * 1. Call "this.preSynthesize()"
19
+ * 2. Delete all generated files
20
+ * 3. Synthesize all sub-projects
21
+ * 4. Synthesize all components of this project
22
+ * 5. Call "postSynthesize()" for all components of this project
23
+ * 6. Call "this.postSynthesize()"
24
+ *
25
+ * @stability stable
26
+ */
27
+ synth(): void;
13
28
  private addDeployJobs;
14
29
  }
package/lib/index.js CHANGED
@@ -26,18 +26,53 @@ class DeployableAwsCdkTypeScriptApp extends projen_1.AwsCdkTypeScriptApp {
26
26
  */
27
27
  constructor(options) {
28
28
  var _b;
29
- const release = (_b = options.release) !== null && _b !== void 0 ? _b : true;
29
+ const deployable = (_b = options.release) !== null && _b !== void 0 ? _b : true;
30
30
  super({
31
31
  ...options,
32
- release,
32
+ release: deployable,
33
33
  });
34
+ this.deployable = deployable;
35
+ this.workflowNodeVersion = options.workflowNodeVersion;
34
36
  this.deployOptions = options.deployOptions;
35
- if (release)
36
- this.addDeployJobs(options.workflowNodeVersion);
37
+ if (!deployable)
38
+ console.warn('The project is explicitly set to not release, make sure this is desired setting');
39
+ }
40
+ /**
41
+ * (experimental) Synthesize all project files into `outdir`.
42
+ *
43
+ * 1. Call "this.preSynthesize()"
44
+ * 2. Delete all generated files
45
+ * 3. Synthesize all sub-projects
46
+ * 4. Synthesize all components of this project
47
+ * 5. Call "postSynthesize()" for all components of this project
48
+ * 6. Call "this.postSynthesize()"
49
+ *
50
+ * @stability stable
51
+ */
52
+ synth() {
53
+ if (this.deployable)
54
+ this.addDeployJobs(this.workflowNodeVersion);
55
+ super.synth();
37
56
  }
38
57
  addDeployJobs(workflowNodeVersion) {
39
58
  var _b;
40
- const include = this.deployOptions.environments.map((environment) => ({ environment }));
59
+ const include = this.deployOptions.environments.map(environmentOptions => {
60
+ var _b, _c;
61
+ const { awsCredentials } = environmentOptions;
62
+ const assumeRole = awsCredentials.roleToAssume ? 'true' : 'false';
63
+ const assumeRoleSettings = awsCredentials.roleToAssume ? {
64
+ roleToAssume: awsCredentials.roleToAssume,
65
+ assumeRoleDurationSeconds: (awsCredentials.assumeRoleDurationSeconds || 300).toString(),
66
+ } : undefined;
67
+ return {
68
+ environment: environmentOptions.name,
69
+ accessKeyId: (_b = awsCredentials.accessKeyIdSecretName) !== null && _b !== void 0 ? _b : 'AWS_ACCESS_KEY_ID',
70
+ secretAccessKey: (_c = awsCredentials.secretAccessKeySecretName) !== null && _c !== void 0 ? _c : 'AWS_SECRET_ACCESS_KEY',
71
+ region: awsCredentials.region,
72
+ assumeRole,
73
+ ...assumeRoleSettings,
74
+ };
75
+ });
41
76
  const jobDefinition = {
42
77
  runsOn: 'ubuntu-latest',
43
78
  concurrency: 'deploy',
@@ -62,12 +97,12 @@ class DeployableAwsCdkTypeScriptApp extends projen_1.AwsCdkTypeScriptApp {
62
97
  if (workflowNodeVersion)
63
98
  jobDefinition.steps.push(steps.setNodeVersionStep(workflowNodeVersion));
64
99
  jobDefinition.steps.push(steps.installDependenciesStep());
65
- jobDefinition.steps.push(steps.setAwsCredentials(this.deployOptions.awsCredentials));
100
+ jobDefinition.steps.push(...steps.setAwsCredentialsSteps());
66
101
  jobDefinition.steps.push(steps.deploymentStep(this.deployOptions.stackPattern));
67
102
  (_b = this.release) === null || _b === void 0 ? void 0 : _b.addJobs({ deploy: jobDefinition });
68
103
  }
69
104
  }
70
105
  exports.DeployableAwsCdkTypeScriptApp = DeployableAwsCdkTypeScriptApp;
71
106
  _a = JSII_RTTI_SYMBOL_1;
72
- DeployableAwsCdkTypeScriptApp[_a] = { fqn: "deployable-awscdk-app-ts.DeployableAwsCdkTypeScriptApp", version: "0.0.1" };
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbUNBQTBDO0FBQzFDLHVFQUFvRTtBQUNwRSxpQ0FBZ0M7QUFHaEMsMENBQXVCOzs7O0FBRXZCLE1BQWEsNkJBQThCLFNBQVEsNEJBQW1COzs7O0lBSXBFLFlBQVksT0FBNkM7O1FBQ3ZELE1BQU0sT0FBTyxTQUFHLE9BQU8sQ0FBQyxPQUFPLG1DQUFJLElBQUksQ0FBQTtRQUN2QyxLQUFLLENBQUM7WUFDSixHQUFHLE9BQU87WUFDVixPQUFPO1NBQ1IsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFBO1FBRTFDLElBQUksT0FBTztZQUNULElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUE7SUFDbkQsQ0FBQztJQUVPLGFBQWEsQ0FBQyxtQkFBNEI7O1FBRWhELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFDLFdBQVcsRUFBQyxDQUFDLENBQUMsQ0FBQTtRQUVyRixNQUFNLGFBQWEsR0FBUTtZQUN6QixNQUFNLEVBQUUsZUFBZTtZQUN2QixXQUFXLEVBQUUsUUFBUTtZQUNyQixLQUFLLEVBQUU7Z0JBQ0wsZ0JBQWdCO2FBQ2pCO1lBQ0QsV0FBVyxFQUFFO2dCQUNYLFFBQVEsRUFBRSwrQkFBYSxDQUFDLElBQUk7YUFDN0I7WUFDRCxRQUFRLEVBQUU7Z0JBQ1IsV0FBVyxFQUFFLENBQUM7Z0JBQ2QsTUFBTSxFQUFFO29CQUNOLE9BQU87aUJBQ1I7YUFDRjtZQUNELFdBQVcsRUFBRTtnQkFDWCxJQUFJLEVBQUUsMkJBQTJCO2FBQ2xDO1lBQ0QsS0FBSyxFQUFFLEVBQUU7U0FDVixDQUFBO1FBRUQsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUE7UUFFOUMsSUFBSSxtQkFBbUI7WUFDckIsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQTtRQUV6RSxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxDQUFBO1FBQ3pELGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUE7UUFDcEYsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUE7UUFFL0UsTUFBQSxJQUFJLENBQUMsT0FBTywwQ0FBRSxPQUFPLENBQUMsRUFBQyxNQUFNLEVBQUUsYUFBYSxFQUFDLEVBQUM7SUFDaEQsQ0FBQzs7QUFuREgsc0VBb0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBd3NDZGtUeXBlU2NyaXB0QXBwfSBmcm9tICdwcm9qZW4nXG5pbXBvcnQge0pvYiwgSm9iUGVybWlzc2lvbn0gZnJvbSAncHJvamVuL2xpYi9naXRodWIvd29ya2Zsb3dzLW1vZGVsJ1xuaW1wb3J0ICogYXMgc3RlcHMgZnJvbSAnLi9zdGVwcydcbmltcG9ydCB7RGVwbG95YWJsZUF3c0Nka1R5cGVTY3JpcHRBcHBPcHRpb25zLCBEZXBsb3lPcHRpb25zfSBmcm9tICcuL3R5cGVzJ1xuXG5leHBvcnQgKiBmcm9tICcuL3R5cGVzJ1xuXG5leHBvcnQgY2xhc3MgRGVwbG95YWJsZUF3c0Nka1R5cGVTY3JpcHRBcHAgZXh0ZW5kcyBBd3NDZGtUeXBlU2NyaXB0QXBwIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRlcGxveU9wdGlvbnM6IERlcGxveU9wdGlvbnNcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBEZXBsb3lhYmxlQXdzQ2RrVHlwZVNjcmlwdEFwcE9wdGlvbnMpIHtcbiAgICBjb25zdCByZWxlYXNlID0gb3B0aW9ucy5yZWxlYXNlID8/IHRydWVcbiAgICBzdXBlcih7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgcmVsZWFzZSxcbiAgICB9KVxuICAgIHRoaXMuZGVwbG95T3B0aW9ucyA9IG9wdGlvbnMuZGVwbG95T3B0aW9uc1xuXG4gICAgaWYgKHJlbGVhc2UpXG4gICAgICB0aGlzLmFkZERlcGxveUpvYnMob3B0aW9ucy53b3JrZmxvd05vZGVWZXJzaW9uKVxuICB9XG5cbiAgcHJpdmF0ZSBhZGREZXBsb3lKb2JzKHdvcmtmbG93Tm9kZVZlcnNpb24/OiBzdHJpbmcpIHtcblxuICAgIGNvbnN0IGluY2x1ZGUgPSB0aGlzLmRlcGxveU9wdGlvbnMuZW52aXJvbm1lbnRzLm1hcCgoZW52aXJvbm1lbnQpID0+ICh7ZW52aXJvbm1lbnR9KSlcblxuICAgIGNvbnN0IGpvYkRlZmluaXRpb246IEpvYiA9IHtcbiAgICAgIHJ1bnNPbjogJ3VidW50dS1sYXRlc3QnLFxuICAgICAgY29uY3VycmVuY3k6ICdkZXBsb3knLFxuICAgICAgbmVlZHM6IFtcbiAgICAgICAgJ3JlbGVhc2VfZ2l0aHViJyxcbiAgICAgIF0sXG4gICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICBjb250ZW50czogSm9iUGVybWlzc2lvbi5SRUFELFxuICAgICAgfSxcbiAgICAgIHN0cmF0ZWd5OiB7XG4gICAgICAgIG1heFBhcmFsbGVsOiAxLFxuICAgICAgICBtYXRyaXg6IHtcbiAgICAgICAgICBpbmNsdWRlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIG5hbWU6ICcke3sgbWF0cml4LmVudmlyb25tZW50IH19JyxcbiAgICAgIH0sXG4gICAgICBzdGVwczogW10sXG4gICAgfVxuXG4gICAgam9iRGVmaW5pdGlvbi5zdGVwcy5wdXNoKHN0ZXBzLmNoZWNrb3V0U3RlcCgpKVxuXG4gICAgaWYgKHdvcmtmbG93Tm9kZVZlcnNpb24pXG4gICAgICBqb2JEZWZpbml0aW9uLnN0ZXBzLnB1c2goc3RlcHMuc2V0Tm9kZVZlcnNpb25TdGVwKHdvcmtmbG93Tm9kZVZlcnNpb24pKVxuXG4gICAgam9iRGVmaW5pdGlvbi5zdGVwcy5wdXNoKHN0ZXBzLmluc3RhbGxEZXBlbmRlbmNpZXNTdGVwKCkpXG4gICAgam9iRGVmaW5pdGlvbi5zdGVwcy5wdXNoKHN0ZXBzLnNldEF3c0NyZWRlbnRpYWxzKHRoaXMuZGVwbG95T3B0aW9ucy5hd3NDcmVkZW50aWFscykpXG4gICAgam9iRGVmaW5pdGlvbi5zdGVwcy5wdXNoKHN0ZXBzLmRlcGxveW1lbnRTdGVwKHRoaXMuZGVwbG95T3B0aW9ucy5zdGFja1BhdHRlcm4pKVxuXG4gICAgdGhpcy5yZWxlYXNlPy5hZGRKb2JzKHtkZXBsb3k6IGpvYkRlZmluaXRpb259KVxuICB9XG59Il19
107
+ DeployableAwsCdkTypeScriptApp[_a] = { fqn: "deployable-awscdk-app-ts.DeployableAwsCdkTypeScriptApp", version: "0.0.2" };
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbUNBQTBDO0FBQzFDLHVFQUFvRTtBQUNwRSxpQ0FBZ0M7QUFHaEMsMENBQXVCOzs7O0FBRXZCLE1BQWEsNkJBQThCLFNBQVEsNEJBQW1COzs7O0lBTXBFLFlBQVksT0FBNkM7O1FBQ3ZELE1BQU0sVUFBVSxTQUFHLE9BQU8sQ0FBQyxPQUFPLG1DQUFJLElBQUksQ0FBQTtRQUMxQyxLQUFLLENBQUM7WUFDSixHQUFHLE9BQU87WUFDVixPQUFPLEVBQUUsVUFBVTtTQUNwQixDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQTtRQUM1QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixDQUFBO1FBQ3RELElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQTtRQUUxQyxJQUFJLENBQUMsVUFBVTtZQUNiLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUZBQWlGLENBQUMsQ0FBQTtJQUNuRyxDQUFDOzs7Ozs7Ozs7Ozs7O0lBRUQsS0FBSztRQUNILElBQUksSUFBSSxDQUFDLFVBQVU7WUFDakIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtRQUU5QyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDZixDQUFDO0lBRU8sYUFBYSxDQUFDLG1CQUE0Qjs7UUFFaEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLEVBQUU7O1lBQ3ZFLE1BQU0sRUFBQyxjQUFjLEVBQUMsR0FBRyxrQkFBa0IsQ0FBQTtZQUUzQyxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQTtZQUVqRSxNQUFNLGtCQUFrQixHQUFHLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO2dCQUN2RCxZQUFZLEVBQUUsY0FBYyxDQUFDLFlBQVk7Z0JBQ3pDLHlCQUF5QixFQUFFLENBQUMsY0FBYyxDQUFDLHlCQUF5QixJQUFJLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRTthQUN4RixDQUFBLENBQUMsQ0FBQyxTQUFTLENBQUE7WUFFWixPQUFPO2dCQUNMLFdBQVcsRUFBRSxrQkFBa0IsQ0FBQyxJQUFJO2dCQUNwQyxXQUFXLFFBQUUsY0FBYyxDQUFDLHFCQUFxQixtQ0FBSSxtQkFBbUI7Z0JBQ3hFLGVBQWUsUUFBRSxjQUFjLENBQUMseUJBQXlCLG1DQUFJLHVCQUF1QjtnQkFDcEYsTUFBTSxFQUFFLGNBQWMsQ0FBQyxNQUFNO2dCQUM3QixVQUFVO2dCQUNWLEdBQUcsa0JBQWtCO2FBQ3RCLENBQUE7UUFDSCxDQUFDLENBQUMsQ0FBQTtRQUVGLE1BQU0sYUFBYSxHQUFRO1lBQ3pCLE1BQU0sRUFBRSxlQUFlO1lBQ3ZCLFdBQVcsRUFBRSxRQUFRO1lBQ3JCLEtBQUssRUFBRTtnQkFDTCxnQkFBZ0I7YUFDakI7WUFDRCxXQUFXLEVBQUU7Z0JBQ1gsUUFBUSxFQUFFLCtCQUFhLENBQUMsSUFBSTthQUM3QjtZQUNELFFBQVEsRUFBRTtnQkFDUixXQUFXLEVBQUUsQ0FBQztnQkFDZCxNQUFNLEVBQUU7b0JBQ04sT0FBTztpQkFDUjthQUNGO1lBQ0QsV0FBVyxFQUFFO2dCQUNYLElBQUksRUFBRSwyQkFBMkI7YUFDbEM7WUFDRCxLQUFLLEVBQUUsRUFBRTtTQUNWLENBQUE7UUFFRCxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQTtRQUU5QyxJQUFJLG1CQUFtQjtZQUNyQixhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFBO1FBRXpFLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLENBQUE7UUFDekQsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFBO1FBQzNELGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFBO1FBRS9FLE1BQUEsSUFBSSxDQUFDLE9BQU8sMENBQUUsT0FBTyxDQUFDLEVBQUMsTUFBTSxFQUFFLGFBQWEsRUFBQyxFQUFDO0lBQ2hELENBQUM7O0FBaEZILHNFQWlGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXdzQ2RrVHlwZVNjcmlwdEFwcH0gZnJvbSAncHJvamVuJ1xuaW1wb3J0IHtKb2IsIEpvYlBlcm1pc3Npb259IGZyb20gJ3Byb2plbi9saWIvZ2l0aHViL3dvcmtmbG93cy1tb2RlbCdcbmltcG9ydCAqIGFzIHN0ZXBzIGZyb20gJy4vc3RlcHMnXG5pbXBvcnQge0RlcGxveWFibGVBd3NDZGtUeXBlU2NyaXB0QXBwT3B0aW9ucywgRGVwbG95T3B0aW9uc30gZnJvbSAnLi90eXBlcydcblxuZXhwb3J0ICogZnJvbSAnLi90eXBlcydcblxuZXhwb3J0IGNsYXNzIERlcGxveWFibGVBd3NDZGtUeXBlU2NyaXB0QXBwIGV4dGVuZHMgQXdzQ2RrVHlwZVNjcmlwdEFwcCB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkZXBsb3lhYmxlOiBib29sZWFuXG4gIHByaXZhdGUgcmVhZG9ubHkgd29ya2Zsb3dOb2RlVmVyc2lvbj86IHN0cmluZ1xuICBwcml2YXRlIHJlYWRvbmx5IGRlcGxveU9wdGlvbnM6IERlcGxveU9wdGlvbnNcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBEZXBsb3lhYmxlQXdzQ2RrVHlwZVNjcmlwdEFwcE9wdGlvbnMpIHtcbiAgICBjb25zdCBkZXBsb3lhYmxlID0gb3B0aW9ucy5yZWxlYXNlID8/IHRydWVcbiAgICBzdXBlcih7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgcmVsZWFzZTogZGVwbG95YWJsZSxcbiAgICB9KVxuICAgIHRoaXMuZGVwbG95YWJsZSA9IGRlcGxveWFibGVcbiAgICB0aGlzLndvcmtmbG93Tm9kZVZlcnNpb24gPSBvcHRpb25zLndvcmtmbG93Tm9kZVZlcnNpb25cbiAgICB0aGlzLmRlcGxveU9wdGlvbnMgPSBvcHRpb25zLmRlcGxveU9wdGlvbnNcblxuICAgIGlmICghZGVwbG95YWJsZSlcbiAgICAgIGNvbnNvbGUud2FybignVGhlIHByb2plY3QgaXMgZXhwbGljaXRseSBzZXQgdG8gbm90IHJlbGVhc2UsIG1ha2Ugc3VyZSB0aGlzIGlzIGRlc2lyZWQgc2V0dGluZycpXG4gIH1cblxuICBzeW50aCgpIHtcbiAgICBpZiAodGhpcy5kZXBsb3lhYmxlKVxuICAgICAgdGhpcy5hZGREZXBsb3lKb2JzKHRoaXMud29ya2Zsb3dOb2RlVmVyc2lvbilcblxuICAgIHN1cGVyLnN5bnRoKClcbiAgfVxuXG4gIHByaXZhdGUgYWRkRGVwbG95Sm9icyh3b3JrZmxvd05vZGVWZXJzaW9uPzogc3RyaW5nKSB7XG5cbiAgICBjb25zdCBpbmNsdWRlID0gdGhpcy5kZXBsb3lPcHRpb25zLmVudmlyb25tZW50cy5tYXAoZW52aXJvbm1lbnRPcHRpb25zID0+IHtcbiAgICAgIGNvbnN0IHthd3NDcmVkZW50aWFsc30gPSBlbnZpcm9ubWVudE9wdGlvbnNcblxuICAgICAgY29uc3QgYXNzdW1lUm9sZSA9IGF3c0NyZWRlbnRpYWxzLnJvbGVUb0Fzc3VtZSA/ICd0cnVlJyA6ICdmYWxzZSdcblxuICAgICAgY29uc3QgYXNzdW1lUm9sZVNldHRpbmdzID0gYXdzQ3JlZGVudGlhbHMucm9sZVRvQXNzdW1lID8ge1xuICAgICAgICByb2xlVG9Bc3N1bWU6IGF3c0NyZWRlbnRpYWxzLnJvbGVUb0Fzc3VtZSxcbiAgICAgICAgYXNzdW1lUm9sZUR1cmF0aW9uU2Vjb25kczogKGF3c0NyZWRlbnRpYWxzLmFzc3VtZVJvbGVEdXJhdGlvblNlY29uZHMgfHwgMzAwKS50b1N0cmluZygpLFxuICAgICAgfTogdW5kZWZpbmVkXG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGVudmlyb25tZW50OiBlbnZpcm9ubWVudE9wdGlvbnMubmFtZSxcbiAgICAgICAgYWNjZXNzS2V5SWQ6IGF3c0NyZWRlbnRpYWxzLmFjY2Vzc0tleUlkU2VjcmV0TmFtZSA/PyAnQVdTX0FDQ0VTU19LRVlfSUQnLFxuICAgICAgICBzZWNyZXRBY2Nlc3NLZXk6IGF3c0NyZWRlbnRpYWxzLnNlY3JldEFjY2Vzc0tleVNlY3JldE5hbWUgPz8gJ0FXU19TRUNSRVRfQUNDRVNTX0tFWScsXG4gICAgICAgIHJlZ2lvbjogYXdzQ3JlZGVudGlhbHMucmVnaW9uLFxuICAgICAgICBhc3N1bWVSb2xlLFxuICAgICAgICAuLi5hc3N1bWVSb2xlU2V0dGluZ3MsXG4gICAgICB9XG4gICAgfSlcblxuICAgIGNvbnN0IGpvYkRlZmluaXRpb246IEpvYiA9IHtcbiAgICAgIHJ1bnNPbjogJ3VidW50dS1sYXRlc3QnLFxuICAgICAgY29uY3VycmVuY3k6ICdkZXBsb3knLFxuICAgICAgbmVlZHM6IFtcbiAgICAgICAgJ3JlbGVhc2VfZ2l0aHViJyxcbiAgICAgIF0sXG4gICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICBjb250ZW50czogSm9iUGVybWlzc2lvbi5SRUFELFxuICAgICAgfSxcbiAgICAgIHN0cmF0ZWd5OiB7XG4gICAgICAgIG1heFBhcmFsbGVsOiAxLFxuICAgICAgICBtYXRyaXg6IHtcbiAgICAgICAgICBpbmNsdWRlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIG5hbWU6ICcke3sgbWF0cml4LmVudmlyb25tZW50IH19JyxcbiAgICAgIH0sXG4gICAgICBzdGVwczogW10sXG4gICAgfVxuXG4gICAgam9iRGVmaW5pdGlvbi5zdGVwcy5wdXNoKHN0ZXBzLmNoZWNrb3V0U3RlcCgpKVxuXG4gICAgaWYgKHdvcmtmbG93Tm9kZVZlcnNpb24pXG4gICAgICBqb2JEZWZpbml0aW9uLnN0ZXBzLnB1c2goc3RlcHMuc2V0Tm9kZVZlcnNpb25TdGVwKHdvcmtmbG93Tm9kZVZlcnNpb24pKVxuXG4gICAgam9iRGVmaW5pdGlvbi5zdGVwcy5wdXNoKHN0ZXBzLmluc3RhbGxEZXBlbmRlbmNpZXNTdGVwKCkpXG4gICAgam9iRGVmaW5pdGlvbi5zdGVwcy5wdXNoKC4uLnN0ZXBzLnNldEF3c0NyZWRlbnRpYWxzU3RlcHMoKSlcbiAgICBqb2JEZWZpbml0aW9uLnN0ZXBzLnB1c2goc3RlcHMuZGVwbG95bWVudFN0ZXAodGhpcy5kZXBsb3lPcHRpb25zLnN0YWNrUGF0dGVybikpXG5cbiAgICB0aGlzLnJlbGVhc2U/LmFkZEpvYnMoe2RlcGxveTogam9iRGVmaW5pdGlvbn0pXG4gIH1cbn0iXX0=
package/lib/steps.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import { JobStep } from 'projen/lib/github/workflows-model';
2
- import { AWSCredentials } from '.';
3
2
  export declare function checkoutStep(): JobStep;
4
3
  export declare function setNodeVersionStep(nodeVersion: string): JobStep;
5
4
  export declare function installDependenciesStep(): JobStep;
6
5
  export declare function deploymentStep(stackPattern?: string): JobStep;
7
- export declare function setAwsCredentials(awsCredentials: AWSCredentials): JobStep;
6
+ export declare function setAwsCredentialsSteps(): JobStep[];
package/lib/steps.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setAwsCredentials = exports.deploymentStep = exports.installDependenciesStep = exports.setNodeVersionStep = exports.checkoutStep = void 0;
3
+ exports.setAwsCredentialsSteps = exports.deploymentStep = exports.installDependenciesStep = exports.setNodeVersionStep = exports.checkoutStep = void 0;
4
4
  function checkoutStep() {
5
5
  return {
6
6
  name: 'Checkout',
@@ -36,38 +36,42 @@ function deploymentStep(stackPattern) {
36
36
  };
37
37
  }
38
38
  exports.deploymentStep = deploymentStep;
39
- function setAwsCredentials(awsCredentials) {
40
- var _a;
41
- const name = 'Configure AWS Credentials';
42
- const accessKeyId = 'accessKeyId' in awsCredentials ? awsCredentials.accessKeyId : `'\${{ secrets.${awsCredentials.accessKeyIdSecretName} }}'`;
43
- const secretAccessKey = 'secretAccessKey' in awsCredentials ? awsCredentials.secretAccessKey : `'\${{ secrets.${awsCredentials.secretAccessKeySecretName} }}'`;
44
- if (awsCredentials.roleToAssume)
45
- return {
46
- name,
47
- uses: 'aws-actions/configure-aws-credentials@v1',
48
- with: {
49
- 'aws-access-key-id': accessKeyId,
50
- 'aws-secret-access-key': secretAccessKey,
51
- 'role-to-assume': awsCredentials.roleToAssume,
52
- 'aws-region': awsCredentials.region,
53
- 'role-duration-seconds': (_a = awsCredentials.assumeRoleDurationSeconds) !== null && _a !== void 0 ? _a : 300,
54
- },
55
- };
39
+ function setAwsCredentialsInEnvironment() {
56
40
  const commands = [
57
- `accessKeyId=${accessKeyId}`,
58
- 'echo "::add-mask::$accessKeyId"',
59
41
  'echo "AWS_ACCESS_KEY_ID=$accessKeyId" >> $GITHUB_ENV',
60
- `secretAccessKey=${secretAccessKey}`,
61
- 'echo "::add-mask::$secretAccessKey"',
62
42
  'echo "AWS_SECRET_ACCESS_KEY=$secretAccessKey" >> $GITHUB_ENV',
63
- `region=${awsCredentials.region}`,
64
- 'echo "::add-mask::$region"',
65
43
  'echo "AWS_REGION=$region" >> $GITHUB_ENV',
66
44
  ];
67
45
  return {
68
- name,
46
+ if: '${{ matrix.assumeRole == "false" }}',
47
+ name: 'Configure AWS Credentials',
69
48
  run: `\n${commands.join('\n')}`,
49
+ env: {
50
+ accessKeyId: '${{ matrix.accessKeyId }}',
51
+ secretAccessKey: '${{ matrix.secretAccessKey }}',
52
+ region: '${{ matrix.region }}',
53
+ },
54
+ };
55
+ }
56
+ function assumeAwsRoleStep() {
57
+ return {
58
+ if: '${{ matrix.assumeRole == "true" }}',
59
+ name: 'Assume AWS Role',
60
+ uses: 'aws-actions/configure-aws-credentials@v1',
61
+ with: {
62
+ 'aws-access-key-id': '${{ matrix.accessKeyId }}',
63
+ 'aws-secret-access-key': '${{ matrix.secretAccessKey }}',
64
+ 'role-to-assume': '${{ matrix.roleToAssume }}',
65
+ 'aws-region': '${{ matrix.region }}',
66
+ 'role-duration-seconds': '${{ matrix.assumeRoleDurationSeconds }}',
67
+ },
70
68
  };
71
69
  }
72
- exports.setAwsCredentials = setAwsCredentials;
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3RlcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsU0FBZ0IsWUFBWTtJQUMxQixPQUFPO1FBQ0wsSUFBSSxFQUFFLFVBQVU7UUFDaEIsSUFBSSxFQUFFLHFCQUFxQjtRQUMzQixJQUFJLEVBQUU7WUFDSixHQUFHLEVBQUUsbUJBQW1CO1NBQ3pCO0tBQ0YsQ0FBQTtBQUNILENBQUM7QUFSRCxvQ0FRQztBQUVELFNBQWdCLGtCQUFrQixDQUFDLFdBQW1CO0lBQ3BELE9BQU87UUFDTCxJQUFJLEVBQUUsZUFBZTtRQUNyQixJQUFJLEVBQUUsMkJBQTJCO1FBQ2pDLElBQUksRUFBRTtZQUNKLGNBQWMsRUFBRSxXQUFXO1NBQzVCO0tBQ0YsQ0FBQTtBQUNILENBQUM7QUFSRCxnREFRQztBQUVELFNBQWdCLHVCQUF1QjtJQUNyQyxPQUFPO1FBQ0wsSUFBSSxFQUFFLHNCQUFzQjtRQUM1QixHQUFHLEVBQUUsUUFBUTtLQUNkLENBQUE7QUFDSCxDQUFDO0FBTEQsMERBS0M7QUFFRCxTQUFnQixjQUFjLENBQUMsWUFBcUI7SUFDbEQsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLFlBQVksRUFBRSxDQUFBLENBQUMsQ0FBQyxFQUFFLENBQUE7SUFFNUQsT0FBTztRQUNMLElBQUksRUFBRSxZQUFZO1FBQ2xCLEdBQUcsRUFBRSxvQkFBb0IsY0FBYyxFQUFFO0tBQzFDLENBQUE7QUFDSCxDQUFDO0FBUEQsd0NBT0M7QUFFRCxTQUFnQixpQkFBaUIsQ0FBQyxjQUE4Qjs7SUFDOUQsTUFBTSxJQUFJLEdBQUcsMkJBQTJCLENBQUE7SUFDeEMsTUFBTSxXQUFXLEdBQUcsYUFBYSxJQUFJLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLGNBQWMsQ0FBQyxxQkFBcUIsTUFBTSxDQUFBO0lBQzlJLE1BQU0sZUFBZSxHQUFHLGlCQUFpQixJQUFJLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLGNBQWMsQ0FBQyx5QkFBeUIsTUFBTSxDQUFBO0lBRTlKLElBQUksY0FBYyxDQUFDLFlBQVk7UUFDN0IsT0FBTztZQUNMLElBQUk7WUFDSixJQUFJLEVBQUUsMENBQTBDO1lBQ2hELElBQUksRUFBRTtnQkFDSixtQkFBbUIsRUFBRSxXQUFXO2dCQUNoQyx1QkFBdUIsRUFBRSxlQUFlO2dCQUN4QyxnQkFBZ0IsRUFBRSxjQUFjLENBQUMsWUFBWTtnQkFDN0MsWUFBWSxFQUFFLGNBQWMsQ0FBQyxNQUFNO2dCQUNuQyx1QkFBdUIsUUFBRSxjQUFjLENBQUMseUJBQXlCLG1DQUFJLEdBQUc7YUFDekU7U0FDRixDQUFBO0lBRUgsTUFBTSxRQUFRLEdBQUc7UUFDZixlQUFlLFdBQVcsRUFBRTtRQUM1QixpQ0FBaUM7UUFDakMsc0RBQXNEO1FBRXRELG1CQUFtQixlQUFlLEVBQUU7UUFDcEMscUNBQXFDO1FBQ3JDLDhEQUE4RDtRQUU5RCxVQUFVLGNBQWMsQ0FBQyxNQUFNLEVBQUU7UUFDakMsNEJBQTRCO1FBQzVCLDBDQUEwQztLQUMzQyxDQUFBO0lBRUQsT0FBTztRQUNMLElBQUk7UUFDSixHQUFHLEVBQUUsS0FBSyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO0tBQ2hDLENBQUE7QUFFSCxDQUFDO0FBckNELDhDQXFDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Sm9iU3RlcH0gZnJvbSAncHJvamVuL2xpYi9naXRodWIvd29ya2Zsb3dzLW1vZGVsJ1xuaW1wb3J0IHtBV1NDcmVkZW50aWFsc30gZnJvbSAnLidcblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrb3V0U3RlcCgpOiBKb2JTdGVwIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQ2hlY2tvdXQnLFxuICAgIHVzZXM6ICdhY3Rpb25zL2NoZWNrb3V0QHYyJyxcbiAgICB3aXRoOiB7XG4gICAgICByZWY6ICcke3sgZ2l0aHViLnNoYSB9fScsXG4gICAgfSxcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0Tm9kZVZlcnNpb25TdGVwKG5vZGVWZXJzaW9uOiBzdHJpbmcpOiBKb2JTdGVwIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnU2V0dXAgTm9kZS5qcycsXG4gICAgdXNlczogJ2FjdGlvbnMvc2V0dXAtbm9kZUB2Mi4yLjAnLFxuICAgIHdpdGg6IHtcbiAgICAgICdub2RlLXZlcnNpb24nOiBub2RlVmVyc2lvbixcbiAgICB9LFxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YWxsRGVwZW5kZW5jaWVzU3RlcCgpOiBKb2JTdGVwIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnSW5zdGFsbCBkZXBlbmRlbmNpZXMnLFxuICAgIHJ1bjogJ25wbSBjaScsXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlcGxveW1lbnRTdGVwKHN0YWNrUGF0dGVybj86IHN0cmluZyk6IEpvYlN0ZXAge1xuICBjb25zdCBkZXBsb3lBcmd1bWVudCA9IHN0YWNrUGF0dGVybiA/IGAgJHtzdGFja1BhdHRlcm59YDogJydcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdEZXBsb3ltZW50JyxcbiAgICBydW46IGBucHggcHJvamVuIGRlcGxveSR7ZGVwbG95QXJndW1lbnR9YCxcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0QXdzQ3JlZGVudGlhbHMoYXdzQ3JlZGVudGlhbHM6IEFXU0NyZWRlbnRpYWxzKTogSm9iU3RlcCB7XG4gIGNvbnN0IG5hbWUgPSAnQ29uZmlndXJlIEFXUyBDcmVkZW50aWFscydcbiAgY29uc3QgYWNjZXNzS2V5SWQgPSAnYWNjZXNzS2V5SWQnIGluIGF3c0NyZWRlbnRpYWxzID8gYXdzQ3JlZGVudGlhbHMuYWNjZXNzS2V5SWQgOiBgJ1xcJHt7IHNlY3JldHMuJHthd3NDcmVkZW50aWFscy5hY2Nlc3NLZXlJZFNlY3JldE5hbWV9IH19J2BcbiAgY29uc3Qgc2VjcmV0QWNjZXNzS2V5ID0gJ3NlY3JldEFjY2Vzc0tleScgaW4gYXdzQ3JlZGVudGlhbHMgPyBhd3NDcmVkZW50aWFscy5zZWNyZXRBY2Nlc3NLZXkgOiBgJ1xcJHt7IHNlY3JldHMuJHthd3NDcmVkZW50aWFscy5zZWNyZXRBY2Nlc3NLZXlTZWNyZXROYW1lfSB9fSdgXG5cbiAgaWYgKGF3c0NyZWRlbnRpYWxzLnJvbGVUb0Fzc3VtZSlcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZSxcbiAgICAgIHVzZXM6ICdhd3MtYWN0aW9ucy9jb25maWd1cmUtYXdzLWNyZWRlbnRpYWxzQHYxJyxcbiAgICAgIHdpdGg6IHtcbiAgICAgICAgJ2F3cy1hY2Nlc3Mta2V5LWlkJzogYWNjZXNzS2V5SWQsXG4gICAgICAgICdhd3Mtc2VjcmV0LWFjY2Vzcy1rZXknOiBzZWNyZXRBY2Nlc3NLZXksXG4gICAgICAgICdyb2xlLXRvLWFzc3VtZSc6IGF3c0NyZWRlbnRpYWxzLnJvbGVUb0Fzc3VtZSxcbiAgICAgICAgJ2F3cy1yZWdpb24nOiBhd3NDcmVkZW50aWFscy5yZWdpb24sXG4gICAgICAgICdyb2xlLWR1cmF0aW9uLXNlY29uZHMnOiBhd3NDcmVkZW50aWFscy5hc3N1bWVSb2xlRHVyYXRpb25TZWNvbmRzID8/IDMwMCxcbiAgICAgIH0sXG4gICAgfVxuXG4gIGNvbnN0IGNvbW1hbmRzID0gW1xuICAgIGBhY2Nlc3NLZXlJZD0ke2FjY2Vzc0tleUlkfWAsXG4gICAgJ2VjaG8gXCI6OmFkZC1tYXNrOjokYWNjZXNzS2V5SWRcIicsXG4gICAgJ2VjaG8gXCJBV1NfQUNDRVNTX0tFWV9JRD0kYWNjZXNzS2V5SWRcIiA+PiAkR0lUSFVCX0VOVicsXG5cbiAgICBgc2VjcmV0QWNjZXNzS2V5PSR7c2VjcmV0QWNjZXNzS2V5fWAsXG4gICAgJ2VjaG8gXCI6OmFkZC1tYXNrOjokc2VjcmV0QWNjZXNzS2V5XCInLFxuICAgICdlY2hvIFwiQVdTX1NFQ1JFVF9BQ0NFU1NfS0VZPSRzZWNyZXRBY2Nlc3NLZXlcIiA+PiAkR0lUSFVCX0VOVicsXG5cbiAgICBgcmVnaW9uPSR7YXdzQ3JlZGVudGlhbHMucmVnaW9ufWAsXG4gICAgJ2VjaG8gXCI6OmFkZC1tYXNrOjokcmVnaW9uXCInLFxuICAgICdlY2hvIFwiQVdTX1JFR0lPTj0kcmVnaW9uXCIgPj4gJEdJVEhVQl9FTlYnLFxuICBdXG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lLFxuICAgIHJ1bjogYFxcbiR7Y29tbWFuZHMuam9pbignXFxuJyl9YCxcbiAgfVxuXG59Il19
70
+ function setAwsCredentialsSteps() {
71
+ return [
72
+ setAwsCredentialsInEnvironment(),
73
+ assumeAwsRoleStep(),
74
+ ];
75
+ }
76
+ exports.setAwsCredentialsSteps = setAwsCredentialsSteps;
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3RlcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsU0FBZ0IsWUFBWTtJQUMxQixPQUFPO1FBQ0wsSUFBSSxFQUFFLFVBQVU7UUFDaEIsSUFBSSxFQUFFLHFCQUFxQjtRQUMzQixJQUFJLEVBQUU7WUFDSixHQUFHLEVBQUUsbUJBQW1CO1NBQ3pCO0tBQ0YsQ0FBQTtBQUNILENBQUM7QUFSRCxvQ0FRQztBQUVELFNBQWdCLGtCQUFrQixDQUFDLFdBQW1CO0lBQ3BELE9BQU87UUFDTCxJQUFJLEVBQUUsZUFBZTtRQUNyQixJQUFJLEVBQUUsMkJBQTJCO1FBQ2pDLElBQUksRUFBRTtZQUNKLGNBQWMsRUFBRSxXQUFXO1NBQzVCO0tBQ0YsQ0FBQTtBQUNILENBQUM7QUFSRCxnREFRQztBQUVELFNBQWdCLHVCQUF1QjtJQUNyQyxPQUFPO1FBQ0wsSUFBSSxFQUFFLHNCQUFzQjtRQUM1QixHQUFHLEVBQUUsUUFBUTtLQUNkLENBQUE7QUFDSCxDQUFDO0FBTEQsMERBS0M7QUFFRCxTQUFnQixjQUFjLENBQUMsWUFBcUI7SUFDbEQsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLFlBQVksRUFBRSxDQUFBLENBQUMsQ0FBQyxFQUFFLENBQUE7SUFFNUQsT0FBTztRQUNMLElBQUksRUFBRSxZQUFZO1FBQ2xCLEdBQUcsRUFBRSxvQkFBb0IsY0FBYyxFQUFFO0tBQzFDLENBQUE7QUFDSCxDQUFDO0FBUEQsd0NBT0M7QUFFRCxTQUFTLDhCQUE4QjtJQUNyQyxNQUFNLFFBQVEsR0FBRztRQUNmLHNEQUFzRDtRQUN0RCw4REFBOEQ7UUFDOUQsMENBQTBDO0tBQzNDLENBQUE7SUFFRCxPQUFPO1FBQ0wsRUFBRSxFQUFFLHFDQUFxQztRQUN6QyxJQUFJLEVBQUUsMkJBQTJCO1FBQ2pDLEdBQUcsRUFBRSxLQUFLLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDL0IsR0FBRyxFQUFFO1lBQ0gsV0FBVyxFQUFFLDJCQUEyQjtZQUN4QyxlQUFlLEVBQUUsK0JBQStCO1lBQ2hELE1BQU0sRUFBRSxzQkFBc0I7U0FDL0I7S0FDRixDQUFBO0FBQ0gsQ0FBQztBQUVELFNBQVMsaUJBQWlCO0lBQ3hCLE9BQU87UUFDTCxFQUFFLEVBQUUsb0NBQW9DO1FBQ3hDLElBQUksRUFBRSxpQkFBaUI7UUFDdkIsSUFBSSxFQUFFLDBDQUEwQztRQUNoRCxJQUFJLEVBQUU7WUFDSixtQkFBbUIsRUFBRSwyQkFBMkI7WUFDaEQsdUJBQXVCLEVBQUUsK0JBQStCO1lBQ3hELGdCQUFnQixFQUFFLDRCQUE0QjtZQUM5QyxZQUFZLEVBQUUsc0JBQXNCO1lBQ3BDLHVCQUF1QixFQUFFLHlDQUF5QztTQUNuRTtLQUNGLENBQUE7QUFDSCxDQUFDO0FBRUQsU0FBZ0Isc0JBQXNCO0lBQ3BDLE9BQU87UUFDTCw4QkFBOEIsRUFBRTtRQUNoQyxpQkFBaUIsRUFBRTtLQUNwQixDQUFBO0FBQ0gsQ0FBQztBQUxELHdEQUtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtKb2JTdGVwfSBmcm9tICdwcm9qZW4vbGliL2dpdGh1Yi93b3JrZmxvd3MtbW9kZWwnXG5cbmV4cG9ydCBmdW5jdGlvbiBjaGVja291dFN0ZXAoKTogSm9iU3RlcCB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0NoZWNrb3V0JyxcbiAgICB1c2VzOiAnYWN0aW9ucy9jaGVja291dEB2MicsXG4gICAgd2l0aDoge1xuICAgICAgcmVmOiAnJHt7IGdpdGh1Yi5zaGEgfX0nLFxuICAgIH0sXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldE5vZGVWZXJzaW9uU3RlcChub2RlVmVyc2lvbjogc3RyaW5nKTogSm9iU3RlcCB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1NldHVwIE5vZGUuanMnLFxuICAgIHVzZXM6ICdhY3Rpb25zL3NldHVwLW5vZGVAdjIuMi4wJyxcbiAgICB3aXRoOiB7XG4gICAgICAnbm9kZS12ZXJzaW9uJzogbm9kZVZlcnNpb24sXG4gICAgfSxcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFsbERlcGVuZGVuY2llc1N0ZXAoKTogSm9iU3RlcCB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0luc3RhbGwgZGVwZW5kZW5jaWVzJyxcbiAgICBydW46ICducG0gY2knLFxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZXBsb3ltZW50U3RlcChzdGFja1BhdHRlcm4/OiBzdHJpbmcpOiBKb2JTdGVwIHtcbiAgY29uc3QgZGVwbG95QXJndW1lbnQgPSBzdGFja1BhdHRlcm4gPyBgICR7c3RhY2tQYXR0ZXJufWA6ICcnXG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnRGVwbG95bWVudCcsXG4gICAgcnVuOiBgbnB4IHByb2plbiBkZXBsb3kke2RlcGxveUFyZ3VtZW50fWAsXG4gIH1cbn1cblxuZnVuY3Rpb24gc2V0QXdzQ3JlZGVudGlhbHNJbkVudmlyb25tZW50KCk6IEpvYlN0ZXAge1xuICBjb25zdCBjb21tYW5kcyA9IFtcbiAgICAnZWNobyBcIkFXU19BQ0NFU1NfS0VZX0lEPSRhY2Nlc3NLZXlJZFwiID4+ICRHSVRIVUJfRU5WJyxcbiAgICAnZWNobyBcIkFXU19TRUNSRVRfQUNDRVNTX0tFWT0kc2VjcmV0QWNjZXNzS2V5XCIgPj4gJEdJVEhVQl9FTlYnLFxuICAgICdlY2hvIFwiQVdTX1JFR0lPTj0kcmVnaW9uXCIgPj4gJEdJVEhVQl9FTlYnLFxuICBdXG5cbiAgcmV0dXJuIHtcbiAgICBpZjogJyR7eyBtYXRyaXguYXNzdW1lUm9sZSA9PSBcImZhbHNlXCIgfX0nLFxuICAgIG5hbWU6ICdDb25maWd1cmUgQVdTIENyZWRlbnRpYWxzJyxcbiAgICBydW46IGBcXG4ke2NvbW1hbmRzLmpvaW4oJ1xcbicpfWAsXG4gICAgZW52OiB7XG4gICAgICBhY2Nlc3NLZXlJZDogJyR7eyBtYXRyaXguYWNjZXNzS2V5SWQgfX0nLFxuICAgICAgc2VjcmV0QWNjZXNzS2V5OiAnJHt7IG1hdHJpeC5zZWNyZXRBY2Nlc3NLZXkgfX0nLFxuICAgICAgcmVnaW9uOiAnJHt7IG1hdHJpeC5yZWdpb24gfX0nLFxuICAgIH0sXG4gIH1cbn1cblxuZnVuY3Rpb24gYXNzdW1lQXdzUm9sZVN0ZXAoKTogSm9iU3RlcCB7XG4gIHJldHVybiB7XG4gICAgaWY6ICcke3sgbWF0cml4LmFzc3VtZVJvbGUgPT0gXCJ0cnVlXCIgfX0nLFxuICAgIG5hbWU6ICdBc3N1bWUgQVdTIFJvbGUnLFxuICAgIHVzZXM6ICdhd3MtYWN0aW9ucy9jb25maWd1cmUtYXdzLWNyZWRlbnRpYWxzQHYxJyxcbiAgICB3aXRoOiB7XG4gICAgICAnYXdzLWFjY2Vzcy1rZXktaWQnOiAnJHt7IG1hdHJpeC5hY2Nlc3NLZXlJZCB9fScsXG4gICAgICAnYXdzLXNlY3JldC1hY2Nlc3Mta2V5JzogJyR7eyBtYXRyaXguc2VjcmV0QWNjZXNzS2V5IH19JyxcbiAgICAgICdyb2xlLXRvLWFzc3VtZSc6ICcke3sgbWF0cml4LnJvbGVUb0Fzc3VtZSB9fScsXG4gICAgICAnYXdzLXJlZ2lvbic6ICcke3sgbWF0cml4LnJlZ2lvbiB9fScsXG4gICAgICAncm9sZS1kdXJhdGlvbi1zZWNvbmRzJzogJyR7eyBtYXRyaXguYXNzdW1lUm9sZUR1cmF0aW9uU2Vjb25kcyB9fScsXG4gICAgfSxcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0QXdzQ3JlZGVudGlhbHNTdGVwcygpOiBKb2JTdGVwW10ge1xuICByZXR1cm4gW1xuICAgIHNldEF3c0NyZWRlbnRpYWxzSW5FbnZpcm9ubWVudCgpLFxuICAgIGFzc3VtZUF3c1JvbGVTdGVwKCksXG4gIF1cbn0iXX0=
package/lib/types.d.ts CHANGED
@@ -15,11 +15,11 @@ export interface DeployableAwsCdkTypeScriptAppOptions extends AwsCdkTypeScriptAp
15
15
  */
16
16
  export interface DeployOptions {
17
17
  /**
18
- * Environment names to deploy to.
18
+ * Environment settings to deploy to.
19
19
  *
20
20
  * @stability stable
21
21
  */
22
- readonly environments: string[];
22
+ readonly environments: EnvironmentOptions[];
23
23
  /**
24
24
  * Regex for stacks to be deployed.
25
25
  *
@@ -28,52 +28,42 @@ export interface DeployOptions {
28
28
  * @stability stable
29
29
  */
30
30
  readonly stackPattern?: string;
31
- /**
32
- * AWS credential details for deployment.
33
- *
34
- * @stability stable
35
- */
36
- readonly awsCredentials: AWSCredentials;
37
31
  }
38
- export declare type AWSCredentials = AWSCredentialsValues | AWSCredentialsGitHubSecrets;
39
32
  /**
40
33
  * @stability stable
41
34
  */
42
- export interface AWSCredentialsGitHubSecrets extends AWSCredentialsBase {
35
+ export interface EnvironmentOptions {
43
36
  /**
44
- * GitHub Secret name for AWS Access Key Id.
37
+ * Environment name to deploy to.
45
38
  *
46
39
  * @stability stable
47
40
  */
48
- readonly accessKeyIdSecretName: string;
41
+ readonly name: string;
49
42
  /**
50
- * GitHub Secret name for AWS Secret Access Key.
43
+ * AWS credential details for deployment.
51
44
  *
52
45
  * @stability stable
53
46
  */
54
- readonly secretAccessKeySecretName: string;
47
+ readonly awsCredentials: AWSCredentials;
55
48
  }
56
49
  /**
57
50
  * @stability stable
58
51
  */
59
- export interface AWSCredentialsValues extends AWSCredentialsBase {
52
+ export interface AWSCredentials {
60
53
  /**
61
- * AWS Access Key Id.
54
+ * GitHub Secret name for AWS Access Key Id.
62
55
  *
56
+ * @default "AWS_ACCESS_KEY_ID"
63
57
  * @stability stable
64
58
  */
65
- readonly accessKeyId: string;
59
+ readonly accessKeyIdSecretName?: string;
66
60
  /**
67
- * AWS Secret Access Key.
61
+ * GitHub Secret name for AWS Secret Access Key.
68
62
  *
63
+ * @default "AWS_SECRET_ACCESS_KEY"
69
64
  * @stability stable
70
65
  */
71
- readonly secretAccessKey: string;
72
- }
73
- /**
74
- * @stability stable
75
- */
76
- export interface AWSCredentialsBase {
66
+ readonly secretAccessKeySecretName?: string;
77
67
  /**
78
68
  * ARN of AWS role to be assumed.
79
69
  *
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXdzQ2RrVHlwZVNjcmlwdEFwcE9wdGlvbnN9IGZyb20gJ3Byb2plbidcblxuZXhwb3J0IGludGVyZmFjZSBEZXBsb3lhYmxlQXdzQ2RrVHlwZVNjcmlwdEFwcE9wdGlvbnMgZXh0ZW5kcyBBd3NDZGtUeXBlU2NyaXB0QXBwT3B0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBkZXBsb3lPcHRpb25zOiBEZXBsb3lPcHRpb25zO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveU9wdGlvbnMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZW52aXJvbm1lbnRzOiBzdHJpbmdbXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgc3RhY2tQYXR0ZXJuPzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgYXdzQ3JlZGVudGlhbHM6IEFXU0NyZWRlbnRpYWxzO1xufVxuXG5leHBvcnQgdHlwZSBBV1NDcmVkZW50aWFscyA9IEFXU0NyZWRlbnRpYWxzVmFsdWVzIHwgQVdTQ3JlZGVudGlhbHNHaXRIdWJTZWNyZXRzXG5cbmV4cG9ydCBpbnRlcmZhY2UgQVdTQ3JlZGVudGlhbHNHaXRIdWJTZWNyZXRzIGV4dGVuZHMgQVdTQ3JlZGVudGlhbHNCYXNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBhY2Nlc3NLZXlJZFNlY3JldE5hbWU6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBzZWNyZXRBY2Nlc3NLZXlTZWNyZXROYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVdTQ3JlZGVudGlhbHNWYWx1ZXMgZXh0ZW5kcyBBV1NDcmVkZW50aWFsc0Jhc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBhY2Nlc3NLZXlJZDogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBzZWNyZXRBY2Nlc3NLZXk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBV1NDcmVkZW50aWFsc0Jhc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSByb2xlVG9Bc3N1bWU/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBhc3N1bWVSb2xlRHVyYXRpb25TZWNvbmRzPzogbnVtYmVyO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSByZWdpb246IHN0cmluZztcbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXdzQ2RrVHlwZVNjcmlwdEFwcE9wdGlvbnN9IGZyb20gJ3Byb2plbidcblxuZXhwb3J0IGludGVyZmFjZSBEZXBsb3lhYmxlQXdzQ2RrVHlwZVNjcmlwdEFwcE9wdGlvbnMgZXh0ZW5kcyBBd3NDZGtUeXBlU2NyaXB0QXBwT3B0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBkZXBsb3lPcHRpb25zOiBEZXBsb3lPcHRpb25zO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveU9wdGlvbnMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZW52aXJvbm1lbnRzOiBFbnZpcm9ubWVudE9wdGlvbnNbXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgc3RhY2tQYXR0ZXJuPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudmlyb25tZW50T3B0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGF3c0NyZWRlbnRpYWxzOiBBV1NDcmVkZW50aWFscztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBV1NDcmVkZW50aWFscyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGFjY2Vzc0tleUlkU2VjcmV0TmFtZT86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHNlY3JldEFjY2Vzc0tleVNlY3JldE5hbWU/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcm9sZVRvQXNzdW1lPzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgYXNzdW1lUm9sZUR1cmF0aW9uU2Vjb25kcz86IG51bWJlcjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG59XG4iXX0=
package/package.json CHANGED
@@ -73,7 +73,7 @@
73
73
  ],
74
74
  "main": "lib/index.js",
75
75
  "license": "Apache-2.0",
76
- "version": "0.0.1",
76
+ "version": "0.0.2",
77
77
  "jest": {
78
78
  "testMatch": [
79
79
  "**/__tests__/**/*.ts?(x)",