projen-pipelines 0.0.28 → 0.0.29

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/API.md CHANGED
@@ -1,191 +1,599 @@
1
- # Projen Pipelines
1
+ # API Reference <a name="API Reference" id="api-reference"></a>
2
+
3
+ ## Constructs <a name="Constructs" id="Constructs"></a>
4
+
5
+ ### CDKPipeline <a name="CDKPipeline" id="projen-pipelines.CDKPipeline"></a>
6
+
7
+ The CDKPipeline class extends the Component class and sets up the necessary configuration for deploying AWS CDK (Cloud Development Kit) applications across multiple stages.
8
+
9
+ It also manages tasks such as publishing CDK assets, bumping version based on git tags, and cleaning up conflicting tasks.
10
+
11
+ #### Initializers <a name="Initializers" id="projen-pipelines.CDKPipeline.Initializer"></a>
12
+
13
+ ```typescript
14
+ import { CDKPipeline } from 'projen-pipelines'
15
+
16
+ new CDKPipeline(app: AwsCdkTypeScriptApp, baseOptions: CDKPipelineOptions)
17
+ ```
18
+
19
+ | **Name** | **Type** | **Description** |
20
+ | --- | --- | --- |
21
+ | <code><a href="#projen-pipelines.CDKPipeline.Initializer.parameter.app">app</a></code> | <code>projen.awscdk.AwsCdkTypeScriptApp</code> | *No description.* |
22
+ | <code><a href="#projen-pipelines.CDKPipeline.Initializer.parameter.baseOptions">baseOptions</a></code> | <code><a href="#projen-pipelines.CDKPipelineOptions">CDKPipelineOptions</a></code> | *No description.* |
23
+
24
+ ---
25
+
26
+ ##### `app`<sup>Required</sup> <a name="app" id="projen-pipelines.CDKPipeline.Initializer.parameter.app"></a>
27
+
28
+ - *Type:* projen.awscdk.AwsCdkTypeScriptApp
29
+
30
+ ---
31
+
32
+ ##### `baseOptions`<sup>Required</sup> <a name="baseOptions" id="projen-pipelines.CDKPipeline.Initializer.parameter.baseOptions"></a>
33
+
34
+ - *Type:* <a href="#projen-pipelines.CDKPipelineOptions">CDKPipelineOptions</a>
35
+
36
+ ---
37
+
38
+ #### Methods <a name="Methods" id="Methods"></a>
39
+
40
+ | **Name** | **Description** |
41
+ | --- | --- |
42
+ | <code><a href="#projen-pipelines.CDKPipeline.toString">toString</a></code> | Returns a string representation of this construct. |
43
+ | <code><a href="#projen-pipelines.CDKPipeline.postSynthesize">postSynthesize</a></code> | Called after synthesis. |
44
+ | <code><a href="#projen-pipelines.CDKPipeline.preSynthesize">preSynthesize</a></code> | Called before synthesis. |
45
+ | <code><a href="#projen-pipelines.CDKPipeline.synthesize">synthesize</a></code> | Synthesizes files to the project output directory. |
46
+
47
+ ---
48
+
49
+ ##### `toString` <a name="toString" id="projen-pipelines.CDKPipeline.toString"></a>
50
+
51
+ ```typescript
52
+ public toString(): string
53
+ ```
54
+
55
+ Returns a string representation of this construct.
56
+
57
+ ##### `postSynthesize` <a name="postSynthesize" id="projen-pipelines.CDKPipeline.postSynthesize"></a>
58
+
59
+ ```typescript
60
+ public postSynthesize(): void
61
+ ```
62
+
63
+ Called after synthesis.
64
+
65
+ Order is *not* guaranteed.
66
+
67
+ ##### `preSynthesize` <a name="preSynthesize" id="projen-pipelines.CDKPipeline.preSynthesize"></a>
68
+
69
+ ```typescript
70
+ public preSynthesize(): void
71
+ ```
72
+
73
+ Called before synthesis.
74
+
75
+ ##### `synthesize` <a name="synthesize" id="projen-pipelines.CDKPipeline.synthesize"></a>
76
+
77
+ ```typescript
78
+ public synthesize(): void
79
+ ```
80
+
81
+ Synthesizes files to the project output directory.
82
+
83
+ #### Static Functions <a name="Static Functions" id="Static Functions"></a>
84
+
85
+ | **Name** | **Description** |
86
+ | --- | --- |
87
+ | <code><a href="#projen-pipelines.CDKPipeline.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
88
+ | <code><a href="#projen-pipelines.CDKPipeline.isComponent">isComponent</a></code> | Test whether the given construct is a component. |
89
+
90
+ ---
91
+
92
+ ##### `isConstruct` <a name="isConstruct" id="projen-pipelines.CDKPipeline.isConstruct"></a>
93
+
94
+ ```typescript
95
+ import { CDKPipeline } from 'projen-pipelines'
96
+
97
+ CDKPipeline.isConstruct(x: any)
98
+ ```
99
+
100
+ Checks if `x` is a construct.
101
+
102
+ Use this method instead of `instanceof` to properly detect `Construct`
103
+ instances, even when the construct library is symlinked.
104
+
105
+ Explanation: in JavaScript, multiple copies of the `constructs` library on
106
+ disk are seen as independent, completely different libraries. As a
107
+ consequence, the class `Construct` in each copy of the `constructs` library
108
+ is seen as a different class, and an instance of one class will not test as
109
+ `instanceof` the other class. `npm install` will not create installations
110
+ like this, but users may manually symlink construct libraries together or
111
+ use a monorepo tool: in those cases, multiple copies of the `constructs`
112
+ library can be accidentally installed, and `instanceof` will behave
113
+ unpredictably. It is safest to avoid using `instanceof`, and using
114
+ this type-testing method instead.
115
+
116
+ ###### `x`<sup>Required</sup> <a name="x" id="projen-pipelines.CDKPipeline.isConstruct.parameter.x"></a>
117
+
118
+ - *Type:* any
119
+
120
+ Any object.
121
+
122
+ ---
123
+
124
+ ##### `isComponent` <a name="isComponent" id="projen-pipelines.CDKPipeline.isComponent"></a>
125
+
126
+ ```typescript
127
+ import { CDKPipeline } from 'projen-pipelines'
128
+
129
+ CDKPipeline.isComponent(x: any)
130
+ ```
131
+
132
+ Test whether the given construct is a component.
133
+
134
+ ###### `x`<sup>Required</sup> <a name="x" id="projen-pipelines.CDKPipeline.isComponent.parameter.x"></a>
135
+
136
+ - *Type:* any
137
+
138
+ ---
139
+
140
+ #### Properties <a name="Properties" id="Properties"></a>
141
+
142
+ | **Name** | **Type** | **Description** |
143
+ | --- | --- | --- |
144
+ | <code><a href="#projen-pipelines.CDKPipeline.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
145
+ | <code><a href="#projen-pipelines.CDKPipeline.property.project">project</a></code> | <code>projen.Project</code> | *No description.* |
146
+ | <code><a href="#projen-pipelines.CDKPipeline.property.stackPrefix">stackPrefix</a></code> | <code>string</code> | *No description.* |
147
+
148
+ ---
149
+
150
+ ##### `node`<sup>Required</sup> <a name="node" id="projen-pipelines.CDKPipeline.property.node"></a>
151
+
152
+ ```typescript
153
+ public readonly node: Node;
154
+ ```
155
+
156
+ - *Type:* constructs.Node
157
+
158
+ The tree node.
159
+
160
+ ---
161
+
162
+ ##### `project`<sup>Required</sup> <a name="project" id="projen-pipelines.CDKPipeline.property.project"></a>
163
+
164
+ ```typescript
165
+ public readonly project: Project;
166
+ ```
167
+
168
+ - *Type:* projen.Project
169
+
170
+ ---
171
+
172
+ ##### `stackPrefix`<sup>Required</sup> <a name="stackPrefix" id="projen-pipelines.CDKPipeline.property.stackPrefix"></a>
173
+
174
+ ```typescript
175
+ public readonly stackPrefix: string;
176
+ ```
177
+
178
+ - *Type:* string
179
+
180
+ ---
181
+
182
+
183
+ ### GithubCDKPipeline <a name="GithubCDKPipeline" id="projen-pipelines.GithubCDKPipeline"></a>
184
+
185
+ #### Initializers <a name="Initializers" id="projen-pipelines.GithubCDKPipeline.Initializer"></a>
186
+
187
+ ```typescript
188
+ import { GithubCDKPipeline } from 'projen-pipelines'
189
+
190
+ new GithubCDKPipeline(app: AwsCdkTypeScriptApp, options: GithubCDKPipelineOptions)
191
+ ```
192
+
193
+ | **Name** | **Type** | **Description** |
194
+ | --- | --- | --- |
195
+ | <code><a href="#projen-pipelines.GithubCDKPipeline.Initializer.parameter.app">app</a></code> | <code>projen.awscdk.AwsCdkTypeScriptApp</code> | *No description.* |
196
+ | <code><a href="#projen-pipelines.GithubCDKPipeline.Initializer.parameter.options">options</a></code> | <code><a href="#projen-pipelines.GithubCDKPipelineOptions">GithubCDKPipelineOptions</a></code> | *No description.* |
197
+
198
+ ---
199
+
200
+ ##### `app`<sup>Required</sup> <a name="app" id="projen-pipelines.GithubCDKPipeline.Initializer.parameter.app"></a>
201
+
202
+ - *Type:* projen.awscdk.AwsCdkTypeScriptApp
203
+
204
+ ---
205
+
206
+ ##### `options`<sup>Required</sup> <a name="options" id="projen-pipelines.GithubCDKPipeline.Initializer.parameter.options"></a>
207
+
208
+ - *Type:* <a href="#projen-pipelines.GithubCDKPipelineOptions">GithubCDKPipelineOptions</a>
2
209
 
