projen-pipelines 0.0.1 → 0.0.3
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 +803 -29
- package/API.md +774 -11
- package/README.md +154 -1
- package/lib/engine/base.d.ts +22 -0
- package/lib/engine/base.js +16 -0
- package/lib/engine/github.d.ts +22 -0
- package/lib/engine/github.js +100 -0
- package/lib/engine/index.d.ts +2 -0
- package/lib/engine/index.js +19 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/pipeline.d.ts +129 -1
- package/lib/pipeline.js +138 -25
- package/package.json +1 -1
package/API.md
CHANGED
|
@@ -1,11 +1,199 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Projen Pipelines
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/projen-pipelines)
|
|
4
|
+
|
|
5
|
+
|
|
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.
|
|
8
|
+
|
|
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.
|
|
11
|
+
|
|
12
|
+
## Getting Started
|
|
13
|
+
|
|
14
|
+
### Installation
|
|
15
|
+
|
|
16
|
+
To install the package, add the package `projen-pipelines` to your projects devDeps in your projen configuration file.
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
After installing the package, you can import and use the constructs to define your CDK Pipelines.
|
|
20
|
+
|
|
21
|
+
### Usage
|
|
22
|
+
|
|
23
|
+
You can start using the constructs provided by Projen Pipelines in your AWS CDK applications. Here's a brief example:
|
|
24
|
+
|
|
25
|
+
```typescript
|
|
26
|
+
import { awscdk } from 'projen';
|
|
27
|
+
import { CDKPipeline, CDKPipelineOptions } from 'projen-pipelines';
|
|
28
|
+
|
|
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
|
+
});
|
|
38
|
+
|
|
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
|
+
});
|
|
48
|
+
```
|
|
49
|
+
|
|
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.
|
|
51
|
+
|
|
52
|
+
You can then use this in your `main.ts` to configure your deployment.
|
|
53
|
+
|
|
54
|
+
```typescript
|
|
55
|
+
import { PipelineApp } from './app';
|
|
56
|
+
import { BackendStack } from './stack';
|
|
57
|
+
|
|
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
|
+
});
|
|
81
|
+
|
|
82
|
+
app.synth();
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Deployment
|
|
86
|
+
|
|
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.
|
|
88
|
+
|
|
89
|
+
Here's a brief description of each one:
|
|
90
|
+
|
|
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.
|
|
92
|
+
|
|
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.
|
|
94
|
+
|
|
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.
|
|
96
|
+
|
|
97
|
+
4. **destroy:personal** - This task destroys the resources created for the personal stage of the application.
|
|
98
|
+
|
|
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.
|
|
100
|
+
|
|
101
|
+
6. **diff:feature** - This task is similar to `diff:personal`, but for the feature stage.
|
|
102
|
+
|
|
103
|
+
7. **destroy:feature** - This task destroys the resources created for the feature stage of the application.
|
|
104
|
+
|
|
105
|
+
8. **deploy:<stageName>** - This task deploys a specific stage of the application (like 'dev' or 'prod').
|
|
106
|
+
|
|
107
|
+
9. **diff:<stageName>** - This task compares the specified application stage with the current state of the application code.
|
|
108
|
+
|
|
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.
|
|
110
|
+
|
|
111
|
+
11. **bump** - This task bumps the version based on the latest git tag and pushes the updated tag to the git repository.
|
|
112
|
+
|
|
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.
|
|
114
|
+
|
|
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.
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
## Contributing
|
|
119
|
+
|
|
120
|
+
We welcome all contributions to Projen Pipelines! Here's how you can get started:
|
|
121
|
+
|
|
122
|
+
1. **Fork the Repository**: Click the 'Fork' button at the top right of this page to duplicate this repository in your GitHub account.
|
|
123
|
+
|
|
124
|
+
2. **Clone your Fork**: Clone the forked repository to your local machine.
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
git clone https://github.com/<your_username>/projen-pipelines.git
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
3. **Create a Branch**: To keep your work organized, create a branch for your contribution.
|
|
131
|
+
|
|
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.
|
|
137
|
+
|
|
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.
|
|
139
|
+
|
|
140
|
+
6. **Commit your Changes**: Commit your changes with a descriptive commit message using conventional commit messages.
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
git commit -m "feat: Your descriptive commit message"
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
7. **Push to your Fork**: Push your commits to the branch in your forked repository.
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
git push origin my-branch
|
|
150
|
+
```
|
|
151
|
+
|
|
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.
|
|
153
|
+
|
|
154
|
+
Your pull request will be reviewed and hopefully merged quickly. Thanks for contributing!
|
|
155
|
+
|
|
2
156
|
# API Reference <a name="API Reference" id="api-reference"></a>
|
|
3
157
|
|
|
4
158
|
|
|
5
159
|
## Structs <a name="Structs" id="Structs"></a>
|
|
6
160
|
|
|
161
|
+
### AssetUploadStageOptions <a name="AssetUploadStageOptions" id="projen-pipelines.AssetUploadStageOptions"></a>
|
|
162
|
+
|
|
163
|
+
#### Initializer <a name="Initializer" id="projen-pipelines.AssetUploadStageOptions.Initializer"></a>
|
|
164
|
+
|
|
165
|
+
```typescript
|
|
166
|
+
import { AssetUploadStageOptions } from 'projen-pipelines'
|
|
167
|
+
|
|
168
|
+
const assetUploadStageOptions: AssetUploadStageOptions = { ... }
|
|
169
|
+
```
|
|
170
|
+
|
|
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.* |
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
##### `commands`<sup>Required</sup> <a name="commands" id="projen-pipelines.AssetUploadStageOptions.property.commands"></a>
|
|
180
|
+
|
|
181
|
+
```typescript
|
|
182
|
+
public readonly commands: string[];
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
- *Type:* string[]
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
7
189
|
### CDKPipelineOptions <a name="CDKPipelineOptions" id="projen-pipelines.CDKPipelineOptions"></a>
|
|
8
190
|
|
|
191
|
+
The CDKPipelineOptions interface is designed to provide configuration options for a CDK (Cloud Development Kit) pipeline.
|
|
192
|
+
|
|
193
|
+
It allows the definition
|
|
194
|
+
of settings such as the stack prefix and package namespace to be used in the
|
|
195
|
+
AWS stack, along with the environments configuration to be used.
|
|
196
|
+
|
|
9
197
|
#### Initializer <a name="Initializer" id="projen-pipelines.CDKPipelineOptions.Initializer"></a>
|
|
10
198
|
|
|
11
199
|
```typescript
|
|
@@ -18,9 +206,15 @@ const cDKPipelineOptions: CDKPipelineOptions = { ... }
|
|
|
18
206
|
|
|
19
207
|
| **Name** | **Type** | **Description** |
|
|
20
208
|
| --- | --- | --- |
|
|
21
|
-
| <code><a href="#projen-pipelines.CDKPipelineOptions.property.environments">environments</a></code> | <code><a href="#projen-pipelines.EnvironmentMap">EnvironmentMap</a></code> |
|
|
22
|
-
| <code><a href="#projen-pipelines.CDKPipelineOptions.property.pkgNamespace">pkgNamespace</a></code> | <code>string</code> |
|
|
23
|
-
| <code><a href="#projen-pipelines.CDKPipelineOptions.property.
|
|
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
|
+
| <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.* |
|
|
214
|
+
| <code><a href="#projen-pipelines.CDKPipelineOptions.property.postSynthCommands">postSynthCommands</a></code> | <code>string[]</code> | *No description.* |
|
|
215
|
+
| <code><a href="#projen-pipelines.CDKPipelineOptions.property.preInstallCommands">preInstallCommands</a></code> | <code>string[]</code> | *No description.* |
|
|
216
|
+
| <code><a href="#projen-pipelines.CDKPipelineOptions.property.preSynthCommands">preSynthCommands</a></code> | <code>string[]</code> | *No description.* |
|
|
217
|
+
| <code><a href="#projen-pipelines.CDKPipelineOptions.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. |
|
|
24
218
|
|
|
25
219
|
---
|
|
26
220
|
|
|
@@ -32,6 +226,12 @@ public readonly environments: EnvironmentMap;
|
|
|
32
226
|
|
|
33
227
|
- *Type:* <a href="#projen-pipelines.EnvironmentMap">EnvironmentMap</a>
|
|
34
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
|
+
|
|
35
235
|
---
|
|
36
236
|
|
|
37
237
|
##### `pkgNamespace`<sup>Required</sup> <a name="pkgNamespace" id="projen-pipelines.CDKPipelineOptions.property.pkgNamespace"></a>
|
|
@@ -42,20 +242,155 @@ public readonly pkgNamespace: string;
|
|
|
42
242
|
|
|
43
243
|
- *Type:* string
|
|
44
244
|
|
|
245
|
+
This field determines the NPM namespace to be used when packaging CDK cloud assemblies.
|
|
246
|
+
|
|
247
|
+
A namespace helps group related resources together, providing
|
|
248
|
+
better organization and ease of management.
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
##### `deploymentType`<sup>Optional</sup> <a name="deploymentType" id="projen-pipelines.CDKPipelineOptions.property.deploymentType"></a>
|
|
253
|
+
|
|
254
|
+
```typescript
|
|
255
|
+
public readonly deploymentType: DeploymentType;
|
|
256
|
+
```
|
|
257
|
+
|
|
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.
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
##### `engine`<sup>Optional</sup> <a name="engine" id="projen-pipelines.CDKPipelineOptions.property.engine"></a>
|
|
270
|
+
|
|
271
|
+
```typescript
|
|
272
|
+
public readonly engine: PipelineEngine;
|
|
273
|
+
```
|
|
274
|
+
|
|
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.
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
##### `githubConfig`<sup>Optional</sup> <a name="githubConfig" id="projen-pipelines.CDKPipelineOptions.property.githubConfig"></a>
|
|
286
|
+
|
|
287
|
+
```typescript
|
|
288
|
+
public readonly githubConfig: GithubEngineConfig;
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
- *Type:* <a href="#projen-pipelines.GithubEngineConfig">GithubEngineConfig</a>
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
|
|
295
|
+
##### `postSynthCommands`<sup>Optional</sup> <a name="postSynthCommands" id="projen-pipelines.CDKPipelineOptions.property.postSynthCommands"></a>
|
|
296
|
+
|
|
297
|
+
```typescript
|
|
298
|
+
public readonly postSynthCommands: string[];
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
- *Type:* string[]
|
|
302
|
+
|
|
45
303
|
---
|
|
46
304
|
|
|
47
|
-
##### `
|
|
305
|
+
##### `preInstallCommands`<sup>Optional</sup> <a name="preInstallCommands" id="projen-pipelines.CDKPipelineOptions.property.preInstallCommands"></a>
|
|
306
|
+
|
|
307
|
+
```typescript
|
|
308
|
+
public readonly preInstallCommands: string[];
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
- *Type:* string[]
|
|
312
|
+
|
|
313
|
+
---
|
|
314
|
+
|
|
315
|
+
##### `preSynthCommands`<sup>Optional</sup> <a name="preSynthCommands" id="projen-pipelines.CDKPipelineOptions.property.preSynthCommands"></a>
|
|
316
|
+
|
|
317
|
+
```typescript
|
|
318
|
+
public readonly preSynthCommands: string[];
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
- *Type:* string[]
|
|
322
|
+
|
|
323
|
+
---
|
|
324
|
+
|
|
325
|
+
##### `stackPrefix`<sup>Optional</sup> <a name="stackPrefix" id="projen-pipelines.CDKPipelineOptions.property.stackPrefix"></a>
|
|
48
326
|
|
|
49
327
|
```typescript
|
|
50
328
|
public readonly stackPrefix: string;
|
|
51
329
|
```
|
|
52
330
|
|
|
331
|
+
- *Type:* string
|
|
332
|
+
- *Default:* project name
|
|
333
|
+
|
|
334
|
+
This field is used to define a prefix for the AWS Stack resources created during the pipeline's operation.
|
|
335
|
+
|
|
336
|
+
---
|
|
337
|
+
|
|
338
|
+
### DeployStageOptions <a name="DeployStageOptions" id="projen-pipelines.DeployStageOptions"></a>
|
|
339
|
+
|
|
340
|
+
#### Initializer <a name="Initializer" id="projen-pipelines.DeployStageOptions.Initializer"></a>
|
|
341
|
+
|
|
342
|
+
```typescript
|
|
343
|
+
import { DeployStageOptions } from 'projen-pipelines'
|
|
344
|
+
|
|
345
|
+
const deployStageOptions: DeployStageOptions = { ... }
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
#### Properties <a name="Properties" id="Properties"></a>
|
|
349
|
+
|
|
350
|
+
| **Name** | **Type** | **Description** |
|
|
351
|
+
| --- | --- | --- |
|
|
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.* |
|
|
355
|
+
|
|
356
|
+
---
|
|
357
|
+
|
|
358
|
+
##### `commands`<sup>Required</sup> <a name="commands" id="projen-pipelines.DeployStageOptions.property.commands"></a>
|
|
359
|
+
|
|
360
|
+
```typescript
|
|
361
|
+
public readonly commands: string[];
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
- *Type:* string[]
|
|
365
|
+
|
|
366
|
+
---
|
|
367
|
+
|
|
368
|
+
##### `env`<sup>Required</sup> <a name="env" id="projen-pipelines.DeployStageOptions.property.env"></a>
|
|
369
|
+
|
|
370
|
+
```typescript
|
|
371
|
+
public readonly env: Environment;
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
- *Type:* <a href="#projen-pipelines.Environment">Environment</a>
|
|
375
|
+
|
|
376
|
+
---
|
|
377
|
+
|
|
378
|
+
##### `stageName`<sup>Required</sup> <a name="stageName" id="projen-pipelines.DeployStageOptions.property.stageName"></a>
|
|
379
|
+
|
|
380
|
+
```typescript
|
|
381
|
+
public readonly stageName: string;
|
|
382
|
+
```
|
|
383
|
+
|
|
53
384
|
- *Type:* string
|
|
54
385
|
|
|
55
386
|
---
|
|
56
387
|
|
|
57
388
|
### Environment <a name="Environment" id="projen-pipelines.Environment"></a>
|
|
58
389
|
|
|
390
|
+
The Environment interface is designed to hold AWS related information for a specific deployment environment within your infrastructure.
|
|
391
|
+
|
|
392
|
+
Each environment requires a specific account and region for its resources.
|
|
393
|
+
|
|
59
394
|
#### Initializer <a name="Initializer" id="projen-pipelines.Environment.Initializer"></a>
|
|
60
395
|
|
|
61
396
|
```typescript
|
|
@@ -68,8 +403,8 @@ const environment: Environment = { ... }
|
|
|
68
403
|
|
|
69
404
|
| **Name** | **Type** | **Description** |
|
|
70
405
|
| --- | --- | --- |
|
|
71
|
-
| <code><a href="#projen-pipelines.Environment.property.account">account</a></code> | <code>string</code> |
|
|
72
|
-
| <code><a href="#projen-pipelines.Environment.property.region">region</a></code> | <code>string</code> |
|
|
406
|
+
| <code><a href="#projen-pipelines.Environment.property.account">account</a></code> | <code>string</code> | The AWS Account ID associated with the environment. |
|
|
407
|
+
| <code><a href="#projen-pipelines.Environment.property.region">region</a></code> | <code>string</code> | The AWS Region for the environment. |
|
|
73
408
|
|
|
74
409
|
---
|
|
75
410
|
|
|
@@ -81,6 +416,12 @@ public readonly account: string;
|
|
|
81
416
|
|
|
82
417
|
- *Type:* string
|
|
83
418
|
|
|
419
|
+
The AWS Account ID associated with the environment.
|
|
420
|
+
|
|
421
|
+
It's important because
|
|
422
|
+
different services or features could have distinct permissions and settings
|
|
423
|
+
in different accounts.
|
|
424
|
+
|
|
84
425
|
---
|
|
85
426
|
|
|
86
427
|
##### `region`<sup>Required</sup> <a name="region" id="projen-pipelines.Environment.property.region"></a>
|
|
@@ -91,10 +432,21 @@ public readonly region: string;
|
|
|
91
432
|
|
|
92
433
|
- *Type:* string
|
|
93
434
|
|
|
435
|
+
The AWS Region for the environment.
|
|
436
|
+
|
|
437
|
+
This determines where your resources
|
|
438
|
+
are created and where your application will run. It can affect latency,
|
|
439
|
+
availability, and pricing.
|
|
440
|
+
|
|
94
441
|
---
|
|
95
442
|
|
|
96
443
|
### EnvironmentMap <a name="EnvironmentMap" id="projen-pipelines.EnvironmentMap"></a>
|
|
97
444
|
|
|
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
|
+
|
|
98
450
|
#### Initializer <a name="Initializer" id="projen-pipelines.EnvironmentMap.Initializer"></a>
|
|
99
451
|
|
|
100
452
|
```typescript
|
|
@@ -107,10 +459,10 @@ const environmentMap: EnvironmentMap = { ... }
|
|
|
107
459
|
|
|
108
460
|
| **Name** | **Type** | **Description** |
|
|
109
461
|
| --- | --- | --- |
|
|
110
|
-
| <code><a href="#projen-pipelines.EnvironmentMap.property.dev">dev</a></code> | <code><a href="#projen-pipelines.Environment">Environment</a></code> |
|
|
111
|
-
| <code><a href="#projen-pipelines.EnvironmentMap.property.feature">feature</a></code> | <code><a href="#projen-pipelines.Environment">Environment</a></code> |
|
|
112
|
-
| <code><a href="#projen-pipelines.EnvironmentMap.property.personal">personal</a></code> | <code><a href="#projen-pipelines.Environment">Environment</a></code> |
|
|
113
|
-
| <code><a href="#projen-pipelines.EnvironmentMap.property.prod">prod</a></code> | <code><a href="#projen-pipelines.Environment">Environment</a></code> |
|
|
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. |
|
|
114
466
|
|
|
115
467
|
---
|
|
116
468
|
|
|
@@ -122,6 +474,11 @@ public readonly dev: Environment;
|
|
|
122
474
|
|
|
123
475
|
- *Type:* <a href="#projen-pipelines.Environment">Environment</a>
|
|
124
476
|
|
|
477
|
+
The dev environment is a shared environment where developers integrate their feature changes.
|
|
478
|
+
|
|
479
|
+
It represents the latest version of the application
|
|
480
|
+
but may not be as stable as the production environment.
|
|
481
|
+
|
|
125
482
|
---
|
|
126
483
|
|
|
127
484
|
##### `feature`<sup>Required</sup> <a name="feature" id="projen-pipelines.EnvironmentMap.property.feature"></a>
|
|
@@ -132,6 +489,12 @@ public readonly feature: Environment;
|
|
|
132
489
|
|
|
133
490
|
- *Type:* <a href="#projen-pipelines.Environment">Environment</a>
|
|
134
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.
|
|
497
|
+
|
|
135
498
|
---
|
|
136
499
|
|
|
137
500
|
##### `personal`<sup>Required</sup> <a name="personal" id="projen-pipelines.EnvironmentMap.property.personal"></a>
|
|
@@ -142,6 +505,8 @@ public readonly personal: Environment;
|
|
|
142
505
|
|
|
143
506
|
- *Type:* <a href="#projen-pipelines.Environment">Environment</a>
|
|
144
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.
|
|
509
|
+
|
|
145
510
|
---
|
|
146
511
|
|
|
147
512
|
##### `prod`<sup>Required</sup> <a name="prod" id="projen-pipelines.EnvironmentMap.property.prod"></a>
|
|
@@ -152,12 +517,244 @@ public readonly prod: Environment;
|
|
|
152
517
|
|
|
153
518
|
- *Type:* <a href="#projen-pipelines.Environment">Environment</a>
|
|
154
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.
|
|
523
|
+
|
|
524
|
+
---
|
|
525
|
+
|
|
526
|
+
### GithubEngineConfig <a name="GithubEngineConfig" id="projen-pipelines.GithubEngineConfig"></a>
|
|
527
|
+
|
|
528
|
+
#### Initializer <a name="Initializer" id="projen-pipelines.GithubEngineConfig.Initializer"></a>
|
|
529
|
+
|
|
530
|
+
```typescript
|
|
531
|
+
import { GithubEngineConfig } from 'projen-pipelines'
|
|
532
|
+
|
|
533
|
+
const githubEngineConfig: GithubEngineConfig = { ... }
|
|
534
|
+
```
|
|
535
|
+
|
|
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.* |
|
|
544
|
+
|
|
545
|
+
---
|
|
546
|
+
|
|
547
|
+
##### `awsRoleArnForAssetPublishing`<sup>Optional</sup> <a name="awsRoleArnForAssetPublishing" id="projen-pipelines.GithubEngineConfig.property.awsRoleArnForAssetPublishing"></a>
|
|
548
|
+
|
|
549
|
+
```typescript
|
|
550
|
+
public readonly awsRoleArnForAssetPublishing: string;
|
|
551
|
+
```
|
|
552
|
+
|
|
553
|
+
- *Type:* string
|
|
554
|
+
|
|
555
|
+
---
|
|
556
|
+
|
|
557
|
+
##### `awsRoleArnForDeployment`<sup>Optional</sup> <a name="awsRoleArnForDeployment" id="projen-pipelines.GithubEngineConfig.property.awsRoleArnForDeployment"></a>
|
|
558
|
+
|
|
559
|
+
```typescript
|
|
560
|
+
public readonly awsRoleArnForDeployment: RoleMap;
|
|
561
|
+
```
|
|
562
|
+
|
|
563
|
+
- *Type:* <a href="#projen-pipelines.RoleMap">RoleMap</a>
|
|
564
|
+
|
|
565
|
+
---
|
|
566
|
+
|
|
567
|
+
##### `awsRoleArnForSynth`<sup>Optional</sup> <a name="awsRoleArnForSynth" id="projen-pipelines.GithubEngineConfig.property.awsRoleArnForSynth"></a>
|
|
568
|
+
|
|
569
|
+
```typescript
|
|
570
|
+
public readonly awsRoleArnForSynth: string;
|
|
571
|
+
```
|
|
572
|
+
|
|
573
|
+
- *Type:* string
|
|
574
|
+
|
|
575
|
+
---
|
|
576
|
+
|
|
577
|
+
##### `defaultAwsRoleArn`<sup>Optional</sup> <a name="defaultAwsRoleArn" id="projen-pipelines.GithubEngineConfig.property.defaultAwsRoleArn"></a>
|
|
578
|
+
|
|
579
|
+
```typescript
|
|
580
|
+
public readonly defaultAwsRoleArn: string;
|
|
581
|
+
```
|
|
582
|
+
|
|
583
|
+
- *Type:* string
|
|
584
|
+
|
|
585
|
+
---
|
|
586
|
+
|
|
587
|
+
### RoleMap <a name="RoleMap" id="projen-pipelines.RoleMap"></a>
|
|
588
|
+
|
|
589
|
+
#### Initializer <a name="Initializer" id="projen-pipelines.RoleMap.Initializer"></a>
|
|
590
|
+
|
|
591
|
+
```typescript
|
|
592
|
+
import { RoleMap } from 'projen-pipelines'
|
|
593
|
+
|
|
594
|
+
const roleMap: RoleMap = { ... }
|
|
595
|
+
```
|
|
596
|
+
|
|
597
|
+
#### Properties <a name="Properties" id="Properties"></a>
|
|
598
|
+
|
|
599
|
+
| **Name** | **Type** | **Description** |
|
|
600
|
+
| --- | --- | --- |
|
|
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
|
|
614
|
+
|
|
615
|
+
---
|
|
616
|
+
|
|
617
|
+
##### `feature`<sup>Optional</sup> <a name="feature" id="projen-pipelines.RoleMap.property.feature"></a>
|
|
618
|
+
|
|
619
|
+
```typescript
|
|
620
|
+
public readonly feature: string;
|
|
621
|
+
```
|
|
622
|
+
|
|
623
|
+
- *Type:* string
|
|
624
|
+
|
|
625
|
+
---
|
|
626
|
+
|
|
627
|
+
##### `prod`<sup>Optional</sup> <a name="prod" id="projen-pipelines.RoleMap.property.prod"></a>
|
|
628
|
+
|
|
629
|
+
```typescript
|
|
630
|
+
public readonly prod: string;
|
|
631
|
+
```
|
|
632
|
+
|
|
633
|
+
- *Type:* string
|
|
634
|
+
|
|
635
|
+
---
|
|
636
|
+
|
|
637
|
+
### SynthStageOptions <a name="SynthStageOptions" id="projen-pipelines.SynthStageOptions"></a>
|
|
638
|
+
|
|
639
|
+
#### Initializer <a name="Initializer" id="projen-pipelines.SynthStageOptions.Initializer"></a>
|
|
640
|
+
|
|
641
|
+
```typescript
|
|
642
|
+
import { SynthStageOptions } from 'projen-pipelines'
|
|
643
|
+
|
|
644
|
+
const synthStageOptions: SynthStageOptions = { ... }
|
|
645
|
+
```
|
|
646
|
+
|
|
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.* |
|
|
652
|
+
|
|
653
|
+
---
|
|
654
|
+
|
|
655
|
+
##### `commands`<sup>Required</sup> <a name="commands" id="projen-pipelines.SynthStageOptions.property.commands"></a>
|
|
656
|
+
|
|
657
|
+
```typescript
|
|
658
|
+
public readonly commands: string[];
|
|
659
|
+
```
|
|
660
|
+
|
|
661
|
+
- *Type:* string[]
|
|
662
|
+
|
|
155
663
|
---
|
|
156
664
|
|
|
157
665
|
## Classes <a name="Classes" id="Classes"></a>
|
|
158
666
|
|
|
667
|
+
### BaseEngine <a name="BaseEngine" id="projen-pipelines.BaseEngine"></a>
|
|
668
|
+
|
|
669
|
+
#### Initializers <a name="Initializers" id="projen-pipelines.BaseEngine.Initializer"></a>
|
|
670
|
+
|
|
671
|
+
```typescript
|
|
672
|
+
import { BaseEngine } from 'projen-pipelines'
|
|
673
|
+
|
|
674
|
+
new BaseEngine(app: AwsCdkTypeScriptApp, props: CDKPipelineOptions, pipeline: CDKPipeline)
|
|
675
|
+
```
|
|
676
|
+
|
|
677
|
+
| **Name** | **Type** | **Description** |
|
|
678
|
+
| --- | --- | --- |
|
|
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>
|
|
694
|
+
|
|
695
|
+
---
|
|
696
|
+
|
|
697
|
+
##### `pipeline`<sup>Required</sup> <a name="pipeline" id="projen-pipelines.BaseEngine.Initializer.parameter.pipeline"></a>
|
|
698
|
+
|
|
699
|
+
- *Type:* <a href="#projen-pipelines.CDKPipeline">CDKPipeline</a>
|
|
700
|
+
|
|
701
|
+
---
|
|
702
|
+
|
|
703
|
+
#### Methods <a name="Methods" id="Methods"></a>
|
|
704
|
+
|
|
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.* |
|
|
710
|
+
|
|
711
|
+
---
|
|
712
|
+
|
|
713
|
+
##### `createAssetUpload` <a name="createAssetUpload" id="projen-pipelines.BaseEngine.createAssetUpload"></a>
|
|
714
|
+
|
|
715
|
+
```typescript
|
|
716
|
+
public createAssetUpload(options: AssetUploadStageOptions): void
|
|
717
|
+
```
|
|
718
|
+
|
|
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>
|
|
722
|
+
|
|
723
|
+
---
|
|
724
|
+
|
|
725
|
+
##### `createDeployment` <a name="createDeployment" id="projen-pipelines.BaseEngine.createDeployment"></a>
|
|
726
|
+
|
|
727
|
+
```typescript
|
|
728
|
+
public createDeployment(options: DeployStageOptions): void
|
|
729
|
+
```
|
|
730
|
+
|
|
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>
|
|
734
|
+
|
|
735
|
+
---
|
|
736
|
+
|
|
737
|
+
##### `createSynth` <a name="createSynth" id="projen-pipelines.BaseEngine.createSynth"></a>
|
|
738
|
+
|
|
739
|
+
```typescript
|
|
740
|
+
public createSynth(options: SynthStageOptions): void
|
|
741
|
+
```
|
|
742
|
+
|
|
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>
|
|
746
|
+
|
|
747
|
+
---
|
|
748
|
+
|
|
749
|
+
|
|
750
|
+
|
|
751
|
+
|
|
159
752
|
### CDKPipeline <a name="CDKPipeline" id="projen-pipelines.CDKPipeline"></a>
|
|
160
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
|
+
|
|
161
758
|
#### Initializers <a name="Initializers" id="projen-pipelines.CDKPipeline.Initializer"></a>
|
|
162
759
|
|
|
163
760
|
```typescript
|
|
@@ -227,6 +824,8 @@ Synthesizes files to the project output directory.
|
|
|
227
824
|
| **Name** | **Type** | **Description** |
|
|
228
825
|
| --- | --- | --- |
|
|
229
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.* |
|
|
230
829
|
|
|
231
830
|
---
|
|
232
831
|
|
|
@@ -240,5 +839,169 @@ public readonly project: Project;
|
|
|
240
839
|
|
|
241
840
|
---
|
|
242
841
|
|
|
842
|
+
##### `engine`<sup>Required</sup> <a name="engine" id="projen-pipelines.CDKPipeline.property.engine"></a>
|
|
243
843
|
|
|
844
|
+
```typescript
|
|
845
|
+
public readonly engine: BaseEngine;
|
|
846
|
+
```
|
|
847
|
+
|
|
848
|
+
- *Type:* <a href="#projen-pipelines.BaseEngine">BaseEngine</a>
|
|
849
|
+
|
|
850
|
+
---
|
|
851
|
+
|
|
852
|
+
##### `stackPrefix`<sup>Required</sup> <a name="stackPrefix" id="projen-pipelines.CDKPipeline.property.stackPrefix"></a>
|
|
853
|
+
|
|
854
|
+
```typescript
|
|
855
|
+
public readonly stackPrefix: string;
|
|
856
|
+
```
|
|
857
|
+
|
|
858
|
+
- *Type:* string
|
|
859
|
+
|
|
860
|
+
---
|
|
861
|
+
|
|
862
|
+
|
|
863
|
+
### GitHubEngine <a name="GitHubEngine" id="projen-pipelines.GitHubEngine"></a>
|
|
864
|
+
|
|
865
|
+
#### Initializers <a name="Initializers" id="projen-pipelines.GitHubEngine.Initializer"></a>
|
|
866
|
+
|
|
867
|
+
```typescript
|
|
868
|
+
import { GitHubEngine } from 'projen-pipelines'
|
|
869
|
+
|
|
870
|
+
new GitHubEngine(app: AwsCdkTypeScriptApp, props: CDKPipelineOptions, pipeline: CDKPipeline)
|
|
871
|
+
```
|
|
872
|
+
|
|
873
|
+
| **Name** | **Type** | **Description** |
|
|
874
|
+
| --- | --- | --- |
|
|
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>
|
|
890
|
+
|
|
891
|
+
---
|
|
892
|
+
|
|
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
|
+
---
|
|
898
|
+
|
|
899
|
+
#### Methods <a name="Methods" id="Methods"></a>
|
|
900
|
+
|
|
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.* |
|
|
906
|
+
|
|
907
|
+
---
|
|
908
|
+
|
|
909
|
+
##### `createAssetUpload` <a name="createAssetUpload" id="projen-pipelines.GitHubEngine.createAssetUpload"></a>
|
|
910
|
+
|
|
911
|
+
```typescript
|
|
912
|
+
public createAssetUpload(options: AssetUploadStageOptions): void
|
|
913
|
+
```
|
|
914
|
+
|
|
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>
|
|
918
|
+
|
|
919
|
+
---
|
|
920
|
+
|
|
921
|
+
##### `createDeployment` <a name="createDeployment" id="projen-pipelines.GitHubEngine.createDeployment"></a>
|
|
922
|
+
|
|
923
|
+
```typescript
|
|
924
|
+
public createDeployment(options: DeployStageOptions): void
|
|
925
|
+
```
|
|
926
|
+
|
|
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>
|
|
930
|
+
|
|
931
|
+
---
|
|
932
|
+
|
|
933
|
+
##### `createSynth` <a name="createSynth" id="projen-pipelines.GitHubEngine.createSynth"></a>
|
|
934
|
+
|
|
935
|
+
```typescript
|
|
936
|
+
public createSynth(options: SynthStageOptions): void
|
|
937
|
+
```
|
|
938
|
+
|
|
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>
|
|
942
|
+
|
|
943
|
+
---
|
|
944
|
+
|
|
945
|
+
|
|
946
|
+
|
|
947
|
+
|
|
948
|
+
|
|
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>
|
|
956
|
+
|
|
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. |
|
|
961
|
+
|
|
962
|
+
---
|
|
963
|
+
|
|
964
|
+
##### `CONTINUOUS_DEPLOYMENT` <a name="CONTINUOUS_DEPLOYMENT" id="projen-pipelines.DeploymentType.CONTINUOUS_DEPLOYMENT"></a>
|
|
965
|
+
|
|
966
|
+
Deploy every commit as far as possible;
|
|
967
|
+
|
|
968
|
+
hopefully into production
|
|
969
|
+
|
|
970
|
+
---
|
|
971
|
+
|
|
972
|
+
|
|
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
|
+
|
|
979
|
+
|
|
980
|
+
### PipelineEngine <a name="PipelineEngine" id="projen-pipelines.PipelineEngine"></a>
|
|
981
|
+
|
|
982
|
+
The CI/CD tooling used to run your pipeline.
|
|
983
|
+
|
|
984
|
+
The component will render workflows for the given system
|
|
985
|
+
|
|
986
|
+
#### Members <a name="Members" id="Members"></a>
|
|
987
|
+
|
|
988
|
+
| **Name** | **Description** |
|
|
989
|
+
| --- | --- |
|
|
990
|
+
| <code><a href="#projen-pipelines.PipelineEngine.GITHUB">GITHUB</a></code> | Create GitHub actions. |
|
|
991
|
+
| <code><a href="#projen-pipelines.PipelineEngine.GITLAB">GITLAB</a></code> | Create a .gitlab-ci.yaml file. |
|
|
992
|
+
|
|
993
|
+
---
|
|
994
|
+
|
|
995
|
+
##### `GITHUB` <a name="GITHUB" id="projen-pipelines.PipelineEngine.GITHUB"></a>
|
|
996
|
+
|
|
997
|
+
Create GitHub actions.
|
|
998
|
+
|
|
999
|
+
---
|
|
1000
|
+
|
|
1001
|
+
|
|
1002
|
+
##### `GITLAB` <a name="GITLAB" id="projen-pipelines.PipelineEngine.GITLAB"></a>
|
|
1003
|
+
|
|
1004
|
+
Create a .gitlab-ci.yaml file.
|
|
1005
|
+
|
|
1006
|
+
---
|
|
244
1007
|
|