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 CHANGED
@@ -73,7 +73,7 @@
73
73
  },
74
74
  "name": "projen-pipelines",
75
75
  "readme": {
76
- "markdown": "# replace this"
76
+ "markdown": "# Projen Pipelines\n\n[![npm version](https://badge.fury.io/js/projen-pipelines.svg)](https://www.npmjs.com/package/projen-pipelines)\n\n\nProjen Pipelines is a projen library that provides high-level abstractions for defining continuous delivery (CD) pipelines for AWS CDK applications.\nIt is specifically designed to work with the projen project configuration engine.\n\nThis library provides high-level abstractions for defining multi-environment and multi-account AWS CDK applications with ease.\nWith this library, you can handle complex deployment scenarios with less code and manage your AWS infrastructure in a more efficient and straightforward way.\n\n## Getting Started\n\n### Installation\n\nTo install the package, add the package `projen-pipelines` to your projects devDeps in your projen configuration file.\n\n\nAfter installing the package, you can import and use the constructs to define your CDK Pipelines.\n\n### Usage\n\nYou can start using the constructs provided by Projen Pipelines in your AWS CDK applications. Here's a brief example:\n\n```typescript\nimport { awscdk } from 'projen';\nimport { CDKPipeline, CDKPipelineOptions } from 'projen-pipelines';\n\n// Define your AWS CDK TypeScript App\nconst app = new awscdk.AwsCdkTypeScriptApp({\n cdkVersion: '2.80.0',\n name: 'my-awesome-app',\n defaultReleaseBranch: 'main',\n devDeps: [\n 'projen-pipelines',\n ],\n});\n\n// Create the pipeline\nnew CDKPipeline(app, {\n stackPrefix: 'MyApp',\n pkgNamespace: '@company-assemblies',\n environments: {\n dev: { account: '111111111111', region: 'eu-central-1' },\n prod: { account: '222222222222', region: 'eu-central-1' },\n },\n});\n```\n\nAfter running projen (`npx projen`) a new file called `src/app.ts` will be created and contain a specialized CDK App class for your project.\n\nYou can then use this in your `main.ts` to configure your deployment.\n\n```typescript\nimport { PipelineApp } from './app';\nimport { BackendStack } from './stack';\n\nconst app = new PipelineApp({\n provideDevStack: (scope, id, props) => {\n return new BackendStack(scope, id, {\n ...props,\n apiHostname: 'api-dev',\n myConfigSetting: 'value-for-dev',\n });\n },\n provideProdStack: (scope, id, props) => {\n return new BackendStack(scope, id, {\n ...props,\n apiHostname: 'api',\n myConfigSetting: 'value-for-prod',\n });\n },\n providePersonalStack: (scope, id, props) => {\n return new BackendStack(scope, id, {\n ...props,\n apiHostname: `api-${props.stageName}`,\n myConfigSetting: 'value-for-personal-stage',\n });\n },\n});\n\napp.synth();\n```\n\n### Deployment\n\nThe `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.\n\nHere's a brief description of each one:\n\n1. **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.\n\n2. **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.\n\n3. **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.\n\n4. **destroy:personal** - This task destroys the resources created for the personal stage of the application.\n\n5. **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.\n\n6. **diff:feature** - This task is similar to `diff:personal`, but for the feature stage.\n\n7. **destroy:feature** - This task destroys the resources created for the feature stage of the application.\n\n8. **deploy:<stageName>** - This task deploys a specific stage of the application (like 'dev' or 'prod').\n\n9. **diff:<stageName>** - This task compares the specified application stage with the current state of the application code.\n\n10. **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.\n\n11. **bump** - This task bumps the version based on the latest git tag and pushes the updated tag to the git repository.\n\n12. **release:push-assembly** - This task creates a manifest, bumps the version without creating a git tag, and publishes the cloud assembly to your registry.\n\nRemember that these tasks are created and managed automatically by the `CDKPipeline` class. You can run these tasks using the `npx projen TASK_NAME` command.\n\n\n## Contributing\n\nWe welcome all contributions to Projen Pipelines! Here's how you can get started:\n\n1. **Fork the Repository**: Click the 'Fork' button at the top right of this page to duplicate this repository in your GitHub account.\n\n2. **Clone your Fork**: Clone the forked repository to your local machine.\n\n```bash\ngit clone https://github.com/<your_username>/projen-pipelines.git\n```\n\n3. **Create a Branch**: To keep your work organized, create a branch for your contribution.\n\n```bash\ngit checkout -b my-branch\n```\n\n4. **Make your Changes**: Make your changes, additions, or fixes to the codebase. Remember to follow the existing code style.\n\n5. **Test your Changes**: Before committing your changes, make sure to test them to ensure they work as expected and do not introduce bugs.\n\n6. **Commit your Changes**: Commit your changes with a descriptive commit message using conventional commit messages.\n\n```bash\ngit commit -m \"feat: Your descriptive commit message\"\n```\n\n7. **Push to your Fork**: Push your commits to the branch in your forked repository.\n\n```bash\ngit push origin my-branch\n```\n\n8. **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.\n\nYour pull request will be reviewed and hopefully merged quickly. Thanks for contributing!\n"
77
77
  },