3
- [![npm version](https://badge.fury.io/js/projen-pipelines.svg)](https://www.npmjs.com/package/projen-pipelines)
210
+ ---
211
+
212
+ #### Methods <a name="Methods" id="Methods"></a>
213
+
214
+ | **Name** | **Description** |
215
+ | --- | --- |
216
+ | <code><a href="#projen-pipelines.GithubCDKPipeline.toString">toString</a></code> | Returns a string representation of this construct. |
217
+ | <code><a href="#projen-pipelines.GithubCDKPipeline.postSynthesize">postSynthesize</a></code> | Called after synthesis. |
218
+ | <code><a href="#projen-pipelines.GithubCDKPipeline.preSynthesize">preSynthesize</a></code> | Called before synthesis. |
219
+ | <code><a href="#projen-pipelines.GithubCDKPipeline.synthesize">synthesize</a></code> | Synthesizes files to the project output directory. |
220
+ | <code><a href="#projen-pipelines.GithubCDKPipeline.createAssetUpload">createAssetUpload</a></code> | *No description.* |
221
+ | <code><a href="#projen-pipelines.GithubCDKPipeline.createDeployment">createDeployment</a></code> | *No description.* |
222
+
223
+ ---
224
+
225
+ ##### `toString` <a name="toString" id="projen-pipelines.GithubCDKPipeline.toString"></a>
226
+
227
+ ```typescript
228
+ public toString(): string
229
+ ```
230
+
231
+ Returns a string representation of this construct.
232
+
233
+ ##### `postSynthesize` <a name="postSynthesize" id="projen-pipelines.GithubCDKPipeline.postSynthesize"></a>
234
+
235
+ ```typescript
236
+ public postSynthesize(): void
237
+ ```
238
+
239
+ Called after synthesis.
240
+
241
+ Order is *not* guaranteed.
242
+
243
+ ##### `preSynthesize` <a name="preSynthesize" id="projen-pipelines.GithubCDKPipeline.preSynthesize"></a>
244
+
245
+ ```typescript
246
+ public preSynthesize(): void
247
+ ```
248
+
249
+ Called before synthesis.
250
+
251
+ ##### `synthesize` <a name="synthesize" id="projen-pipelines.GithubCDKPipeline.synthesize"></a>
252
+
253
+ ```typescript
254
+ public synthesize(): void
255
+ ```
256
+
257
+ Synthesizes files to the project output directory.
258
+
259
+ ##### `createAssetUpload` <a name="createAssetUpload" id="projen-pipelines.GithubCDKPipeline.createAssetUpload"></a>
260
+
261
+ ```typescript
262
+ public createAssetUpload(): void
263
+ ```
264
+
265
+ ##### `createDeployment` <a name="createDeployment" id="projen-pipelines.GithubCDKPipeline.createDeployment"></a>
266
+
267
+ ```typescript
268
+ public createDeployment(stage: DeploymentStage): void
269
+ ```
270
+
271
+ ###### `stage`<sup>Required</sup> <a name="stage" id="projen-pipelines.GithubCDKPipeline.createDeployment.parameter.stage"></a>
272
+
273
+ - *Type:* <a href="#projen-pipelines.DeploymentStage">DeploymentStage</a>
274
+
275
+ ---
276
+
277
+ #### Static Functions <a name="Static Functions" id="Static Functions"></a>
278
+
279
+ | **Name** | **Description** |
280
+ | --- | --- |
281
+ | <code><a href="#projen-pipelines.GithubCDKPipeline.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
282
+ | <code><a href="#projen-pipelines.GithubCDKPipeline.isComponent">isComponent</a></code> | Test whether the given construct is a component. |
283
+
284
+ ---
285
+
286
+ ##### `isConstruct` <a name="isConstruct" id="projen-pipelines.GithubCDKPipeline.isConstruct"></a>
287
+
288
+ ```typescript
289
+ import { GithubCDKPipeline } from 'projen-pipelines'
290
+
291
+ GithubCDKPipeline.isConstruct(x: any)
292
+ ```
293
+
294
+ Checks if `x` is a construct.
295
+
296
+ Use this method instead of `instanceof` to properly detect `Construct`
297
+ instances, even when the construct library is symlinked.
298
+
299
+ Explanation: in JavaScript, multiple copies of the `constructs` library on
300
+ disk are seen as independent, completely different libraries. As a
301
+ consequence, the class `Construct` in each copy of the `constructs` library
302
+ is seen as a different class, and an instance of one class will not test as
303
+ `instanceof` the other class. `npm install` will not create installations
304
+ like this, but users may manually symlink construct libraries together or
305
+ use a monorepo tool: in those cases, multiple copies of the `constructs`
306
+ library can be accidentally installed, and `instanceof` will behave
307
+ unpredictably. It is safest to avoid using `instanceof`, and using
308
+ this type-testing method instead.
309
+
310
+ ###### `x`<sup>Required</sup> <a name="x" id="projen-pipelines.GithubCDKPipeline.isConstruct.parameter.x"></a>
311
+
312
+ - *Type:* any
313
+
314
+ Any object.
315
+
316
+ ---
317
+
318
+ ##### `isComponent` <a name="isComponent" id="projen-pipelines.GithubCDKPipeline.isComponent"></a>
319
+
320
+ ```typescript
321
+ import { GithubCDKPipeline } from 'projen-pipelines'
322
+
323
+ GithubCDKPipeline.isComponent(x: any)
324
+ ```
325
+
326
+ Test whether the given construct is a component.
327
+
328
+ ###### `x`<sup>Required</sup> <a name="x" id="projen-pipelines.GithubCDKPipeline.isComponent.parameter.x"></a>
329
+
330
+ - *Type:* any
331
+
332
+ ---
333
+
334
+ #### Properties <a name="Properties" id="Properties"></a>
335
+
336
+ | **Name** | **Type** | **Description** |
337
+ | --- | --- | --- |
338
+ | <code><a href="#projen-pipelines.GithubCDKPipeline.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
339
+ | <code><a href="#projen-pipelines.GithubCDKPipeline.property.project">project</a></code> | <code>projen.Project</code> | *No description.* |
340
+ | <code><a href="#projen-pipelines.GithubCDKPipeline.property.stackPrefix">stackPrefix</a></code> | <code>string</code> | *No description.* |
341
+ | <code><a href="#projen-pipelines.GithubCDKPipeline.property.needsVersionedArtifacts">needsVersionedArtifacts</a></code> | <code>boolean</code> | *No description.* |
342
+
343
+ ---
344
+
345
+ ##### `node`<sup>Required</sup> <a name="node" id="projen-pipelines.GithubCDKPipeline.property.node"></a>
346
+
347
+ ```typescript
348
+ public readonly node: Node;
349
+ ```
350
+
351
+ - *Type:* constructs.Node
352
+
353
+ The tree node.
354
+
355
+ ---
356
+
357
+ ##### `project`<sup>Required</sup> <a name="project" id="projen-pipelines.GithubCDKPipeline.property.project"></a>
358
+
359
+ ```typescript
360
+ public readonly project: Project;
361
+ ```
362
+
363
+ - *Type:* projen.Project
364
+
365
+ ---
366
+
367
+ ##### `stackPrefix`<sup>Required</sup> <a name="stackPrefix" id="projen-pipelines.GithubCDKPipeline.property.stackPrefix"></a>
368
+
369
+ ```typescript
370
+ public readonly stackPrefix: string;
371
+ ```
372
+
373
+ - *Type:* string
374
+
375
+ ---
376
+
377
+ ##### `needsVersionedArtifacts`<sup>Required</sup> <a name="needsVersionedArtifacts" id="projen-pipelines.GithubCDKPipeline.property.needsVersionedArtifacts"></a>
378
+
379
+ ```typescript
380
+ public readonly needsVersionedArtifacts: boolean;
381
+ ```
382
+
383
+ - *Type:* boolean
384
+
385
+ ---
386
+
387
+
388
+ ### GitlabCDKPipeline <a name="GitlabCDKPipeline" id="projen-pipelines.GitlabCDKPipeline"></a>
389
+
390
+ #### Initializers <a name="Initializers" id="projen-pipelines.GitlabCDKPipeline.Initializer"></a>
4
391
 
392
+ ```typescript
393
+ import { GitlabCDKPipeline } from 'projen-pipelines'
394
+
395
+ new GitlabCDKPipeline(app: AwsCdkTypeScriptApp, options: GitlabCDKPipelineOptions)
396
+ ```
397
+
398
+ | **Name** | **Type** | **Description** |
399
+ | --- | --- | --- |
400
+ | <code><a href="#projen-pipelines.GitlabCDKPipeline.Initializer.parameter.app">app</a></code> | <code>projen.awscdk.AwsCdkTypeScriptApp</code> | *No description.* |
401
+ | <code><a href="#projen-pipelines.GitlabCDKPipeline.Initializer.parameter.options">options</a></code> | <code><a href="#projen-pipelines.GitlabCDKPipelineOptions">GitlabCDKPipelineOptions</a></code> | *No description.* |
402
+
403
+ ---
5
404
 
6
- Projen Pipelines is a projen library that provides high-level abstractions for defining continuous delivery (CD) pipelines for AWS CDK applications.
7
- It is specifically designed to work with the projen project configuration engine.
405
+ ##### `app`<sup>Required</sup> <a name="app" id="projen-pipelines.GitlabCDKPipeline.Initializer.parameter.app"></a>
406
+
407
+ - *Type:* projen.awscdk.AwsCdkTypeScriptApp
8
408
 
9
- This library provides high-level abstractions for defining multi-environment and multi-account AWS CDK applications with ease.
10
- With this library, you can handle complex deployment scenarios with less code and manage your AWS infrastructure in a more efficient and straightforward way.
409
+ ---
11
410
 
12
- ## Getting Started
411
+ ##### `options`<sup>Required</sup> <a name="options" id="projen-pipelines.GitlabCDKPipeline.Initializer.parameter.options"></a>
13
412
 
14
- ### Installation
413
+ - *Type:* <a href="#projen-pipelines.GitlabCDKPipelineOptions">GitlabCDKPipelineOptions</a>
15
414
 
16
- To install the package, add the package `projen-pipelines` to your projects devDeps in your projen configuration file.
415
+ ---
17
416
 
417
+ #### Methods <a name="Methods" id="Methods"></a>
18
418
 
19
- After installing the package, you can import and use the constructs to define your CDK Pipelines.
419
+ | **Name** | **Description** |
420
+ | --- | --- |
421
+ | <code><a href="#projen-pipelines.GitlabCDKPipeline.toString">toString</a></code> | Returns a string representation of this construct. |
422
+ | <code><a href="#projen-pipelines.GitlabCDKPipeline.postSynthesize">postSynthesize</a></code> | Called after synthesis. |
423
+ | <code><a href="#projen-pipelines.GitlabCDKPipeline.preSynthesize">preSynthesize</a></code> | Called before synthesis. |
424
+ | <code><a href="#projen-pipelines.GitlabCDKPipeline.synthesize">synthesize</a></code> | Synthesizes files to the project output directory. |
20
425
 
21
- ### Usage
426
+ ---
22
427
 
23
- You can start using the constructs provided by Projen Pipelines in your AWS CDK applications. Here's a brief example:
428
+ ##### `toString` <a name="toString" id="projen-pipelines.GitlabCDKPipeline.toString"></a>
24
429
 
25
430
  ```typescript
26
- import { awscdk } from 'projen';
27
- import { CDKPipeline, CDKPipelineOptions } from 'projen-pipelines';
431
+ public toString(): string
432
+ ```
433
+
434
+ Returns a string representation of this construct.
28
435
 
29
- // Define your AWS CDK TypeScript App
30
- const app = new awscdk.AwsCdkTypeScriptApp({
31
- cdkVersion: '2.80.0',
32
- name: 'my-awesome-app',
33
- defaultReleaseBranch: 'main',
34
- devDeps: [
35
- 'projen-pipelines',
36
- ],
37
- });
436
+ ##### `postSynthesize` <a name="postSynthesize" id="projen-pipelines.GitlabCDKPipeline.postSynthesize"></a>
38
437
 
39
- // Create the pipeline
40
- new CDKPipeline(app, {
41
- stackPrefix: 'MyApp',
42
- pkgNamespace: '@company-assemblies',
43
- environments: {
44
- dev: { account: '111111111111', region: 'eu-central-1' },
45
- prod: { account: '222222222222', region: 'eu-central-1' },
46
- },
47
- });
438
+ ```typescript
439
+ public postSynthesize(): void
48
440
  ```
49
441
 
50
- After running projen (`npx projen`) a new file called `src/app.ts` will be created and contain a specialized CDK App class for your project.
442
+ Called after synthesis.
443
+
444
+ Order is *not* guaranteed.
51
445
 
52
- You can then use this in your `main.ts` to configure your deployment.
446
+ ##### `preSynthesize` <a name="preSynthesize" id="projen-pipelines.GitlabCDKPipeline.preSynthesize"></a>
53
447
 
54
448
  ```typescript
55
- import { PipelineApp } from './app';
56
- import { BackendStack } from './stack';
449
+ public preSynthesize(): void
450
+ ```
57
451
 
58
- const app = new PipelineApp({
59
- provideDevStack: (scope, id, props) => {
60
- return new BackendStack(scope, id, {
61
- ...props,
62
- apiHostname: 'api-dev',
63
- myConfigSetting: 'value-for-dev',
64
- });
65
- },
66
- provideProdStack: (scope, id, props) => {
67
- return new BackendStack(scope, id, {
68
- ...props,
69
- apiHostname: 'api',
70
- myConfigSetting: 'value-for-prod',
71
- });
72
- },
73
- providePersonalStack: (scope, id, props) => {
74
- return new BackendStack(scope, id, {
75
- ...props,
76
- apiHostname: `api-${props.stageName}`,
77
- myConfigSetting: 'value-for-personal-stage',
78
- });
79
- },
80
- });
452
+ Called before synthesis.
453
+
454
+ ##### `synthesize` <a name="synthesize" id="projen-pipelines.GitlabCDKPipeline.synthesize"></a>
81
455
 
82
- app.synth();
456
+ ```typescript
457
+ public synthesize(): void
83
458
  ```
84
459
 
85
- ### Deployment
460
+ Synthesizes files to the project output directory.
461
+
462
+ #### Static Functions <a name="Static Functions" id="Static Functions"></a>
463
+
464
+ | **Name** | **Description** |
465
+ | --- | --- |
466
+ | <code><a href="#projen-pipelines.GitlabCDKPipeline.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
467
+ | <code><a href="#projen-pipelines.GitlabCDKPipeline.isComponent">isComponent</a></code> | Test whether the given construct is a component. |
468
+
469
+ ---
86
470
 
87
- The `CDKPipeline` class creates and adds several tasks to the projen project that then can be used in your pipeline to deploy your application to AWS.
471
+ ##### `isConstruct` <a name="isConstruct" id="projen-pipelines.GitlabCDKPipeline.isConstruct"></a>
88
472
 
89
- Here's a brief description of each one:
473
+ ```typescript
474
+ import { GitlabCDKPipeline } from 'projen-pipelines'
90
475
 
91
- 1. **deploy:personal** - This task deploys the application's personal stage, which is a distinct, isolated deployment of the application. The personal stage is intended for personal use, such as testing and development.
476
+ GitlabCDKPipeline.isConstruct(x: any)
477
+ ```
92
478
 
93
- 2. **watch:personal** - This task deploys the personal stage of the application in watch mode. In this mode, the AWS CDK monitors your application source files for changes, automatically re-synthesizing and deploying when it detects any changes.
479
+ Checks if `x` is a construct.
94
480
 
95
- 3. **diff:personal** - This task compares the deployed personal stage with the current state of the application code. It's used to understand what changes would be made if the application were deployed.
481
+ Use this method instead of `instanceof` to properly detect `Construct`
482
+ instances, even when the construct library is symlinked.
96
483
 
97
- 4. **destroy:personal** - This task destroys the resources created for the personal stage of the application.
484
+ Explanation: in JavaScript, multiple copies of the `constructs` library on
485
+ disk are seen as independent, completely different libraries. As a
486
+ consequence, the class `Construct` in each copy of the `constructs` library
487
+ is seen as a different class, and an instance of one class will not test as
488
+ `instanceof` the other class. `npm install` will not create installations
489
+ like this, but users may manually symlink construct libraries together or
490
+ use a monorepo tool: in those cases, multiple copies of the `constructs`
491
+ library can be accidentally installed, and `instanceof` will behave
492
+ unpredictably. It is safest to avoid using `instanceof`, and using
493
+ this type-testing method instead.
98
494
 
99
- 5. **deploy:feature** - This task deploys the application's feature stage. The feature stage is used for new features testing before these are merged into the main branch.
495
+ ###### `x`<sup>Required</sup> <a name="x" id="projen-pipelines.GitlabCDKPipeline.isConstruct.parameter.x"></a>
100
496
 
101
- 6. **diff:feature** - This task is similar to `diff:personal`, but for the feature stage.
497
+ - *Type:* any
102
498
 
103
- 7. **destroy:feature** - This task destroys the resources created for the feature stage of the application.
499
+ Any object.
500
+
501
+ ---
104
502
 
105
- 8. **deploy:<stageName>** - This task deploys a specific stage of the application (like 'dev' or 'prod').
503
+ ##### `isComponent` <a name="isComponent" id="projen-pipelines.GitlabCDKPipeline.isComponent"></a>
106
504
 
107
- 9. **diff:<stageName>** - This task compares the specified application stage with the current state of the application code.
505
+ ```typescript
506
+ import { GitlabCDKPipeline } from 'projen-pipelines'
108
507
 
109
- 10. **publish:assets** - This task publishes the CDK assets to all accounts. This is useful when the CDK application uses assets like Docker images or files from the S3 bucket.
508
+ GitlabCDKPipeline.isComponent(x: any)
509
+ ```
110
510
 
111
- 11. **bump** - This task bumps the version based on the latest git tag and pushes the updated tag to the git repository.
511
+ Test whether the given construct is a component.
112
512
 
113
- 12. **release:push-assembly** - This task creates a manifest, bumps the version without creating a git tag, and publishes the cloud assembly to your registry.
513
+ ###### `x`<sup>Required</sup> <a name="x" id="projen-pipelines.GitlabCDKPipeline.isComponent.parameter.x"></a>
114
514
 
115
- Remember that these tasks are created and managed automatically by the `CDKPipeline` class. You can run these tasks using the `npx projen TASK_NAME` command.
515
+ - *Type:* any
116
516
 
517
+ ---
117
518
 
118
- ## Contributing
519
+ #### Properties <a name="Properties" id="Properties"></a>
119
520
 
120
- We welcome all contributions to Projen Pipelines! Here's how you can get started:
521
+ | **Name** | **Type** | **Description** |
522
+ | --- | --- | --- |
523
+ | <code><a href="#projen-pipelines.GitlabCDKPipeline.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
524
+ | <code><a href="#projen-pipelines.GitlabCDKPipeline.property.project">project</a></code> | <code>projen.Project</code> | *No description.* |
525
+ | <code><a href="#projen-pipelines.GitlabCDKPipeline.property.stackPrefix">stackPrefix</a></code> | <code>string</code> | *No description.* |
526
+ | <code><a href="#projen-pipelines.GitlabCDKPipeline.property.config">config</a></code> | <code>projen.gitlab.GitlabConfiguration</code> | *No description.* |
527
+ | <code><a href="#projen-pipelines.GitlabCDKPipeline.property.jobImage">jobImage</a></code> | <code>string</code> | *No description.* |
528
+ | <code><a href="#projen-pipelines.GitlabCDKPipeline.property.needsVersionedArtifacts">needsVersionedArtifacts</a></code> | <code>boolean</code> | *No description.* |
121
529
 
122
- 1. **Fork the Repository**: Click the 'Fork' button at the top right of this page to duplicate this repository in your GitHub account.
530
+ ---
123
531
 
124
- 2. **Clone your Fork**: Clone the forked repository to your local machine.
532
+ ##### `node`<sup>Required</sup> <a name="node" id="projen-pipelines.GitlabCDKPipeline.property.node"></a>
125
533
 
126
- ```bash
127
- git clone https://github.com/<your_username>/projen-pipelines.git
534
+ ```typescript
535
+ public readonly node: Node;
128
536
  ```
129
537
 
130
- 3. **Create a Branch**: To keep your work organized, create a branch for your contribution.
538
+ - *Type:* constructs.Node
131
539
 
132
- ```bash
133
- git checkout -b my-branch
134
- ```
135
-
136
- 4. **Make your Changes**: Make your changes, additions, or fixes to the codebase. Remember to follow the existing code style.
540
+ The tree node.
137
541
 
138
- 5. **Test your Changes**: Before committing your changes, make sure to test them to ensure they work as expected and do not introduce bugs.
542
+ ---
139
543
 
140
- 6. **Commit your Changes**: Commit your changes with a descriptive commit message using conventional commit messages.
544
+ ##### `project`<sup>Required</sup> <a name="project" id="projen-pipelines.GitlabCDKPipeline.property.project"></a>
141
545
 
142
- ```bash
143
- git commit -m "feat: Your descriptive commit message"
546
+ ```typescript
547
+ public readonly project: Project;
144
548
  ```
145
549
 
146
- 7. **Push to your Fork**: Push your commits to the branch in your forked repository.
550
+ - *Type:* projen.Project
551
+
552
+ ---
553
+
554
+ ##### `stackPrefix`<sup>Required</sup> <a name="stackPrefix" id="projen-pipelines.GitlabCDKPipeline.property.stackPrefix"></a>
147
555
 
148
- ```bash
149
- git push origin my-branch
556
+ ```typescript
557
+ public readonly stackPrefix: string;
150
558
  ```
151
559
 
152
- 8. **Submit a Pull Request**: Once your changes are ready to be reviewed, create a pull request from your forked repository's branch into the `main` branch of this repository.
560
+ - *Type:* string
153
561
 
154
- Your pull request will be reviewed and hopefully merged quickly. Thanks for contributing!
562
+ ---
155
563
 
156
- # API Reference <a name="API Reference" id="api-reference"></a>
564
+ ##### `config`<sup>Required</sup> <a name="config" id="projen-pipelines.GitlabCDKPipeline.property.config"></a>
157
565
 
566
+ ```typescript
567
+ public readonly config: GitlabConfiguration;
568
+ ```
158
569
 
159
- ## Structs <a name="Structs" id="Structs"></a>
570
+ - *Type:* projen.gitlab.GitlabConfiguration
160
571
 
161
- ### AssetUploadStageOptions <a name="AssetUploadStageOptions" id="projen-pipelines.AssetUploadStageOptions"></a>
572
+ ---
162
573
 
163
- #### Initializer <a name="Initializer" id="projen-pipelines.AssetUploadStageOptions.Initializer"></a>
574
+ ##### `jobImage`<sup>Required</sup> <a name="jobImage" id="projen-pipelines.GitlabCDKPipeline.property.jobImage"></a>
164
575
 
165
576
  ```typescript
166
- import { AssetUploadStageOptions } from 'projen-pipelines'
167
-
168
- const assetUploadStageOptions: AssetUploadStageOptions = { ... }
577
+ public readonly jobImage: string;
169
578
  ```
170
579
 
171
- #### Properties <a name="Properties" id="Properties"></a>
172
-
173
- | **Name** | **Type** | **Description** |
174
- | --- | --- | --- |
175
- | <code><a href="#projen-pipelines.AssetUploadStageOptions.property.commands">commands</a></code> | <code>string[]</code> | *No description.* |
580
+ - *Type:* string
176
581
 
177
582
  ---
178
583
 
179
- ##### `commands`<sup>Required</sup> <a name="commands" id="projen-pipelines.AssetUploadStageOptions.property.commands"></a>
584
+ ##### `needsVersionedArtifacts`<sup>Required</sup> <a name="needsVersionedArtifacts" id="projen-pipelines.GitlabCDKPipeline.property.needsVersionedArtifacts"></a>
180
585
 
181
586
  ```typescript
182
- public readonly commands: string[];
587
+ public readonly needsVersionedArtifacts: boolean;
183
588
  ```
184
589
 
185
- - *Type:* string[]
590
+ - *Type:* boolean
186
591
 
187
592
  ---
188
593
 
594
+
595
+ ## Structs <a name="Structs" id="Structs"></a>
596
+
189
597
  ### CDKPipelineOptions <a name="CDKPipelineOptions" id="projen-pipelines.CDKPipelineOptions"></a>
190
598
 
191
599
  The CDKPipelineOptions interface is designed to provide configuration options for a CDK (Cloud Development Kit) pipeline.
@@ -206,11 +614,10 @@ const cDKPipelineOptions: CDKPipelineOptions = { ... }
206
614
 
207
615
  | **Name** | **Type** | **Description** |
208
616
  | --- | --- | --- |
209
- | <code><a href="#projen-pipelines.CDKPipelineOptions.property.environments">environments</a></code> | <code><a href="#projen-pipelines.EnvironmentMap">EnvironmentMap</a></code> | This is a map of environments to be used in the pipeline. |
210
617
  | <code><a href="#projen-pipelines.CDKPipelineOptions.property.pkgNamespace">pkgNamespace</a></code> | <code>string</code> | This field determines the NPM namespace to be used when packaging CDK cloud assemblies. |
211
- | <code><a href="#projen-pipelines.CDKPipelineOptions.property.deploymentType">deploymentType</a></code> | <code><a href="#projen-pipelines.DeploymentType">DeploymentType</a></code> | This field specifies the type of pipeline to create. |
212
- | <code><a href="#projen-pipelines.CDKPipelineOptions.property.engine">engine</a></code> | <code><a href="#projen-pipelines.PipelineEngine">PipelineEngine</a></code> | This field determines the CI/CD tooling that will be used to run the pipeline. |
213
- | <code><a href="#projen-pipelines.CDKPipelineOptions.property.githubConfig">githubConfig</a></code> | <code><a href="#projen-pipelines.GithubEngineConfig">GithubEngineConfig</a></code> | *No description.* |
618
+ | <code><a href="#projen-pipelines.CDKPipelineOptions.property.stages">stages</a></code> | <code><a href="#projen-pipelines.DeploymentStage">DeploymentStage</a>[]</code> | *No description.* |
619
+ | <code><a href="#projen-pipelines.CDKPipelineOptions.property.featureStages">featureStages</a></code> | <code><a href="#projen-pipelines.StageOptions">StageOptions</a></code> | *No description.* |
620
+ | <code><a href="#projen-pipelines.CDKPipelineOptions.property.personalStage">personalStage</a></code> | <code><a href="#projen-pipelines.StageOptions">StageOptions</a></code> | *No description.* |
214
621
  | <code><a href="#projen-pipelines.CDKPipelineOptions.property.postSynthCommands">postSynthCommands</a></code> | <code>string[]</code> | *No description.* |
215
622
  | <code><a href="#projen-pipelines.CDKPipelineOptions.property.preInstallCommands">preInstallCommands</a></code> | <code>string[]</code> | *No description.* |
216
623
  | <code><a href="#projen-pipelines.CDKPipelineOptions.property.preSynthCommands">preSynthCommands</a></code> | <code>string[]</code> | *No description.* |
@@ -218,22 +625,6 @@ const cDKPipelineOptions: CDKPipelineOptions = { ... }
218
625
 
219
626
  ---
220
627
 
221
- ##### `environments`<sup>Required</sup> <a name="environments" id="projen-pipelines.CDKPipelineOptions.property.environments"></a>
222
-
223
- ```typescript
224
- public readonly environments: EnvironmentMap;
225
- ```
226
-
227
- - *Type:* <a href="#projen-pipelines.EnvironmentMap">EnvironmentMap</a>
228
-
229
- This is a map of environments to be used in the pipeline.
230
-
231
- It allows the
232
- pipeline to deploy to different environments based on the stage of the
233
- deployment process, whether that's a personal, feature, dev, or prod stage.
234
-
235
- ---
236
-
237
628
  ##### `pkgNamespace`<sup>Required</sup> <a name="pkgNamespace" id="projen-pipelines.CDKPipelineOptions.property.pkgNamespace"></a>
238
629
 
239
630
  ```typescript
@@ -249,46 +640,33 @@ better organization and ease of management.
249
640
 
250
641
  ---
251
642
 
252
- ##### `deploymentType`<sup>Optional</sup> <a name="deploymentType" id="projen-pipelines.CDKPipelineOptions.property.deploymentType"></a>
643
+ ##### `stages`<sup>Required</sup> <a name="stages" id="projen-pipelines.CDKPipelineOptions.property.stages"></a>
253
644
 
254
645
  ```typescript
255
- public readonly deploymentType: DeploymentType;
646
+ public readonly stages: DeploymentStage[];
256
647
  ```
257
648
 
258
- - *Type:* <a href="#projen-pipelines.DeploymentType">DeploymentType</a>
259
- - *Default:* CONTINUOUS_DELIVERY
260
-
261
- This field specifies the type of pipeline to create.
262
-
263
- If set to CONTINUOUS_DEPLOYMENT,
264
- every commit is deployed as far as possible, hopefully into production. If set to
265
- CONTINUOUS_DELIVERY, every commit is built and all assets are prepared for a later deployment.
649
+ - *Type:* <a href="#projen-pipelines.DeploymentStage">DeploymentStage</a>[]
266
650
 
267
651
  ---
268
652
 
269
- ##### `engine`<sup>Optional</sup> <a name="engine" id="projen-pipelines.CDKPipelineOptions.property.engine"></a>
653
+ ##### `featureStages`<sup>Optional</sup> <a name="featureStages" id="projen-pipelines.CDKPipelineOptions.property.featureStages"></a>
270
654
 
271
655
  ```typescript
272
- public readonly engine: PipelineEngine;
656
+ public readonly featureStages: StageOptions;
273
657
  ```
274
658
 
275
- - *Type:* <a href="#projen-pipelines.PipelineEngine">PipelineEngine</a>
276
- - *Default:* tries to derive it from the projects configuration
277
-
278
- This field determines the CI/CD tooling that will be used to run the pipeline.
279
-
280
- The component
281
- will render workflows for the given system. Options include GitHub and GitLab.
659
+ - *Type:* <a href="#projen-pipelines.StageOptions">StageOptions</a>
282
660
 
283
661
  ---
284
662
 
285
- ##### `githubConfig`<sup>Optional</sup> <a name="githubConfig" id="projen-pipelines.CDKPipelineOptions.property.githubConfig"></a>
663
+ ##### `personalStage`<sup>Optional</sup> <a name="personalStage" id="projen-pipelines.CDKPipelineOptions.property.personalStage"></a>
286
664
 
287
665
  ```typescript
288
- public readonly githubConfig: GithubEngineConfig;
666
+ public readonly personalStage: StageOptions;
289
667
  ```
290
668
 
291
- - *Type:* <a href="#projen-pipelines.GithubEngineConfig">GithubEngineConfig</a>
669
+ - *Type:* <a href="#projen-pipelines.StageOptions">StageOptions</a>
292
670
 
293
671
  ---
294
672
 
@@ -335,53 +713,53 @@ This field is used to define a prefix for the AWS Stack resources created during
335
713
 
336
714
  ---
337
715
 
338
- ### DeployStageOptions <a name="DeployStageOptions" id="projen-pipelines.DeployStageOptions"></a>
716
+ ### DeploymentStage <a name="DeploymentStage" id="projen-pipelines.DeploymentStage"></a>
339
717
 
340
- #### Initializer <a name="Initializer" id="projen-pipelines.DeployStageOptions.Initializer"></a>
718
+ #### Initializer <a name="Initializer" id="projen-pipelines.DeploymentStage.Initializer"></a>
341
719
 
342
720
  ```typescript
343
- import { DeployStageOptions } from 'projen-pipelines'
721
+ import { DeploymentStage } from 'projen-pipelines'
344
722
 
345
- const deployStageOptions: DeployStageOptions = { ... }
723
+ const deploymentStage: DeploymentStage = { ... }
346
724
  ```
347
725
 
348
726
  #### Properties <a name="Properties" id="Properties"></a>
349
727
 
350
728
  | **Name** | **Type** | **Description** |
351
729
  | --- | --- | --- |
352
- | <code><a href="#projen-pipelines.DeployStageOptions.property.commands">commands</a></code> | <code>string[]</code> | *No description.* |
353
- | <code><a href="#projen-pipelines.DeployStageOptions.property.env">env</a></code> | <code><a href="#projen-pipelines.Environment">Environment</a></code> | *No description.* |
354
- | <code><a href="#projen-pipelines.DeployStageOptions.property.stageName">stageName</a></code> | <code>string</code> | *No description.* |
730
+ | <code><a href="#projen-pipelines.DeploymentStage.property.env">env</a></code> | <code><a href="#projen-pipelines.Environment">Environment</a></code> | *No description.* |
731
+ | <code><a href="#projen-pipelines.DeploymentStage.property.name">name</a></code> | <code>string</code> | *No description.* |
732
+ | <code><a href="#projen-pipelines.DeploymentStage.property.manualApproval">manualApproval</a></code> | <code>boolean</code> | *No description.* |
355
733
 
356
734
  ---
357
735
 
358
- ##### `commands`<sup>Required</sup> <a name="commands" id="projen-pipelines.DeployStageOptions.property.commands"></a>
736
+ ##### `env`<sup>Required</sup> <a name="env" id="projen-pipelines.DeploymentStage.property.env"></a>
359
737
 
360
738
  ```typescript
361
- public readonly commands: string[];
739
+ public readonly env: Environment;
362
740
  ```
363
741
 
364
- - *Type:* string[]
742
+ - *Type:* <a href="#projen-pipelines.Environment">Environment</a>
365
743
 
366
744
  ---
367
745
 
368
- ##### `env`<sup>Required</sup> <a name="env" id="projen-pipelines.DeployStageOptions.property.env"></a>
746
+ ##### `name`<sup>Required</sup> <a name="name" id="projen-pipelines.DeploymentStage.property.name"></a>
369
747
 
370
748
  ```typescript
371
- public readonly env: Environment;
749
+ public readonly name: string;
372
750
  ```
373
751
 
374
- - *Type:* <a href="#projen-pipelines.Environment">Environment</a>
752
+ - *Type:* string
375
753
 
376
754
  ---
377
755
 
378
- ##### `stageName`<sup>Required</sup> <a name="stageName" id="projen-pipelines.DeployStageOptions.property.stageName"></a>
756
+ ##### `manualApproval`<sup>Optional</sup> <a name="manualApproval" id="projen-pipelines.DeploymentStage.property.manualApproval"></a>
379
757
 
380
758
  ```typescript
381
- public readonly stageName: string;
759
+ public readonly manualApproval: boolean;
382
760
  ```
383
761
 
384
- - *Type:* string
762
+ - *Type:* boolean
385
763
 
386
764
  ---
387
765
 
@@ -440,542 +818,418 @@ availability, and pricing.
440
818
 
441
819
  ---
442
820
 
443
- ### EnvironmentMap <a name="EnvironmentMap" id="projen-pipelines.EnvironmentMap"></a>
821
+ ### GithubCDKPipelineOptions <a name="GithubCDKPipelineOptions" id="projen-pipelines.GithubCDKPipelineOptions"></a>
444
822
 
445
- The EnvironmentMap interface is used to maintain a mapping of different types of environments used in the application.
446
-
447
- Each type of environment - personal,
448
- feature, dev, and prod, represents a different stage of development or usage.
449
-
450
- #### Initializer <a name="Initializer" id="projen-pipelines.EnvironmentMap.Initializer"></a>
823
+ #### Initializer <a name="Initializer" id="projen-pipelines.GithubCDKPipelineOptions.Initializer"></a>
451
824
 
452
825
  ```typescript
453
- import { EnvironmentMap } from 'projen-pipelines'
826
+ import { GithubCDKPipelineOptions } from 'projen-pipelines'
454
827
 
455
- const environmentMap: EnvironmentMap = { ... }
828
+ const githubCDKPipelineOptions: GithubCDKPipelineOptions = { ... }
456
829
  ```
457
830
 
458
831
  #### Properties <a name="Properties" id="Properties"></a>
459
832
 
460
833
  | **Name** | **Type** | **Description** |
461
834
  | --- | --- | --- |
462
- | <code><a href="#projen-pipelines.EnvironmentMap.property.dev">dev</a></code> | <code><a href="#projen-pipelines.Environment">Environment</a></code> | The dev environment is a shared environment where developers integrate their feature changes. |
463
- | <code><a href="#projen-pipelines.EnvironmentMap.property.feature">feature</a></code> | <code><a href="#projen-pipelines.Environment">Environment</a></code> | The feature environment is typically used for developing specific features in isolation from the main codebase. |
464
- | <code><a href="#projen-pipelines.EnvironmentMap.property.personal">personal</a></code> | <code><a href="#projen-pipelines.Environment">Environment</a></code> | The personal environment is usually used for individual development and testing, allowing developers to freely test and experiment without affecting the shared development environment. |
465
- | <code><a href="#projen-pipelines.EnvironmentMap.property.prod">prod</a></code> | <code><a href="#projen-pipelines.Environment">Environment</a></code> | The prod environment is where the live, user-facing application runs. |
835
+ | <code><a href="#projen-pipelines.GithubCDKPipelineOptions.property.pkgNamespace">pkgNamespace</a></code> | <code>string</code> | This field determines the NPM namespace to be used when packaging CDK cloud assemblies. |
836
+ | <code><a href="#projen-pipelines.GithubCDKPipelineOptions.property.stages">stages</a></code> | <code><a href="#projen-pipelines.DeploymentStage">DeploymentStage</a>[]</code> | *No description.* |
837
+ | <code><a href="#projen-pipelines.GithubCDKPipelineOptions.property.featureStages">featureStages</a></code> | <code><a href="#projen-pipelines.StageOptions">StageOptions</a></code> | *No description.* |
838
+ | <code><a href="#projen-pipelines.GithubCDKPipelineOptions.property.personalStage">personalStage</a></code> | <code><a href="#projen-pipelines.StageOptions">StageOptions</a></code> | *No description.* |
839
+ | <code><a href="#projen-pipelines.GithubCDKPipelineOptions.property.postSynthCommands">postSynthCommands</a></code> | <code>string[]</code> | *No description.* |
840
+ | <code><a href="#projen-pipelines.GithubCDKPipelineOptions.property.preInstallCommands">preInstallCommands</a></code> | <code>string[]</code> | *No description.* |
841
+ | <code><a href="#projen-pipelines.GithubCDKPipelineOptions.property.preSynthCommands">preSynthCommands</a></code> | <code>string[]</code> | *No description.* |
842
+ | <code><a href="#projen-pipelines.GithubCDKPipelineOptions.property.stackPrefix">stackPrefix</a></code> | <code>string</code> | This field is used to define a prefix for the AWS Stack resources created during the pipeline's operation. |
843
+ | <code><a href="#projen-pipelines.GithubCDKPipelineOptions.property.iamRoleArns">iamRoleArns</a></code> | <code><a href="#projen-pipelines.GithubIamRoleConfig">GithubIamRoleConfig</a></code> | *No description.* |
466
844
 
467
845
  ---
468
846
 
469
- ##### `dev`<sup>Required</sup> <a name="dev" id="projen-pipelines.EnvironmentMap.property.dev"></a>
847
+ ##### `pkgNamespace`<sup>Required</sup> <a name="pkgNamespace" id="projen-pipelines.GithubCDKPipelineOptions.property.pkgNamespace"></a>
470
848
 
471
849
  ```typescript
472
- public readonly dev: Environment;
850
+ public readonly pkgNamespace: string;
473
851
  ```
474
852
 
475
- - *Type:* <a href="#projen-pipelines.Environment">Environment</a>
853
+ - *Type:* string
476
854
 
477
- The dev environment is a shared environment where developers integrate their feature changes.
855
+ This field determines the NPM namespace to be used when packaging CDK cloud assemblies.
478
856
 
479
- It represents the latest version of the application
480
- but may not be as stable as the production environment.
857
+ A namespace helps group related resources together, providing
858
+ better organization and ease of management.
481
859
 
482
860
  ---
483
861
 
484
- ##### `feature`<sup>Required</sup> <a name="feature" id="projen-pipelines.EnvironmentMap.property.feature"></a>
862
+ ##### `stages`<sup>Required</sup> <a name="stages" id="projen-pipelines.GithubCDKPipelineOptions.property.stages"></a>
485
863
 
486
864
  ```typescript
487
- public readonly feature: Environment;
865
+ public readonly stages: DeploymentStage[];
488
866
  ```
489
867
 
490
- - *Type:* <a href="#projen-pipelines.Environment">Environment</a>
491
-
492
- The feature environment is typically used for developing specific features in isolation from the main codebase.
493
-
494
- This allows developers to work on
495
- individual features without impacting the stability of the dev or prod
496
- environments.
868
+ - *Type:* <a href="#projen-pipelines.DeploymentStage">DeploymentStage</a>[]
497
869
 
498
870
  ---
499
871
 
500
- ##### `personal`<sup>Required</sup> <a name="personal" id="projen-pipelines.EnvironmentMap.property.personal"></a>
872
+ ##### `featureStages`<sup>Optional</sup> <a name="featureStages" id="projen-pipelines.GithubCDKPipelineOptions.property.featureStages"></a>
501
873
 
502
874
  ```typescript
503
- public readonly personal: Environment;
875
+ public readonly featureStages: StageOptions;
504
876
  ```
505
877
 
506
- - *Type:* <a href="#projen-pipelines.Environment">Environment</a>
507
-
508
- The personal environment is usually used for individual development and testing, allowing developers to freely test and experiment without affecting the shared development environment.
878
+ - *Type:* <a href="#projen-pipelines.StageOptions">StageOptions</a>
509
879
 
510
880
  ---
511
881
 
512
- ##### `prod`<sup>Required</sup> <a name="prod" id="projen-pipelines.EnvironmentMap.property.prod"></a>
882
+ ##### `personalStage`<sup>Optional</sup> <a name="personalStage" id="projen-pipelines.GithubCDKPipelineOptions.property.personalStage"></a>
513
883
 
514
884
  ```typescript
515
- public readonly prod: Environment;
885
+ public readonly personalStage: StageOptions;
516
886
  ```
517
887
 
518
- - *Type:* <a href="#projen-pipelines.Environment">Environment</a>
519
-
520
- The prod environment is where the live, user-facing application runs.
521
-
522
- It should be stable and only receive thoroughly tested changes.
888
+ - *Type:* <a href="#projen-pipelines.StageOptions">StageOptions</a>
523
889
 
524
890
  ---
525
891
 
526
- ### GithubEngineConfig <a name="GithubEngineConfig" id="projen-pipelines.GithubEngineConfig"></a>
527
-
528
- #### Initializer <a name="Initializer" id="projen-pipelines.GithubEngineConfig.Initializer"></a>
892
+ ##### `postSynthCommands`<sup>Optional</sup> <a name="postSynthCommands" id="projen-pipelines.GithubCDKPipelineOptions.property.postSynthCommands"></a>
529
893
 
530
894
  ```typescript
531
- import { GithubEngineConfig } from 'projen-pipelines'
532
-
533
- const githubEngineConfig: GithubEngineConfig = { ... }
895
+ public readonly postSynthCommands: string[];
534
896
  ```
535
897
 
536
- #### Properties <a name="Properties" id="Properties"></a>
537
-
538
- | **Name** | **Type** | **Description** |
539
- | --- | --- | --- |
540
- | <code><a href="#projen-pipelines.GithubEngineConfig.property.awsRoleArnForAssetPublishing">awsRoleArnForAssetPublishing</a></code> | <code>string</code> | *No description.* |
541
- | <code><a href="#projen-pipelines.GithubEngineConfig.property.awsRoleArnForDeployment">awsRoleArnForDeployment</a></code> | <code><a href="#projen-pipelines.RoleMap">RoleMap</a></code> | *No description.* |
542
- | <code><a href="#projen-pipelines.GithubEngineConfig.property.awsRoleArnForSynth">awsRoleArnForSynth</a></code> | <code>string</code> | *No description.* |
543
- | <code><a href="#projen-pipelines.GithubEngineConfig.property.defaultAwsRoleArn">defaultAwsRoleArn</a></code> | <code>string</code> | *No description.* |
898
+ - *Type:* string[]
544
899
 
545
900
  ---
546
901
 
547
- ##### `awsRoleArnForAssetPublishing`<sup>Optional</sup> <a name="awsRoleArnForAssetPublishing" id="projen-pipelines.GithubEngineConfig.property.awsRoleArnForAssetPublishing"></a>
902
+ ##### `preInstallCommands`<sup>Optional</sup> <a name="preInstallCommands" id="projen-pipelines.GithubCDKPipelineOptions.property.preInstallCommands"></a>
548
903
 
549
904
  ```typescript
550
- public readonly awsRoleArnForAssetPublishing: string;
905
+ public readonly preInstallCommands: string[];
551
906
  ```
552
907
 
553
- - *Type:* string
908
+ - *Type:* string[]
554
909
 
555
910
  ---
556
911
 
557
- ##### `awsRoleArnForDeployment`<sup>Optional</sup> <a name="awsRoleArnForDeployment" id="projen-pipelines.GithubEngineConfig.property.awsRoleArnForDeployment"></a>
912
+ ##### `preSynthCommands`<sup>Optional</sup> <a name="preSynthCommands" id="projen-pipelines.GithubCDKPipelineOptions.property.preSynthCommands"></a>
558
913
 
559
914
  ```typescript
560
- public readonly awsRoleArnForDeployment: RoleMap;
915
+ public readonly preSynthCommands: string[];
561
916
  ```
562
917
 
563
- - *Type:* <a href="#projen-pipelines.RoleMap">RoleMap</a>
918
+ - *Type:* string[]
564
919
 
565
920
  ---
566
921
 
567
- ##### `awsRoleArnForSynth`<sup>Optional</sup> <a name="awsRoleArnForSynth" id="projen-pipelines.GithubEngineConfig.property.awsRoleArnForSynth"></a>
922
+ ##### `stackPrefix`<sup>Optional</sup> <a name="stackPrefix" id="projen-pipelines.GithubCDKPipelineOptions.property.stackPrefix"></a>
568
923
 
569
924
  ```typescript
570
- public readonly awsRoleArnForSynth: string;
925
+ public readonly stackPrefix: string;
571
926
  ```
572
927
 
573
928
  - *Type:* string
929
+ - *Default:* project name
930
+
931
+ This field is used to define a prefix for the AWS Stack resources created during the pipeline's operation.
574
932
 
575
933
  ---
576
934
 
577
- ##### `defaultAwsRoleArn`<sup>Optional</sup> <a name="defaultAwsRoleArn" id="projen-pipelines.GithubEngineConfig.property.defaultAwsRoleArn"></a>
935
+ ##### `iamRoleArns`<sup>Required</sup> <a name="iamRoleArns" id="projen-pipelines.GithubCDKPipelineOptions.property.iamRoleArns"></a>
578
936
 
579
937
  ```typescript
580
- public readonly defaultAwsRoleArn: string;
938
+ public readonly iamRoleArns: GithubIamRoleConfig;
581
939
  ```
582
940
 
583
- - *Type:* string
941
+ - *Type:* <a href="#projen-pipelines.GithubIamRoleConfig">GithubIamRoleConfig</a>
584
942
 
585
943
  ---
586
944
 
587
- ### RoleMap <a name="RoleMap" id="projen-pipelines.RoleMap"></a>
945
+ ### GithubIamRoleConfig <a name="GithubIamRoleConfig" id="projen-pipelines.GithubIamRoleConfig"></a>
588
946
 
589
- #### Initializer <a name="Initializer" id="projen-pipelines.RoleMap.Initializer"></a>
947
+ #### Initializer <a name="Initializer" id="projen-pipelines.GithubIamRoleConfig.Initializer"></a>
590
948
 
591
949
  ```typescript
592
- import { RoleMap } from 'projen-pipelines'
950
+ import { GithubIamRoleConfig } from 'projen-pipelines'
593
951
 
594
- const roleMap: RoleMap = { ... }
952
+ const githubIamRoleConfig: GithubIamRoleConfig = { ... }
595
953
  ```
596
954
 
597
955
  #### Properties <a name="Properties" id="Properties"></a>
598
956
 
599
957
  | **Name** | **Type** | **Description** |
600
958
  | --- | --- | --- |
601
- | <code><a href="#projen-pipelines.RoleMap.property.dev">dev</a></code> | <code>string</code> | *No description.* |
602
- | <code><a href="#projen-pipelines.RoleMap.property.feature">feature</a></code> | <code>string</code> | *No description.* |
603
- | <code><a href="#projen-pipelines.RoleMap.property.prod">prod</a></code> | <code>string</code> | *No description.* |
604
-
605
- ---
606
-
607
- ##### `dev`<sup>Optional</sup> <a name="dev" id="projen-pipelines.RoleMap.property.dev"></a>
608
-
609
- ```typescript
610
- public readonly dev: string;
611
- ```
612
-
613
- - *Type:* string
959
+ | <code><a href="#projen-pipelines.GithubIamRoleConfig.property.assetPublishing">assetPublishing</a></code> | <code>string</code> | *No description.* |
960
+ | <code><a href="#projen-pipelines.GithubIamRoleConfig.property.default">default</a></code> | <code>string</code> | *No description.* |
961
+ | <code><a href="#projen-pipelines.GithubIamRoleConfig.property.deployment">deployment</a></code> | <code>{[ key: string ]: string}</code> | *No description.* |
962
+ | <code><a href="#projen-pipelines.GithubIamRoleConfig.property.synth">synth</a></code> | <code>string</code> | *No description.* |
614
963
 
615
964
  ---
616
965
 
617
- ##### `feature`<sup>Optional</sup> <a name="feature" id="projen-pipelines.RoleMap.property.feature"></a>
966
+ ##### `assetPublishing`<sup>Optional</sup> <a name="assetPublishing" id="projen-pipelines.GithubIamRoleConfig.property.assetPublishing"></a>
618
967
 
619
968
  ```typescript
620
- public readonly feature: string;
969
+ public readonly assetPublishing: string;
621
970
  ```
622
971
 
623
972
  - *Type:* string
624
973
 
625
974
  ---
626
975
 
627
- ##### `prod`<sup>Optional</sup> <a name="prod" id="projen-pipelines.RoleMap.property.prod"></a>
976
+ ##### `default`<sup>Optional</sup> <a name="default" id="projen-pipelines.GithubIamRoleConfig.property.default"></a>
628
977
 
629
978
  ```typescript
630
- public readonly prod: string;
979
+ public readonly default: string;
631
980
  ```
632
981
 
633
982
  - *Type:* string
634
983
 
635
984
  ---
636
985
 
637
- ### SynthStageOptions <a name="SynthStageOptions" id="projen-pipelines.SynthStageOptions"></a>
638
-
639
- #### Initializer <a name="Initializer" id="projen-pipelines.SynthStageOptions.Initializer"></a>
986
+ ##### `deployment`<sup>Optional</sup> <a name="deployment" id="projen-pipelines.GithubIamRoleConfig.property.deployment"></a>
640
987
 
641
988
  ```typescript
642
- import { SynthStageOptions } from 'projen-pipelines'
643
-
644
- const synthStageOptions: SynthStageOptions = { ... }
989
+ public readonly deployment: {[ key: string ]: string};
645
990
  ```
646
991
 
647
- #### Properties <a name="Properties" id="Properties"></a>
648
-
649
- | **Name** | **Type** | **Description** |
650
- | --- | --- | --- |
651
- | <code><a href="#projen-pipelines.SynthStageOptions.property.commands">commands</a></code> | <code>string[]</code> | *No description.* |
992
+ - *Type:* {[ key: string ]: string}
652
993
 
653
994
  ---
654
995
 
655
- ##### `commands`<sup>Required</sup> <a name="commands" id="projen-pipelines.SynthStageOptions.property.commands"></a>
996
+ ##### `synth`<sup>Optional</sup> <a name="synth" id="projen-pipelines.GithubIamRoleConfig.property.synth"></a>
656
997
 
657
998
  ```typescript
658
- public readonly commands: string[];
999
+ public readonly synth: string;
659
1000
  ```
660
1001
 
661
- - *Type:* string[]
1002
+ - *Type:* string
662
1003
 
663
1004
  ---
664
1005
 
665
- ## Classes <a name="Classes" id="Classes"></a>
1006
+ ### GitlabCDKPipelineOptions <a name="GitlabCDKPipelineOptions" id="projen-pipelines.GitlabCDKPipelineOptions"></a>
666
1007
 
667
- ### BaseEngine <a name="BaseEngine" id="projen-pipelines.BaseEngine"></a>
668
-
669
- #### Initializers <a name="Initializers" id="projen-pipelines.BaseEngine.Initializer"></a>
1008
+ #### Initializer <a name="Initializer" id="projen-pipelines.GitlabCDKPipelineOptions.Initializer"></a>
670
1009
 
671
1010
  ```typescript
672
- import { BaseEngine } from 'projen-pipelines'
1011
+ import { GitlabCDKPipelineOptions } from 'projen-pipelines'
673
1012
 
674
- new BaseEngine(app: AwsCdkTypeScriptApp, props: CDKPipelineOptions, pipeline: CDKPipeline)
1013
+ const gitlabCDKPipelineOptions: GitlabCDKPipelineOptions = { ... }
675
1014
  ```
676
1015
 
1016
+ #### Properties <a name="Properties" id="Properties"></a>
1017
+
677
1018
  | **Name** | **Type** | **Description** |
678
1019
  | --- | --- | --- |
679
- | <code><a href="#projen-pipelines.BaseEngine.Initializer.parameter.app">app</a></code> | <code>projen.awscdk.AwsCdkTypeScriptApp</code> | *No description.* |
680
- | <code><a href="#projen-pipelines.BaseEngine.Initializer.parameter.props">props</a></code> | <code><a href="#projen-pipelines.CDKPipelineOptions">CDKPipelineOptions</a></code> | *No description.* |
681
- | <code><a href="#projen-pipelines.BaseEngine.Initializer.parameter.pipeline">pipeline</a></code> | <code><a href="#projen-pipelines.CDKPipeline">CDKPipeline</a></code> | *No description.* |
682
-
683
- ---
684
-
685
- ##### `app`<sup>Required</sup> <a name="app" id="projen-pipelines.BaseEngine.Initializer.parameter.app"></a>
686
-
687
- - *Type:* projen.awscdk.AwsCdkTypeScriptApp
688
-
689
- ---
690
-
691
- ##### `props`<sup>Required</sup> <a name="props" id="projen-pipelines.BaseEngine.Initializer.parameter.props"></a>
692
-
693
- - *Type:* <a href="#projen-pipelines.CDKPipelineOptions">CDKPipelineOptions</a>
1020
+ | <code><a href="#projen-pipelines.GitlabCDKPipelineOptions.property.pkgNamespace">pkgNamespace</a></code> | <code>string</code> | This field determines the NPM namespace to be used when packaging CDK cloud assemblies. |
1021
+ | <code><a href="#projen-pipelines.GitlabCDKPipelineOptions.property.stages">stages</a></code> | <code><a href="#projen-pipelines.DeploymentStage">DeploymentStage</a>[]</code> | *No description.* |
1022
+ | <code><a href="#projen-pipelines.GitlabCDKPipelineOptions.property.featureStages">featureStages</a></code> | <code><a href="#projen-pipelines.StageOptions">StageOptions</a></code> | *No description.* |
1023
+ | <code><a href="#projen-pipelines.GitlabCDKPipelineOptions.property.personalStage">personalStage</a></code> | <code><a href="#projen-pipelines.StageOptions">StageOptions</a></code> | *No description.* |
1024
+ | <code><a href="#projen-pipelines.GitlabCDKPipelineOptions.property.postSynthCommands">postSynthCommands</a></code> | <code>string[]</code> | *No description.* |
1025
+ | <code><a href="#projen-pipelines.GitlabCDKPipelineOptions.property.preInstallCommands">preInstallCommands</a></code> | <code>string[]</code> | *No description.* |
1026
+ | <code><a href="#projen-pipelines.GitlabCDKPipelineOptions.property.preSynthCommands">preSynthCommands</a></code> | <code>string[]</code> | *No description.* |
1027
+ | <code><a href="#projen-pipelines.GitlabCDKPipelineOptions.property.stackPrefix">stackPrefix</a></code> | <code>string</code> | This field is used to define a prefix for the AWS Stack resources created during the pipeline's operation. |
1028
+ | <code><a href="#projen-pipelines.GitlabCDKPipelineOptions.property.iamRoleArns">iamRoleArns</a></code> | <code><a href="#projen-pipelines.GitlabIamRoleConfig">GitlabIamRoleConfig</a></code> | *No description.* |
1029
+ | <code><a href="#projen-pipelines.GitlabCDKPipelineOptions.property.image">image</a></code> | <code>string</code> | *No description.* |
694
1030
 
695
1031
  ---
696
1032
 
697
- ##### `pipeline`<sup>Required</sup> <a name="pipeline" id="projen-pipelines.BaseEngine.Initializer.parameter.pipeline"></a>
1033
+ ##### `pkgNamespace`<sup>Required</sup> <a name="pkgNamespace" id="projen-pipelines.GitlabCDKPipelineOptions.property.pkgNamespace"></a>
698
1034
 
699
- - *Type:* <a href="#projen-pipelines.CDKPipeline">CDKPipeline</a>
1035
+ ```typescript
1036
+ public readonly pkgNamespace: string;
1037
+ ```
700
1038
 
701
- ---
1039
+ - *Type:* string
702
1040
 
703
- #### Methods <a name="Methods" id="Methods"></a>
1041
+ This field determines the NPM namespace to be used when packaging CDK cloud assemblies.
704
1042
 
705
- | **Name** | **Description** |
706
- | --- | --- |
707
- | <code><a href="#projen-pipelines.BaseEngine.createAssetUpload">createAssetUpload</a></code> | *No description.* |
708
- | <code><a href="#projen-pipelines.BaseEngine.createDeployment">createDeployment</a></code> | *No description.* |
709
- | <code><a href="#projen-pipelines.BaseEngine.createSynth">createSynth</a></code> | *No description.* |
1043
+ A namespace helps group related resources together, providing
1044
+ better organization and ease of management.
710
1045
 
711
1046
  ---
712
1047
 
713
- ##### `createAssetUpload` <a name="createAssetUpload" id="projen-pipelines.BaseEngine.createAssetUpload"></a>
1048
+ ##### `stages`<sup>Required</sup> <a name="stages" id="projen-pipelines.GitlabCDKPipelineOptions.property.stages"></a>
714
1049
 
715
1050
  ```typescript
716
- public createAssetUpload(options: AssetUploadStageOptions): void
1051
+ public readonly stages: DeploymentStage[];
717
1052
  ```
718
1053
 
719
- ###### `options`<sup>Required</sup> <a name="options" id="projen-pipelines.BaseEngine.createAssetUpload.parameter.options"></a>
720
-
721
- - *Type:* <a href="#projen-pipelines.AssetUploadStageOptions">AssetUploadStageOptions</a>
1054
+ - *Type:* <a href="#projen-pipelines.DeploymentStage">DeploymentStage</a>[]
722
1055
 
723
1056
  ---
724
1057
 
725
- ##### `createDeployment` <a name="createDeployment" id="projen-pipelines.BaseEngine.createDeployment"></a>
1058
+ ##### `featureStages`<sup>Optional</sup> <a name="featureStages" id="projen-pipelines.GitlabCDKPipelineOptions.property.featureStages"></a>
726
1059
 
727
1060
  ```typescript
728
- public createDeployment(options: DeployStageOptions): void
1061
+ public readonly featureStages: StageOptions;
729
1062
  ```
730
1063
 
731
- ###### `options`<sup>Required</sup> <a name="options" id="projen-pipelines.BaseEngine.createDeployment.parameter.options"></a>
732
-
733
- - *Type:* <a href="#projen-pipelines.DeployStageOptions">DeployStageOptions</a>
1064
+ - *Type:* <a href="#projen-pipelines.StageOptions">StageOptions</a>
734
1065
 
735
1066
  ---
736
1067
 
737
- ##### `createSynth` <a name="createSynth" id="projen-pipelines.BaseEngine.createSynth"></a>
1068
+ ##### `personalStage`<sup>Optional</sup> <a name="personalStage" id="projen-pipelines.GitlabCDKPipelineOptions.property.personalStage"></a>
738
1069
 
739
1070
  ```typescript
740
- public createSynth(options: SynthStageOptions): void
1071
+ public readonly personalStage: StageOptions;
741
1072
  ```
742
1073
 
743
- ###### `options`<sup>Required</sup> <a name="options" id="projen-pipelines.BaseEngine.createSynth.parameter.options"></a>
744
-
745
- - *Type:* <a href="#projen-pipelines.SynthStageOptions">SynthStageOptions</a>
1074
+ - *Type:* <a href="#projen-pipelines.StageOptions">StageOptions</a>
746
1075
 
747
1076
  ---
748
1077
 
749
-
750
-
751
-
752
- ### CDKPipeline <a name="CDKPipeline" id="projen-pipelines.CDKPipeline"></a>
753
-
754
- The CDKPipeline class extends the Component class and sets up the necessary configuration for deploying AWS CDK (Cloud Development Kit) applications across multiple stages.
755
-
756
- It also manages tasks such as publishing CDK assets, bumping version based on git tags, and cleaning up conflicting tasks.
757
-
758
- #### Initializers <a name="Initializers" id="projen-pipelines.CDKPipeline.Initializer"></a>
1078
+ ##### `postSynthCommands`<sup>Optional</sup> <a name="postSynthCommands" id="projen-pipelines.GitlabCDKPipelineOptions.property.postSynthCommands"></a>
759
1079
 
760
1080
  ```typescript
761
- import { CDKPipeline } from 'projen-pipelines'
762
-
763
- new CDKPipeline(app: AwsCdkTypeScriptApp, props: CDKPipelineOptions)
1081
+ public readonly postSynthCommands: string[];
764
1082
  ```
765
1083
 
766
- | **Name** | **Type** | **Description** |
767
- | --- | --- | --- |
768
- | <code><a href="#projen-pipelines.CDKPipeline.Initializer.parameter.app">app</a></code> | <code>projen.awscdk.AwsCdkTypeScriptApp</code> | *No description.* |
769
- | <code><a href="#projen-pipelines.CDKPipeline.Initializer.parameter.props">props</a></code> | <code><a href="#projen-pipelines.CDKPipelineOptions">CDKPipelineOptions</a></code> | *No description.* |
770
-
771
- ---
772
-
773
- ##### `app`<sup>Required</sup> <a name="app" id="projen-pipelines.CDKPipeline.Initializer.parameter.app"></a>
774
-
775
- - *Type:* projen.awscdk.AwsCdkTypeScriptApp
776
-
777
- ---
778
-
779
- ##### `props`<sup>Required</sup> <a name="props" id="projen-pipelines.CDKPipeline.Initializer.parameter.props"></a>
780
-
781
- - *Type:* <a href="#projen-pipelines.CDKPipelineOptions">CDKPipelineOptions</a>
782
-
783
- ---
784
-
785
- #### Methods <a name="Methods" id="Methods"></a>
786
-
787
- | **Name** | **Description** |
788
- | --- | --- |
789
- | <code><a href="#projen-pipelines.CDKPipeline.postSynthesize">postSynthesize</a></code> | Called after synthesis. |
790
- | <code><a href="#projen-pipelines.CDKPipeline.preSynthesize">preSynthesize</a></code> | Called before synthesis. |
791
- | <code><a href="#projen-pipelines.CDKPipeline.synthesize">synthesize</a></code> | Synthesizes files to the project output directory. |
1084
+ - *Type:* string[]
792
1085
 
793
1086
  ---
794
1087
 
795
- ##### `postSynthesize` <a name="postSynthesize" id="projen-pipelines.CDKPipeline.postSynthesize"></a>
1088
+ ##### `preInstallCommands`<sup>Optional</sup> <a name="preInstallCommands" id="projen-pipelines.GitlabCDKPipelineOptions.property.preInstallCommands"></a>
796
1089
 
797
1090
  ```typescript
798
- public postSynthesize(): void
1091
+ public readonly preInstallCommands: string[];
799
1092
  ```
800
1093
 
801
- Called after synthesis.
802
-
803
- Order is *not* guaranteed.
804
-
805
- ##### `preSynthesize` <a name="preSynthesize" id="projen-pipelines.CDKPipeline.preSynthesize"></a>
806
-
807
- ```typescript
808
- public preSynthesize(): void
809
- ```
1094
+ - *Type:* string[]
810
1095
 
811
- Called before synthesis.
1096
+ ---
812
1097
 
813
- ##### `synthesize` <a name="synthesize" id="projen-pipelines.CDKPipeline.synthesize"></a>
1098
+ ##### `preSynthCommands`<sup>Optional</sup> <a name="preSynthCommands" id="projen-pipelines.GitlabCDKPipelineOptions.property.preSynthCommands"></a>
814
1099
 
815
1100
  ```typescript
816
- public synthesize(): void
1101
+ public readonly preSynthCommands: string[];
817
1102
  ```
818
1103
 
819
- Synthesizes files to the project output directory.
820
-
821
-
822
- #### Properties <a name="Properties" id="Properties"></a>
823
-
824
- | **Name** | **Type** | **Description** |
825
- | --- | --- | --- |
826
- | <code><a href="#projen-pipelines.CDKPipeline.property.project">project</a></code> | <code>projen.Project</code> | *No description.* |
827
- | <code><a href="#projen-pipelines.CDKPipeline.property.engine">engine</a></code> | <code><a href="#projen-pipelines.BaseEngine">BaseEngine</a></code> | *No description.* |
828
- | <code><a href="#projen-pipelines.CDKPipeline.property.stackPrefix">stackPrefix</a></code> | <code>string</code> | *No description.* |
1104
+ - *Type:* string[]
829
1105
 
830
1106
  ---
831
1107
 
832
- ##### `project`<sup>Required</sup> <a name="project" id="projen-pipelines.CDKPipeline.property.project"></a>
1108
+ ##### `stackPrefix`<sup>Optional</sup> <a name="stackPrefix" id="projen-pipelines.GitlabCDKPipelineOptions.property.stackPrefix"></a>
833
1109
 
834
1110
  ```typescript
835
- public readonly project: Project;
1111
+ public readonly stackPrefix: string;
836
1112
  ```
837
1113
 
838
- - *Type:* projen.Project
1114
+ - *Type:* string
1115
+ - *Default:* project name
1116
+
1117
+ This field is used to define a prefix for the AWS Stack resources created during the pipeline's operation.
839
1118
 
840
1119
  ---
841
1120
 
842
- ##### `engine`<sup>Required</sup> <a name="engine" id="projen-pipelines.CDKPipeline.property.engine"></a>
1121
+ ##### `iamRoleArns`<sup>Required</sup> <a name="iamRoleArns" id="projen-pipelines.GitlabCDKPipelineOptions.property.iamRoleArns"></a>
843
1122
 
844
1123
  ```typescript
845
- public readonly engine: BaseEngine;
1124
+ public readonly iamRoleArns: GitlabIamRoleConfig;
846
1125
  ```
847
1126
 
848
- - *Type:* <a href="#projen-pipelines.BaseEngine">BaseEngine</a>
1127
+ - *Type:* <a href="#projen-pipelines.GitlabIamRoleConfig">GitlabIamRoleConfig</a>
849
1128
 
850
1129
  ---
851
1130
 
852
- ##### `stackPrefix`<sup>Required</sup> <a name="stackPrefix" id="projen-pipelines.CDKPipeline.property.stackPrefix"></a>
1131
+ ##### `image`<sup>Optional</sup> <a name="image" id="projen-pipelines.GitlabCDKPipelineOptions.property.image"></a>
853
1132
 
854
1133
  ```typescript
855
- public readonly stackPrefix: string;
1134
+ public readonly image: string;
856
1135
  ```
857
1136
 
858
1137
  - *Type:* string
859
1138
 
860
1139
  ---
861
1140
 
1141
+ ### GitlabIamRoleConfig <a name="GitlabIamRoleConfig" id="projen-pipelines.GitlabIamRoleConfig"></a>
862
1142
 
863
- ### GitHubEngine <a name="GitHubEngine" id="projen-pipelines.GitHubEngine"></a>
864
-
865
- #### Initializers <a name="Initializers" id="projen-pipelines.GitHubEngine.Initializer"></a>
1143
+ #### Initializer <a name="Initializer" id="projen-pipelines.GitlabIamRoleConfig.Initializer"></a>
866
1144
 
867
1145
  ```typescript
868
- import { GitHubEngine } from 'projen-pipelines'
1146
+ import { GitlabIamRoleConfig } from 'projen-pipelines'
869
1147
 
870
- new GitHubEngine(app: AwsCdkTypeScriptApp, props: CDKPipelineOptions, pipeline: CDKPipeline)
1148
+ const gitlabIamRoleConfig: GitlabIamRoleConfig = { ... }
871
1149
  ```
872
1150
 
1151
+ #### Properties <a name="Properties" id="Properties"></a>
1152
+
873
1153
  | **Name** | **Type** | **Description** |
874
1154
  | --- | --- | --- |
875
- | <code><a href="#projen-pipelines.GitHubEngine.Initializer.parameter.app">app</a></code> | <code>projen.awscdk.AwsCdkTypeScriptApp</code> | *No description.* |
876
- | <code><a href="#projen-pipelines.GitHubEngine.Initializer.parameter.props">props</a></code> | <code><a href="#projen-pipelines.CDKPipelineOptions">CDKPipelineOptions</a></code> | *No description.* |
877
- | <code><a href="#projen-pipelines.GitHubEngine.Initializer.parameter.pipeline">pipeline</a></code> | <code><a href="#projen-pipelines.CDKPipeline">CDKPipeline</a></code> | *No description.* |
878
-
879
- ---
880
-
881
- ##### `app`<sup>Required</sup> <a name="app" id="projen-pipelines.GitHubEngine.Initializer.parameter.app"></a>
882
-
883
- - *Type:* projen.awscdk.AwsCdkTypeScriptApp
884
-
885
- ---
886
-
887
- ##### `props`<sup>Required</sup> <a name="props" id="projen-pipelines.GitHubEngine.Initializer.parameter.props"></a>
888
-
889
- - *Type:* <a href="#projen-pipelines.CDKPipelineOptions">CDKPipelineOptions</a>
1155
+ | <code><a href="#projen-pipelines.GitlabIamRoleConfig.property.assetPublishing">assetPublishing</a></code> | <code>string</code> | *No description.* |
1156
+ | <code><a href="#projen-pipelines.GitlabIamRoleConfig.property.default">default</a></code> | <code>string</code> | *No description.* |
1157
+ | <code><a href="#projen-pipelines.GitlabIamRoleConfig.property.deployment">deployment</a></code> | <code>{[ key: string ]: string}</code> | *No description.* |
1158
+ | <code><a href="#projen-pipelines.GitlabIamRoleConfig.property.synth">synth</a></code> | <code>string</code> | *No description.* |
890
1159
 
891
1160
  ---
892
1161
 
893
- ##### `pipeline`<sup>Required</sup> <a name="pipeline" id="projen-pipelines.GitHubEngine.Initializer.parameter.pipeline"></a>
894
-
895
- - *Type:* <a href="#projen-pipelines.CDKPipeline">CDKPipeline</a>
896
-
897
- ---
1162
+ ##### `assetPublishing`<sup>Optional</sup> <a name="assetPublishing" id="projen-pipelines.GitlabIamRoleConfig.property.assetPublishing"></a>
898
1163
 
899
- #### Methods <a name="Methods" id="Methods"></a>
1164
+ ```typescript
1165
+ public readonly assetPublishing: string;
1166
+ ```
900
1167
 
901
- | **Name** | **Description** |
902
- | --- | --- |
903
- | <code><a href="#projen-pipelines.GitHubEngine.createAssetUpload">createAssetUpload</a></code> | *No description.* |
904
- | <code><a href="#projen-pipelines.GitHubEngine.createDeployment">createDeployment</a></code> | *No description.* |
905
- | <code><a href="#projen-pipelines.GitHubEngine.createSynth">createSynth</a></code> | *No description.* |
1168
+ - *Type:* string
906
1169
 
907
1170
  ---
908
1171
 
909
- ##### `createAssetUpload` <a name="createAssetUpload" id="projen-pipelines.GitHubEngine.createAssetUpload"></a>
1172
+ ##### `default`<sup>Optional</sup> <a name="default" id="projen-pipelines.GitlabIamRoleConfig.property.default"></a>
910
1173
 
911
1174
  ```typescript
912
- public createAssetUpload(options: AssetUploadStageOptions): void
1175
+ public readonly default: string;
913
1176
  ```
914
1177
 
915
- ###### `options`<sup>Required</sup> <a name="options" id="projen-pipelines.GitHubEngine.createAssetUpload.parameter.options"></a>
916
-
917
- - *Type:* <a href="#projen-pipelines.AssetUploadStageOptions">AssetUploadStageOptions</a>
1178
+ - *Type:* string
918
1179
 
919
1180
  ---
920
1181
 
921
- ##### `createDeployment` <a name="createDeployment" id="projen-pipelines.GitHubEngine.createDeployment"></a>
1182
+ ##### `deployment`<sup>Optional</sup> <a name="deployment" id="projen-pipelines.GitlabIamRoleConfig.property.deployment"></a>
922
1183
 
923
1184
  ```typescript
924
- public createDeployment(options: DeployStageOptions): void
1185
+ public readonly deployment: {[ key: string ]: string};
925
1186
  ```
926
1187
 
927
- ###### `options`<sup>Required</sup> <a name="options" id="projen-pipelines.GitHubEngine.createDeployment.parameter.options"></a>
928
-
929
- - *Type:* <a href="#projen-pipelines.DeployStageOptions">DeployStageOptions</a>
1188
+ - *Type:* {[ key: string ]: string}
930
1189
 
931
1190
  ---
932
1191
 
933
- ##### `createSynth` <a name="createSynth" id="projen-pipelines.GitHubEngine.createSynth"></a>
1192
+ ##### `synth`<sup>Optional</sup> <a name="synth" id="projen-pipelines.GitlabIamRoleConfig.property.synth"></a>
934
1193
 
935
1194
  ```typescript
936
- public createSynth(options: SynthStageOptions): void
1195
+ public readonly synth: string;
937
1196
  ```
938
1197
 
939
- ###### `options`<sup>Required</sup> <a name="options" id="projen-pipelines.GitHubEngine.createSynth.parameter.options"></a>
940
-
941
- - *Type:* <a href="#projen-pipelines.SynthStageOptions">SynthStageOptions</a>
1198
+ - *Type:* string
942
1199
 
943
1200
  ---
944
1201
 
1202
+ ### StageOptions <a name="StageOptions" id="projen-pipelines.StageOptions"></a>
945
1203
 
1204
+ #### Initializer <a name="Initializer" id="projen-pipelines.StageOptions.Initializer"></a>
946
1205
 
1206
+ ```typescript
1207
+ import { StageOptions } from 'projen-pipelines'
947
1208
 
1209
+ const stageOptions: StageOptions = { ... }
1210
+ ```
948
1211
 
949
- ## Enums <a name="Enums" id="Enums"></a>
950
-
951
- ### DeploymentType <a name="DeploymentType" id="projen-pipelines.DeploymentType"></a>
952
-
953
- Describes the type of pipeline that will be created.
954
-
955
- #### Members <a name="Members" id="Members"></a>
1212
+ #### Properties <a name="Properties" id="Properties"></a>
956
1213
 
957
- | **Name** | **Description** |
958
- | --- | --- |
959
- | <code><a href="#projen-pipelines.DeploymentType.CONTINUOUS_DEPLOYMENT">CONTINUOUS_DEPLOYMENT</a></code> | Deploy every commit as far as possible; |
960
- | <code><a href="#projen-pipelines.DeploymentType.CONTINUOUS_DELIVERY">CONTINUOUS_DELIVERY</a></code> | Build every commit and prepare all assets for a later deployment. |
1214
+ | **Name** | **Type** | **Description** |
1215
+ | --- | --- | --- |
1216
+ | <code><a href="#projen-pipelines.StageOptions.property.env">env</a></code> | <code><a href="#projen-pipelines.Environment">Environment</a></code> | *No description.* |
961
1217
 
962
1218
  ---
963
1219
 
964
- ##### `CONTINUOUS_DEPLOYMENT` <a name="CONTINUOUS_DEPLOYMENT" id="projen-pipelines.DeploymentType.CONTINUOUS_DEPLOYMENT"></a>
1220
+ ##### `env`<sup>Required</sup> <a name="env" id="projen-pipelines.StageOptions.property.env"></a>
965
1221
 
966
- Deploy every commit as far as possible;
1222
+ ```typescript
1223
+ public readonly env: Environment;
1224
+ ```
967
1225
 
968
- hopefully into production
1226
+ - *Type:* <a href="#projen-pipelines.Environment">Environment</a>
969
1227
 
970
1228
  ---
971
1229
 
972
1230
 
973
- ##### `CONTINUOUS_DELIVERY` <a name="CONTINUOUS_DELIVERY" id="projen-pipelines.DeploymentType.CONTINUOUS_DELIVERY"></a>
974
-
975
- Build every commit and prepare all assets for a later deployment.
976
-
977
- ---
978
1231
 
1232
+ ## Enums <a name="Enums" id="Enums"></a>
979
1233
 
980
1234
  ### PipelineEngine <a name="PipelineEngine" id="projen-pipelines.PipelineEngine"></a>
981
1235