78
78
  "repository": {
79
79
  "type": "git",
@@ -86,11 +86,197 @@
86
86
  }
87
87
  },
88
88
  "types": {
89
+ "projen-pipelines.AssetUploadStageOptions": {
90
+ "assembly": "projen-pipelines",
91
+ "datatype": true,
92
+ "docs": {
93
+ "stability": "stable"
94
+ },
95
+ "fqn": "projen-pipelines.AssetUploadStageOptions",
96
+ "kind": "interface",
97
+ "locationInModule": {
98
+ "filename": "src/engine/base.ts",
99
+ "line": 8
100
+ },
101
+ "name": "AssetUploadStageOptions",
102
+ "properties": [
103
+ {
104
+ "abstract": true,
105
+ "docs": {
106
+ "stability": "stable"
107
+ },
108
+ "immutable": true,
109
+ "locationInModule": {
110
+ "filename": "src/engine/base.ts",
111
+ "line": 9
112
+ },
113
+ "name": "commands",
114
+ "type": {
115
+ "collection": {
116
+ "elementtype": {
117
+ "primitive": "string"
118
+ },
119
+ "kind": "array"
120
+ }
121
+ }
122
+ }
123
+ ],
124
+ "symbolId": "src/engine/base:AssetUploadStageOptions"
125
+ },
126
+ "projen-pipelines.BaseEngine": {
127
+ "abstract": true,
128
+ "assembly": "projen-pipelines",
129
+ "docs": {
130
+ "stability": "stable"
131
+ },
132
+ "fqn": "projen-pipelines.BaseEngine",
133
+ "initializer": {
134
+ "docs": {
135
+ "stability": "stable"
136
+ },
137
+ "locationInModule": {
138
+ "filename": "src/engine/base.ts",
139
+ "line": 19
140
+ },
141
+ "parameters": [
142
+ {
143
+ "name": "app",
144
+ "type": {
145
+ "fqn": "projen.awscdk.AwsCdkTypeScriptApp"
146
+ }
147
+ },
148
+ {
149
+ "name": "props",
150
+ "type": {
151
+ "fqn": "projen-pipelines.CDKPipelineOptions"
152
+ }
153
+ },
154
+ {
155
+ "name": "pipeline",
156
+ "type": {
157
+ "fqn": "projen-pipelines.CDKPipeline"
158
+ }
159
+ }
160
+ ]
161
+ },
162
+ "kind": "class",
163
+ "locationInModule": {
164
+ "filename": "src/engine/base.ts",
165
+ "line": 18
166
+ },
167
+ "methods": [
168
+ {
169
+ "abstract": true,
170
+ "docs": {
171
+ "stability": "stable"
172
+ },
173
+ "locationInModule": {
174
+ "filename": "src/engine/base.ts",
175
+ "line": 25
176
+ },
177
+ "name": "createAssetUpload",
178
+ "parameters": [
179
+ {
180
+ "name": "options",
181
+ "type": {
182
+ "fqn": "projen-pipelines.AssetUploadStageOptions"
183
+ }
184
+ }
185
+ ]
186
+ },
187
+ {
188
+ "abstract": true,
189
+ "docs": {
190
+ "stability": "stable"
191
+ },
192
+ "locationInModule": {
193
+ "filename": "src/engine/base.ts",
194
+ "line": 26
195
+ },
196
+ "name": "createDeployment",
197
+ "parameters": [
198
+ {
199
+ "name": "options",
200
+ "type": {
201
+ "fqn": "projen-pipelines.DeployStageOptions"
202
+ }
203
+ }
204
+ ]
205
+ },
206
+ {
207
+ "abstract": true,
208
+ "docs": {
209
+ "stability": "stable"
210
+ },
211
+ "locationInModule": {
212
+ "filename": "src/engine/base.ts",
213
+ "line": 24
214
+ },
215
+ "name": "createSynth",
216
+ "parameters": [
217
+ {
218
+ "name": "options",
219
+ "type": {
220
+ "fqn": "projen-pipelines.SynthStageOptions"
221
+ }
222
+ }
223
+ ]
224
+ }
225
+ ],
226
+ "name": "BaseEngine",
227
+ "properties": [
228
+ {
229
+ "docs": {
230
+ "stability": "stable"
231
+ },
232
+ "locationInModule": {
233
+ "filename": "src/engine/base.ts",
234
+ "line": 19
235
+ },
236
+ "name": "app",
237
+ "protected": true,
238
+ "type": {
239
+ "fqn": "projen.awscdk.AwsCdkTypeScriptApp"
240
+ }
241
+ },
242
+ {
243
+ "docs": {
244
+ "stability": "stable"
245
+ },
246
+ "locationInModule": {
247
+ "filename": "src/engine/base.ts",
248
+ "line": 19
249
+ },
250
+ "name": "pipeline",
251
+ "protected": true,
252
+ "type": {
253
+ "fqn": "projen-pipelines.CDKPipeline"
254
+ }
255
+ },
256
+ {
257
+ "docs": {
258
+ "stability": "stable"
259
+ },
260
+ "locationInModule": {
261
+ "filename": "src/engine/base.ts",
262
+ "line": 19
263
+ },
264
+ "name": "props",
265
+ "protected": true,
266
+ "type": {
267
+ "fqn": "projen-pipelines.CDKPipelineOptions"
268
+ }
269
+ }
270
+ ],
271
+ "symbolId": "src/engine/base:BaseEngine"
272
+ },
89
273
  "projen-pipelines.CDKPipeline": {
90
274
  "assembly": "projen-pipelines",
91
275
  "base": "projen.Component",
92
276
  "docs": {
93
- "stability": "stable"
277
+ "remarks": "It also manages tasks such as publishing CDK assets, bumping version based on git tags, and cleaning up conflicting tasks.",
278
+ "stability": "stable",
279
+ "summary": "The CDKPipeline class extends the Component class and sets up the necessary configuration for deploying AWS CDK (Cloud Development Kit) applications across multiple stages."
94
280
  },
95
281
  "fqn": "projen-pipelines.CDKPipeline",
96
282
  "initializer": {
@@ -99,7 +285,7 @@
99
285
  },
100
286
  "locationInModule": {
101
287
  "filename": "src/pipeline.ts",
102
- "line": 24
288
+ "line": 148
103
289
  },
104
290
  "parameters": [
105
291
  {
@@ -119,34 +305,68 @@
119
305
  "kind": "class",
120
306
  "locationInModule": {
121
307
  "filename": "src/pipeline.ts",
122
- "line": 22
308
+ "line": 143
123
309
  },
124
310
  "name": "CDKPipeline",
311
+ "properties": [
312
+ {
313
+ "docs": {
314
+ "stability": "stable"
315
+ },
316
+ "immutable": true,
317
+ "locationInModule": {
318
+ "filename": "src/pipeline.ts",
319
+ "line": 146
320
+ },
321
+ "name": "engine",
322
+ "type": {
323
+ "fqn": "projen-pipelines.BaseEngine"
324
+ }
325
+ },
326
+ {
327
+ "docs": {
328
+ "stability": "stable"
329
+ },
330
+ "immutable": true,
331
+ "locationInModule": {
332
+ "filename": "src/pipeline.ts",
333
+ "line": 145
334
+ },
335
+ "name": "stackPrefix",
336
+ "type": {
337
+ "primitive": "string"
338
+ }
339
+ }
340
+ ],
125
341
  "symbolId": "src/pipeline:CDKPipeline"
126
342
  },
127
343
  "projen-pipelines.CDKPipelineOptions": {
128
344
  "assembly": "projen-pipelines",
129
345
  "datatype": true,
130
346
  "docs": {
131
- "stability": "stable"
347
+ "remarks": "It allows the definition\nof settings such as the stack prefix and package namespace to be used in the\nAWS stack, along with the environments configuration to be used.",
348
+ "stability": "stable",
349
+ "summary": "The CDKPipelineOptions interface is designed to provide configuration options for a CDK (Cloud Development Kit) pipeline."
132
350
  },
133
351
  "fqn": "projen-pipelines.CDKPipelineOptions",
134
352
  "kind": "interface",
135
353
  "locationInModule": {
136
354
  "filename": "src/pipeline.ts",
137
- "line": 16
355
+ "line": 90
138
356
  },
139
357
  "name": "CDKPipelineOptions",
140
358
  "properties": [
141
359
  {
142
360
  "abstract": true,
143
361
  "docs": {
144
- "stability": "stable"
362
+ "remarks": "It allows the\npipeline to deploy to different environments based on the stage of the\ndeployment process, whether that's a personal, feature, dev, or prod stage.",
363
+ "stability": "stable",
364
+ "summary": "This is a map of environments to be used in the pipeline."
145
365
  },
146
366
  "immutable": true,
147
367
  "locationInModule": {
148
368
  "filename": "src/pipeline.ts",
149
- "line": 19
369
+ "line": 112
150
370
  },
151
371
  "name": "environments",
152
372
  "type": {
@@ -156,18 +376,58 @@
156
376
  {
157
377
  "abstract": true,
158
378
  "docs": {
159
- "stability": "stable"
379
+ "remarks": "A namespace helps group related resources together, providing\nbetter organization and ease of management.",
380
+ "stability": "stable",
381
+ "summary": "This field determines the NPM namespace to be used when packaging CDK cloud assemblies."
160
382
  },
161
383
  "immutable": true,
162
384
  "locationInModule": {
163
385
  "filename": "src/pipeline.ts",
164
- "line": 18
386
+ "line": 105
165
387
  },
166
388
  "name": "pkgNamespace",
167
389
  "type": {
168
390
  "primitive": "string"
169
391
  }
170
392
  },
393
+ {
394
+ "abstract": true,
395
+ "docs": {
396
+ "default": "CONTINUOUS_DELIVERY",
397
+ "remarks": "If set to CONTINUOUS_DEPLOYMENT,\nevery commit is deployed as far as possible, hopefully into production. If set to\nCONTINUOUS_DELIVERY, every commit is built and all assets are prepared for a later deployment.",
398
+ "stability": "stable",
399
+ "summary": "This field specifies the type of pipeline to create."
400
+ },
401
+ "immutable": true,
402
+ "locationInModule": {
403
+ "filename": "src/pipeline.ts",
404
+ "line": 121
405
+ },
406
+ "name": "deploymentType",
407
+ "optional": true,
408
+ "type": {
409
+ "fqn": "projen-pipelines.DeploymentType"
410
+ }
411
+ },
412
+ {
413
+ "abstract": true,
414
+ "docs": {
415
+ "default": "- tries to derive it from the projects configuration",
416
+ "remarks": "The component\nwill render workflows for the given system. Options include GitHub and GitLab.",
417
+ "stability": "stable",
418
+ "summary": "This field determines the CI/CD tooling that will be used to run the pipeline."
419
+ },
420
+ "immutable": true,
421
+ "locationInModule": {
422
+ "filename": "src/pipeline.ts",
423
+ "line": 129
424
+ },
425
+ "name": "engine",
426
+ "optional": true,
427
+ "type": {
428
+ "fqn": "projen-pipelines.PipelineEngine"
429
+ }
430
+ },
171
431
  {
172
432
  "abstract": true,
173
433
  "docs": {
@@ -176,9 +436,91 @@
176
436
  "immutable": true,
177
437
  "locationInModule": {
178
438
  "filename": "src/pipeline.ts",
179
- "line": 17
439
+ "line": 131
440
+ },
441
+ "name": "githubConfig",
442
+ "optional": true,
443
+ "type": {
444
+ "fqn": "projen-pipelines.GithubEngineConfig"
445
+ }
446
+ },
447
+ {
448
+ "abstract": true,
449
+ "docs": {
450
+ "stability": "stable"
451
+ },
452
+ "immutable": true,
453
+ "locationInModule": {
454
+ "filename": "src/pipeline.ts",
455
+ "line": 135
456
+ },
457
+ "name": "postSynthCommands",
458
+ "optional": true,
459
+ "type": {
460
+ "collection": {
461
+ "elementtype": {
462
+ "primitive": "string"
463
+ },
464
+ "kind": "array"
465
+ }
466
+ }
467
+ },
468
+ {
469
+ "abstract": true,
470
+ "docs": {
471
+ "stability": "stable"
472
+ },
473
+ "immutable": true,
474
+ "locationInModule": {
475
+ "filename": "src/pipeline.ts",
476
+ "line": 133
477
+ },
478
+ "name": "preInstallCommands",
479
+ "optional": true,
480
+ "type": {
481
+ "collection": {
482
+ "elementtype": {
483
+ "primitive": "string"
484
+ },
485
+ "kind": "array"
486
+ }
487
+ }
488
+ },
489
+ {
490
+ "abstract": true,
491
+ "docs": {
492
+ "stability": "stable"
493
+ },
494
+ "immutable": true,
495
+ "locationInModule": {
496
+ "filename": "src/pipeline.ts",
497
+ "line": 134
498
+ },
499
+ "name": "preSynthCommands",
500
+ "optional": true,
501
+ "type": {
502
+ "collection": {
503
+ "elementtype": {
504
+ "primitive": "string"
505
+ },
506
+ "kind": "array"
507
+ }
508
+ }
509
+ },
510
+ {
511
+ "abstract": true,
512
+ "docs": {
513
+ "default": "project name",
514
+ "stability": "stable",
515
+ "summary": "This field is used to define a prefix for the AWS Stack resources created during the pipeline's operation."
516
+ },
517
+ "immutable": true,
518
+ "locationInModule": {
519
+ "filename": "src/pipeline.ts",
520
+ "line": 98
180
521
  },
181
522
  "name": "stackPrefix",
523
+ "optional": true,
182
524
  "type": {
183
525
  "primitive": "string"
184
526
  }
@@ -186,29 +528,132 @@
186
528
  ],
187
529
  "symbolId": "src/pipeline:CDKPipelineOptions"
188
530
  },
189
- "projen-pipelines.Environment": {
531
+ "projen-pipelines.DeployStageOptions": {
190
532
  "assembly": "projen-pipelines",
191
533
  "datatype": true,
192
534
  "docs": {
193
535
  "stability": "stable"
194
536
  },
537
+ "fqn": "projen-pipelines.DeployStageOptions",
538
+ "kind": "interface",
539
+ "locationInModule": {
540
+ "filename": "src/engine/base.ts",
541
+ "line": 12
542
+ },
543
+ "name": "DeployStageOptions",
544
+ "properties": [
545
+ {
546
+ "abstract": true,
547
+ "docs": {
548
+ "stability": "stable"
549
+ },
550
+ "immutable": true,
551
+ "locationInModule": {
552
+ "filename": "src/engine/base.ts",
553
+ "line": 14
554
+ },
555
+ "name": "commands",
556
+ "type": {
557
+ "collection": {
558
+ "elementtype": {
559
+ "primitive": "string"
560
+ },
561
+ "kind": "array"
562
+ }
563
+ }
564
+ },
565
+ {
566
+ "abstract": true,
567
+ "docs": {
568
+ "stability": "stable"
569
+ },
570
+ "immutable": true,
571
+ "locationInModule": {
572
+ "filename": "src/engine/base.ts",
573
+ "line": 15
574
+ },
575
+ "name": "env",
576
+ "type": {
577
+ "fqn": "projen-pipelines.Environment"
578
+ }
579
+ },
580
+ {
581
+ "abstract": true,
582
+ "docs": {
583
+ "stability": "stable"
584
+ },
585
+ "immutable": true,
586
+ "locationInModule": {
587
+ "filename": "src/engine/base.ts",
588
+ "line": 13
589
+ },
590
+ "name": "stageName",
591
+ "type": {
592
+ "primitive": "string"
593
+ }
594
+ }
595
+ ],
596
+ "symbolId": "src/engine/base:DeployStageOptions"
597
+ },
598
+ "projen-pipelines.DeploymentType": {
599
+ "assembly": "projen-pipelines",
600
+ "docs": {
601
+ "stability": "stable",
602
+ "summary": "Describes the type of pipeline that will be created."
603
+ },
604
+ "fqn": "projen-pipelines.DeploymentType",
605
+ "kind": "enum",
606
+ "locationInModule": {
607
+ "filename": "src/pipeline.ts",
608
+ "line": 77
609
+ },
610
+ "members": [
611
+ {
612
+ "docs": {
613
+ "remarks": "hopefully into production",
614
+ "stability": "stable",
615
+ "summary": "Deploy every commit as far as possible;"
616
+ },
617
+ "name": "CONTINUOUS_DEPLOYMENT"
618
+ },
619
+ {
620
+ "docs": {
621
+ "stability": "stable",
622
+ "summary": "Build every commit and prepare all assets for a later deployment."
623
+ },
624
+ "name": "CONTINUOUS_DELIVERY"
625
+ }
626
+ ],
627
+ "name": "DeploymentType",
628
+ "symbolId": "src/pipeline:DeploymentType"
629
+ },
630
+ "projen-pipelines.Environment": {
631
+ "assembly": "projen-pipelines",
632
+ "datatype": true,
633
+ "docs": {
634
+ "remarks": "Each environment requires a specific account and region for its resources.",
635
+ "stability": "stable",
636
+ "summary": "The Environment interface is designed to hold AWS related information for a specific deployment environment within your infrastructure."
637
+ },
195
638
  "fqn": "projen-pipelines.Environment",
196
639
  "kind": "interface",
197
640
  "locationInModule": {
198
641
  "filename": "src/pipeline.ts",
199
- "line": 4
642
+ "line": 10
200
643
  },
201
644
  "name": "Environment",
202
645
  "properties": [
203
646
  {
204
647
  "abstract": true,
205
648
  "docs": {
206
- "stability": "stable"
649
+ "remarks": "It's important because\ndifferent services or features could have distinct permissions and settings\nin different accounts.",
650
+ "stability": "stable",
651
+ "summary": "The AWS Account ID associated with the environment."
207
652
  },
208
653
  "immutable": true,
209
654
  "locationInModule": {
210
655
  "filename": "src/pipeline.ts",
211
- "line": 5
656
+ "line": 16
212
657
  },
213
658
  "name": "account",
214
659
  "type": {
@@ -218,12 +663,14 @@
218
663
  {
219
664
  "abstract": true,
220
665
  "docs": {
221
- "stability": "stable"
666
+ "remarks": "This determines where your resources\nare created and where your application will run. It can affect latency,\navailability, and pricing.",
667
+ "stability": "stable",
668
+ "summary": "The AWS Region for the environment."
222
669
  },
223
670
  "immutable": true,
224
671
  "locationInModule": {
225
672
  "filename": "src/pipeline.ts",
226
- "line": 6
673
+ "line": 23
227
674
  },
228
675
  "name": "region",
229
676
  "type": {
@@ -237,25 +684,29 @@
237
684
  "assembly": "projen-pipelines",
238
685
  "datatype": true,
239
686
  "docs": {
240
- "stability": "stable"
687
+ "remarks": "Each type of environment - personal,\nfeature, dev, and prod, represents a different stage of development or usage.",
688
+ "stability": "stable",
689
+ "summary": "The EnvironmentMap interface is used to maintain a mapping of different types of environments used in the application."
241
690
  },
242
691
  "fqn": "projen-pipelines.EnvironmentMap",
243
692
  "kind": "interface",
244
693
  "locationInModule": {
245
694
  "filename": "src/pipeline.ts",
246
- "line": 9
695
+ "line": 31
247
696
  },
248
697
  "name": "EnvironmentMap",
249
698
  "properties": [
250
699
  {
251
700
  "abstract": true,
252
701
  "docs": {
253
- "stability": "stable"
702
+ "remarks": "It represents the latest version of the application\nbut may not be as stable as the production environment.",
703
+ "stability": "stable",
704
+ "summary": "The dev environment is a shared environment where developers integrate their feature changes."
254
705
  },
255
706
  "immutable": true,
256
707
  "locationInModule": {
257
708
  "filename": "src/pipeline.ts",
258
- "line": 12
709
+ "line": 52
259
710
  },
260
711
  "name": "dev",
261
712
  "type": {
@@ -265,12 +716,14 @@
265
716
  {
266
717
  "abstract": true,
267
718
  "docs": {
268
- "stability": "stable"
719
+ "remarks": "This allows developers to work on\nindividual features without impacting the stability of the dev or prod\nenvironments.",
720
+ "stability": "stable",
721
+ "summary": "The feature environment is typically used for developing specific features in isolation from the main codebase."
269
722
  },
270
723
  "immutable": true,
271
724
  "locationInModule": {
272
725
  "filename": "src/pipeline.ts",
273
- "line": 11
726
+ "line": 45
274
727
  },
275
728
  "name": "feature",
276
729
  "type": {
@@ -280,12 +733,13 @@
280
733
  {
281
734
  "abstract": true,
282
735
  "docs": {
283
- "stability": "stable"
736
+ "stability": "stable",
737
+ "summary": "The personal environment is usually used for individual development and testing, allowing developers to freely test and experiment without affecting the shared development environment."
284
738
  },
285
739
  "immutable": true,
286
740
  "locationInModule": {
287
741
  "filename": "src/pipeline.ts",
288
- "line": 10
742
+ "line": 37
289
743
  },
290
744
  "name": "personal",
291
745
  "type": {
@@ -295,12 +749,14 @@
295
749
  {
296
750
  "abstract": true,
297
751
  "docs": {
298
- "stability": "stable"
752
+ "remarks": "It should be stable and only receive thoroughly tested changes.",
753
+ "stability": "stable",
754
+ "summary": "The prod environment is where the live, user-facing application runs."
299
755
  },
300
756
  "immutable": true,
301
757
  "locationInModule": {
302
758
  "filename": "src/pipeline.ts",
303
- "line": 13
759
+ "line": 58
304
760
  },
305
761
  "name": "prod",
306
762
  "type": {
@@ -309,8 +765,326 @@
309
765
  }
310
766
  ],
311
767
  "symbolId": "src/pipeline:EnvironmentMap"
768
+ },
769
+ "projen-pipelines.GitHubEngine": {
770
+ "assembly": "projen-pipelines",
771
+ "base": "projen-pipelines.BaseEngine",
772
+ "docs": {
773
+ "stability": "stable"
774
+ },
775
+ "fqn": "projen-pipelines.GitHubEngine",
776
+ "initializer": {
777
+ "docs": {
778
+ "stability": "stable"
779
+ },
780
+ "locationInModule": {
781
+ "filename": "src/engine/github.ts",
782
+ "line": 25
783
+ },
784
+ "parameters": [
785
+ {
786
+ "name": "app",
787
+ "type": {
788
+ "fqn": "projen.awscdk.AwsCdkTypeScriptApp"
789
+ }
790
+ },
791
+ {
792
+ "name": "props",
793
+ "type": {
794
+ "fqn": "projen-pipelines.CDKPipelineOptions"
795
+ }
796
+ },
797
+ {
798
+ "name": "pipeline",
799
+ "type": {
800
+ "fqn": "projen-pipelines.CDKPipeline"
801
+ }
802
+ }
803
+ ]
804
+ },
805
+ "kind": "class",
806
+ "locationInModule": {
807
+ "filename": "src/engine/github.ts",
808
+ "line": 20
809
+ },
810
+ "methods": [
811
+ {
812
+ "docs": {
813
+ "stability": "stable"
814
+ },
815
+ "locationInModule": {
816
+ "filename": "src/engine/github.ts",
817
+ "line": 70
818
+ },
819
+ "name": "createAssetUpload",
820
+ "overrides": "projen-pipelines.BaseEngine",
821
+ "parameters": [
822
+ {
823
+ "name": "options",
824
+ "type": {
825
+ "fqn": "projen-pipelines.AssetUploadStageOptions"
826
+ }
827
+ }
828
+ ]
829
+ },
830
+ {
831
+ "docs": {
832
+ "stability": "stable"
833
+ },
834
+ "locationInModule": {
835
+ "filename": "src/engine/github.ts",
836
+ "line": 94
837
+ },
838
+ "name": "createDeployment",
839
+ "overrides": "projen-pipelines.BaseEngine",
840
+ "parameters": [
841
+ {
842
+ "name": "options",
843
+ "type": {
844
+ "fqn": "projen-pipelines.DeployStageOptions"
845
+ }
846
+ }
847
+ ]
848
+ },
849
+ {
850
+ "docs": {
851
+ "stability": "stable"
852
+ },
853
+ "locationInModule": {
854
+ "filename": "src/engine/github.ts",
855
+ "line": 37
856
+ },
857
+ "name": "createSynth",
858
+ "overrides": "projen-pipelines.BaseEngine",
859
+ "parameters": [
860
+ {
861
+ "name": "options",
862
+ "type": {
863
+ "fqn": "projen-pipelines.SynthStageOptions"
864
+ }
865
+ }
866
+ ]
867
+ }
868
+ ],
869
+ "name": "GitHubEngine",
870
+ "symbolId": "src/engine/github:GitHubEngine"
871
+ },
872
+ "projen-pipelines.GithubEngineConfig": {
873
+ "assembly": "projen-pipelines",
874
+ "datatype": true,
875
+ "docs": {
876
+ "stability": "stable"
877
+ },
878
+ "fqn": "projen-pipelines.GithubEngineConfig",
879
+ "kind": "interface",
880
+ "locationInModule": {
881
+ "filename": "src/engine/github.ts",
882
+ "line": 13
883
+ },
884
+ "name": "GithubEngineConfig",
885
+ "properties": [
886
+ {
887
+ "abstract": true,
888
+ "docs": {
889
+ "stability": "stable"
890
+ },
891
+ "immutable": true,
892
+ "locationInModule": {
893
+ "filename": "src/engine/github.ts",
894
+ "line": 16
895
+ },
896
+ "name": "awsRoleArnForAssetPublishing",
897
+ "optional": true,
898
+ "type": {
899
+ "primitive": "string"
900
+ }
901
+ },
902
+ {
903
+ "abstract": true,
904
+ "docs": {
905
+ "stability": "stable"
906
+ },
907
+ "immutable": true,
908
+ "locationInModule": {
909
+ "filename": "src/engine/github.ts",
910
+ "line": 17
911
+ },
912
+ "name": "awsRoleArnForDeployment",
913
+ "optional": true,
914
+ "type": {
915
+ "fqn": "projen-pipelines.RoleMap"
916
+ }
917
+ },
918
+ {
919
+ "abstract": true,
920
+ "docs": {
921
+ "stability": "stable"
922
+ },
923
+ "immutable": true,
924
+ "locationInModule": {
925
+ "filename": "src/engine/github.ts",
926
+ "line": 15
927
+ },
928
+ "name": "awsRoleArnForSynth",
929
+ "optional": true,
930
+ "type": {
931
+ "primitive": "string"
932
+ }
933
+ },
934
+ {
935
+ "abstract": true,
936
+ "docs": {
937
+ "stability": "stable"
938
+ },
939
+ "immutable": true,
940
+ "locationInModule": {
941
+ "filename": "src/engine/github.ts",
942
+ "line": 14
943
+ },
944
+ "name": "defaultAwsRoleArn",
945
+ "optional": true,
946
+ "type": {
947
+ "primitive": "string"
948
+ }
949
+ }
950
+ ],
951
+ "symbolId": "src/engine/github:GithubEngineConfig"
952
+ },
953
+ "projen-pipelines.PipelineEngine": {
954
+ "assembly": "projen-pipelines",
955
+ "docs": {
956
+ "remarks": "The component will render workflows for the given system",
957
+ "stability": "stable",
958
+ "summary": "The CI/CD tooling used to run your pipeline."
959
+ },
960
+ "fqn": "projen-pipelines.PipelineEngine",
961
+ "kind": "enum",
962
+ "locationInModule": {
963
+ "filename": "src/pipeline.ts",
964
+ "line": 65
965
+ },
966
+ "members": [
967
+ {
968
+ "docs": {
969
+ "stability": "stable",
970
+ "summary": "Create GitHub actions."
971
+ },
972
+ "name": "GITHUB"
973
+ },
974
+ {
975
+ "docs": {
976
+ "stability": "stable",
977
+ "summary": "Create a .gitlab-ci.yaml file."
978
+ },
979
+ "name": "GITLAB"
980
+ }
981
+ ],
982
+ "name": "PipelineEngine",
983
+ "symbolId": "src/pipeline:PipelineEngine"
984
+ },
985
+ "projen-pipelines.RoleMap": {
986
+ "assembly": "projen-pipelines",
987
+ "datatype": true,
988
+ "docs": {
989
+ "stability": "stable"
990
+ },
991
+ "fqn": "projen-pipelines.RoleMap",
992
+ "kind": "interface",
993
+ "locationInModule": {
994
+ "filename": "src/engine/github.ts",
995
+ "line": 7
996
+ },
997
+ "name": "RoleMap",
998
+ "properties": [
999
+ {
1000
+ "abstract": true,
1001
+ "docs": {
1002
+ "stability": "stable"
1003
+ },
1004
+ "immutable": true,
1005
+ "locationInModule": {
1006
+ "filename": "src/engine/github.ts",
1007
+ "line": 9
1008
+ },
1009
+ "name": "dev",
1010
+ "optional": true,
1011
+ "type": {
1012
+ "primitive": "string"
1013
+ }
1014
+ },
1015
+ {
1016
+ "abstract": true,
1017
+ "docs": {
1018
+ "stability": "stable"
1019
+ },
1020
+ "immutable": true,
1021
+ "locationInModule": {
1022
+ "filename": "src/engine/github.ts",
1023
+ "line": 8
1024
+ },
1025
+ "name": "feature",
1026
+ "optional": true,
1027
+ "type": {
1028
+ "primitive": "string"
1029
+ }
1030
+ },
1031
+ {
1032
+ "abstract": true,
1033
+ "docs": {
1034
+ "stability": "stable"
1035
+ },
1036
+ "immutable": true,
1037
+ "locationInModule": {
1038
+ "filename": "src/engine/github.ts",
1039
+ "line": 10
1040
+ },
1041
+ "name": "prod",
1042
+ "optional": true,
1043
+ "type": {
1044
+ "primitive": "string"
1045
+ }
1046
+ }
1047
+ ],
1048
+ "symbolId": "src/engine/github:RoleMap"
1049
+ },
1050
+ "projen-pipelines.SynthStageOptions": {
1051
+ "assembly": "projen-pipelines",
1052
+ "datatype": true,
1053
+ "docs": {
1054
+ "stability": "stable"
1055
+ },
1056
+ "fqn": "projen-pipelines.SynthStageOptions",
1057
+ "kind": "interface",
1058
+ "locationInModule": {
1059
+ "filename": "src/engine/base.ts",
1060
+ "line": 4
1061
+ },
1062
+ "name": "SynthStageOptions",
1063
+ "properties": [
1064
+ {
1065
+ "abstract": true,
1066
+ "docs": {
1067
+ "stability": "stable"
1068
+ },
1069
+ "immutable": true,
1070
+ "locationInModule": {
1071
+ "filename": "src/engine/base.ts",
1072
+ "line": 5
1073
+ },
1074
+ "name": "commands",
1075
+ "type": {
1076
+ "collection": {
1077
+ "elementtype": {
1078
+ "primitive": "string"
1079
+ },
1080
+ "kind": "array"
1081
+ }
1082
+ }
1083
+ }
1084
+ ],
1085
+ "symbolId": "src/engine/base:SynthStageOptions"
312
1086
  }
313
1087
  },
314
- "version": "0.0.1",
315
- "fingerprint": "2LYbS7mnYEB7BvVsmfx7xZ2z3b2bi5G6OW2IkIWWAjs="
1088
+ "version": "0.0.3",
1089
+ "fingerprint": "zkSpz+00oPE+CdLfNnDocGKgRO0gLHx9pa6gSRAVRYg="
316
1090
  }