projen-pipelines 0.0.71 → 0.0.73
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 +545 -36
- package/API.md +478 -0
- package/README.md +58 -12
- package/lib/awscdk/base.d.ts +1 -1
- package/lib/awscdk/base.js +2 -2
- package/lib/awscdk/bash.js +1 -1
- package/lib/awscdk/github.js +29 -36
- package/lib/awscdk/gitlab.js +1 -1
- package/lib/engines/github.d.ts +15 -0
- package/lib/engines/github.js +45 -0
- package/lib/engines/index.d.ts +1 -0
- package/lib/engines/index.js +18 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/steps/artifact-steps.js +7 -1
- package/lib/steps/aws-assume-role.step.js +9 -1
- package/lib/steps/index.d.ts +3 -0
- package/lib/steps/index.js +4 -1
- package/lib/steps/registries.d.ts +15 -0
- package/lib/steps/registries.js +27 -0
- package/lib/steps/step.d.ts +3 -1
- package/lib/steps/step.js +3 -3
- package/package.json +1 -1
package/API.md
CHANGED
|
@@ -909,6 +909,64 @@ Currently set to false
|
|
|
909
909
|
|
|
910
910
|
## Structs <a name="Structs" id="Structs"></a>
|
|
911
911
|
|
|
912
|
+
### AwsAssumeRoleStepConfig <a name="AwsAssumeRoleStepConfig" id="projen-pipelines.AwsAssumeRoleStepConfig"></a>
|
|
913
|
+
|
|
914
|
+
Configuration for an AWS AssumeRoleStep.
|
|
915
|
+
|
|
916
|
+
#### Initializer <a name="Initializer" id="projen-pipelines.AwsAssumeRoleStepConfig.Initializer"></a>
|
|
917
|
+
|
|
918
|
+
```typescript
|
|
919
|
+
import { AwsAssumeRoleStepConfig } from 'projen-pipelines'
|
|
920
|
+
|
|
921
|
+
const awsAssumeRoleStepConfig: AwsAssumeRoleStepConfig = { ... }
|
|
922
|
+
```
|
|
923
|
+
|
|
924
|
+
#### Properties <a name="Properties" id="Properties"></a>
|
|
925
|
+
|
|
926
|
+
| **Name** | **Type** | **Description** |
|
|
927
|
+
| --- | --- | --- |
|
|
928
|
+
| <code><a href="#projen-pipelines.AwsAssumeRoleStepConfig.property.roleArn">roleArn</a></code> | <code>string</code> | The ARN of the role to assume. |
|
|
929
|
+
| <code><a href="#projen-pipelines.AwsAssumeRoleStepConfig.property.region">region</a></code> | <code>string</code> | The AWS region that should be set. |
|
|
930
|
+
| <code><a href="#projen-pipelines.AwsAssumeRoleStepConfig.property.sessionName">sessionName</a></code> | <code>string</code> | An identifier for the assumed role session. |
|
|
931
|
+
|
|
932
|
+
---
|
|
933
|
+
|
|
934
|
+
##### `roleArn`<sup>Required</sup> <a name="roleArn" id="projen-pipelines.AwsAssumeRoleStepConfig.property.roleArn"></a>
|
|
935
|
+
|
|
936
|
+
```typescript
|
|
937
|
+
public readonly roleArn: string;
|
|
938
|
+
```
|
|
939
|
+
|
|
940
|
+
- *Type:* string
|
|
941
|
+
|
|
942
|
+
The ARN of the role to assume.
|
|
943
|
+
|
|
944
|
+
---
|
|
945
|
+
|
|
946
|
+
##### `region`<sup>Optional</sup> <a name="region" id="projen-pipelines.AwsAssumeRoleStepConfig.property.region"></a>
|
|
947
|
+
|
|
948
|
+
```typescript
|
|
949
|
+
public readonly region: string;
|
|
950
|
+
```
|
|
951
|
+
|
|
952
|
+
- *Type:* string
|
|
953
|
+
|
|
954
|
+
The AWS region that should be set.
|
|
955
|
+
|
|
956
|
+
---
|
|
957
|
+
|
|
958
|
+
##### `sessionName`<sup>Optional</sup> <a name="sessionName" id="projen-pipelines.AwsAssumeRoleStepConfig.property.sessionName"></a>
|
|
959
|
+
|
|
960
|
+
```typescript
|
|
961
|
+
public readonly sessionName: string;
|
|
962
|
+
```
|
|
963
|
+
|
|
964
|
+
- *Type:* string
|
|
965
|
+
|
|
966
|
+
An identifier for the assumed role session.
|
|
967
|
+
|
|
968
|
+
---
|
|
969
|
+
|
|
912
970
|
### BashCDKPipelineOptions <a name="BashCDKPipelineOptions" id="projen-pipelines.BashCDKPipelineOptions"></a>
|
|
913
971
|
|
|
914
972
|
#### Initializer <a name="Initializer" id="projen-pipelines.BashCDKPipelineOptions.Initializer"></a>
|
|
@@ -1400,6 +1458,45 @@ public readonly manualApproval: boolean;
|
|
|
1400
1458
|
|
|
1401
1459
|
---
|
|
1402
1460
|
|
|
1461
|
+
### DownloadArtifactStepConfig <a name="DownloadArtifactStepConfig" id="projen-pipelines.DownloadArtifactStepConfig"></a>
|
|
1462
|
+
|
|
1463
|
+
#### Initializer <a name="Initializer" id="projen-pipelines.DownloadArtifactStepConfig.Initializer"></a>
|
|
1464
|
+
|
|
1465
|
+
```typescript
|
|
1466
|
+
import { DownloadArtifactStepConfig } from 'projen-pipelines'
|
|
1467
|
+
|
|
1468
|
+
const downloadArtifactStepConfig: DownloadArtifactStepConfig = { ... }
|
|
1469
|
+
```
|
|
1470
|
+
|
|
1471
|
+
#### Properties <a name="Properties" id="Properties"></a>
|
|
1472
|
+
|
|
1473
|
+
| **Name** | **Type** | **Description** |
|
|
1474
|
+
| --- | --- | --- |
|
|
1475
|
+
| <code><a href="#projen-pipelines.DownloadArtifactStepConfig.property.name">name</a></code> | <code>string</code> | *No description.* |
|
|
1476
|
+
| <code><a href="#projen-pipelines.DownloadArtifactStepConfig.property.path">path</a></code> | <code>string</code> | *No description.* |
|
|
1477
|
+
|
|
1478
|
+
---
|
|
1479
|
+
|
|
1480
|
+
##### `name`<sup>Required</sup> <a name="name" id="projen-pipelines.DownloadArtifactStepConfig.property.name"></a>
|
|
1481
|
+
|
|
1482
|
+
```typescript
|
|
1483
|
+
public readonly name: string;
|
|
1484
|
+
```
|
|
1485
|
+
|
|
1486
|
+
- *Type:* string
|
|
1487
|
+
|
|
1488
|
+
---
|
|
1489
|
+
|
|
1490
|
+
##### `path`<sup>Required</sup> <a name="path" id="projen-pipelines.DownloadArtifactStepConfig.property.path"></a>
|
|
1491
|
+
|
|
1492
|
+
```typescript
|
|
1493
|
+
public readonly path: string;
|
|
1494
|
+
```
|
|
1495
|
+
|
|
1496
|
+
- *Type:* string
|
|
1497
|
+
|
|
1498
|
+
---
|
|
1499
|
+
|
|
1403
1500
|
### Environment <a name="Environment" id="projen-pipelines.Environment"></a>
|
|
1404
1501
|
|
|
1405
1502
|
The Environment interface is designed to hold AWS related information for a specific deployment environment within your infrastructure.
|
|
@@ -1794,6 +1891,37 @@ IAM role ARN for the synthesis step.
|
|
|
1794
1891
|
|
|
1795
1892
|
---
|
|
1796
1893
|
|
|
1894
|
+
### GithubPackagesLoginStepOptions <a name="GithubPackagesLoginStepOptions" id="projen-pipelines.GithubPackagesLoginStepOptions"></a>
|
|
1895
|
+
|
|
1896
|
+
#### Initializer <a name="Initializer" id="projen-pipelines.GithubPackagesLoginStepOptions.Initializer"></a>
|
|
1897
|
+
|
|
1898
|
+
```typescript
|
|
1899
|
+
import { GithubPackagesLoginStepOptions } from 'projen-pipelines'
|
|
1900
|
+
|
|
1901
|
+
const githubPackagesLoginStepOptions: GithubPackagesLoginStepOptions = { ... }
|
|
1902
|
+
```
|
|
1903
|
+
|
|
1904
|
+
#### Properties <a name="Properties" id="Properties"></a>
|
|
1905
|
+
|
|
1906
|
+
| **Name** | **Type** | **Description** |
|
|
1907
|
+
| --- | --- | --- |
|
|
1908
|
+
| <code><a href="#projen-pipelines.GithubPackagesLoginStepOptions.property.write">write</a></code> | <code>boolean</code> | Whether or not to grant the step write permissions to the registry. |
|
|
1909
|
+
|
|
1910
|
+
---
|
|
1911
|
+
|
|
1912
|
+
##### `write`<sup>Optional</sup> <a name="write" id="projen-pipelines.GithubPackagesLoginStepOptions.property.write"></a>
|
|
1913
|
+
|
|
1914
|
+
```typescript
|
|
1915
|
+
public readonly write: boolean;
|
|
1916
|
+
```
|
|
1917
|
+
|
|
1918
|
+
- *Type:* boolean
|
|
1919
|
+
- *Default:* false
|
|
1920
|
+
|
|
1921
|
+
Whether or not to grant the step write permissions to the registry.
|
|
1922
|
+
|
|
1923
|
+
---
|
|
1924
|
+
|
|
1797
1925
|
### GithubStepConfig <a name="GithubStepConfig" id="projen-pipelines.GithubStepConfig"></a>
|
|
1798
1926
|
|
|
1799
1927
|
Configuration interface for a GitHub Actions step.
|
|
@@ -1813,6 +1941,7 @@ const githubStepConfig: GithubStepConfig = { ... }
|
|
|
1813
1941
|
| <code><a href="#projen-pipelines.GithubStepConfig.property.env">env</a></code> | <code>{[ key: string ]: string}</code> | Additional environment variables to set for this step. |
|
|
1814
1942
|
| <code><a href="#projen-pipelines.GithubStepConfig.property.needs">needs</a></code> | <code>string[]</code> | Dependencies which need to be completed before this step. |
|
|
1815
1943
|
| <code><a href="#projen-pipelines.GithubStepConfig.property.steps">steps</a></code> | <code>projen.github.workflows.JobStep[]</code> | Commands wrapped as GitHub Action job steps. |
|
|
1944
|
+
| <code><a href="#projen-pipelines.GithubStepConfig.property.permissions">permissions</a></code> | <code>projen.github.workflows.JobPermissions</code> | Additional job permissions needed. |
|
|
1816
1945
|
|
|
1817
1946
|
---
|
|
1818
1947
|
|
|
@@ -1852,6 +1981,18 @@ Commands wrapped as GitHub Action job steps.
|
|
|
1852
1981
|
|
|
1853
1982
|
---
|
|
1854
1983
|
|
|
1984
|
+
##### `permissions`<sup>Optional</sup> <a name="permissions" id="projen-pipelines.GithubStepConfig.property.permissions"></a>
|
|
1985
|
+
|
|
1986
|
+
```typescript
|
|
1987
|
+
public readonly permissions: JobPermissions;
|
|
1988
|
+
```
|
|
1989
|
+
|
|
1990
|
+
- *Type:* projen.github.workflows.JobPermissions
|
|
1991
|
+
|
|
1992
|
+
Additional job permissions needed.
|
|
1993
|
+
|
|
1994
|
+
---
|
|
1995
|
+
|
|
1855
1996
|
### GitlabCDKPipelineOptions <a name="GitlabCDKPipelineOptions" id="projen-pipelines.GitlabCDKPipelineOptions"></a>
|
|
1856
1997
|
|
|
1857
1998
|
Options for configuring the GitLab CDK pipeline, extending the base CDK pipeline options.
|
|
@@ -2515,8 +2656,271 @@ public readonly env: Environment;
|
|
|
2515
2656
|
|
|
2516
2657
|
---
|
|
2517
2658
|
|
|
2659
|
+
### UploadArtifactStepConfig <a name="UploadArtifactStepConfig" id="projen-pipelines.UploadArtifactStepConfig"></a>
|
|
2660
|
+
|
|
2661
|
+
#### Initializer <a name="Initializer" id="projen-pipelines.UploadArtifactStepConfig.Initializer"></a>
|
|
2662
|
+
|
|
2663
|
+
```typescript
|
|
2664
|
+
import { UploadArtifactStepConfig } from 'projen-pipelines'
|
|
2665
|
+
|
|
2666
|
+
const uploadArtifactStepConfig: UploadArtifactStepConfig = { ... }
|
|
2667
|
+
```
|
|
2668
|
+
|
|
2669
|
+
#### Properties <a name="Properties" id="Properties"></a>
|
|
2670
|
+
|
|
2671
|
+
| **Name** | **Type** | **Description** |
|
|
2672
|
+
| --- | --- | --- |
|
|
2673
|
+
| <code><a href="#projen-pipelines.UploadArtifactStepConfig.property.name">name</a></code> | <code>string</code> | *No description.* |
|
|
2674
|
+
| <code><a href="#projen-pipelines.UploadArtifactStepConfig.property.path">path</a></code> | <code>string</code> | *No description.* |
|
|
2675
|
+
|
|
2676
|
+
---
|
|
2677
|
+
|
|
2678
|
+
##### `name`<sup>Required</sup> <a name="name" id="projen-pipelines.UploadArtifactStepConfig.property.name"></a>
|
|
2679
|
+
|
|
2680
|
+
```typescript
|
|
2681
|
+
public readonly name: string;
|
|
2682
|
+
```
|
|
2683
|
+
|
|
2684
|
+
- *Type:* string
|
|
2685
|
+
|
|
2686
|
+
---
|
|
2687
|
+
|
|
2688
|
+
##### `path`<sup>Required</sup> <a name="path" id="projen-pipelines.UploadArtifactStepConfig.property.path"></a>
|
|
2689
|
+
|
|
2690
|
+
```typescript
|
|
2691
|
+
public readonly path: string;
|
|
2692
|
+
```
|
|
2693
|
+
|
|
2694
|
+
- *Type:* string
|
|
2695
|
+
|
|
2696
|
+
---
|
|
2697
|
+
|
|
2518
2698
|
## Classes <a name="Classes" id="Classes"></a>
|
|
2519
2699
|
|
|
2700
|
+
### AwsAssumeRoleStep <a name="AwsAssumeRoleStep" id="projen-pipelines.AwsAssumeRoleStep"></a>
|
|
2701
|
+
|
|
2702
|
+
A step that assumes a role in AWS.
|
|
2703
|
+
|
|
2704
|
+
#### Initializers <a name="Initializers" id="projen-pipelines.AwsAssumeRoleStep.Initializer"></a>
|
|
2705
|
+
|
|
2706
|
+
```typescript
|
|
2707
|
+
import { AwsAssumeRoleStep } from 'projen-pipelines'
|
|
2708
|
+
|
|
2709
|
+
new AwsAssumeRoleStep(project: Project, config: AwsAssumeRoleStepConfig)
|
|
2710
|
+
```
|
|
2711
|
+
|
|
2712
|
+
| **Name** | **Type** | **Description** |
|
|
2713
|
+
| --- | --- | --- |
|
|
2714
|
+
| <code><a href="#projen-pipelines.AwsAssumeRoleStep.Initializer.parameter.project">project</a></code> | <code>projen.Project</code> | - The projen project reference. |
|
|
2715
|
+
| <code><a href="#projen-pipelines.AwsAssumeRoleStep.Initializer.parameter.config">config</a></code> | <code><a href="#projen-pipelines.AwsAssumeRoleStepConfig">AwsAssumeRoleStepConfig</a></code> | *No description.* |
|
|
2716
|
+
|
|
2717
|
+
---
|
|
2718
|
+
|
|
2719
|
+
##### `project`<sup>Required</sup> <a name="project" id="projen-pipelines.AwsAssumeRoleStep.Initializer.parameter.project"></a>
|
|
2720
|
+
|
|
2721
|
+
- *Type:* projen.Project
|
|
2722
|
+
|
|
2723
|
+
The projen project reference.
|
|
2724
|
+
|
|
2725
|
+
---
|
|
2726
|
+
|
|
2727
|
+
##### `config`<sup>Required</sup> <a name="config" id="projen-pipelines.AwsAssumeRoleStep.Initializer.parameter.config"></a>
|
|
2728
|
+
|
|
2729
|
+
- *Type:* <a href="#projen-pipelines.AwsAssumeRoleStepConfig">AwsAssumeRoleStepConfig</a>
|
|
2730
|
+
|
|
2731
|
+
---
|
|
2732
|
+
|
|
2733
|
+
#### Methods <a name="Methods" id="Methods"></a>
|
|
2734
|
+
|
|
2735
|
+
| **Name** | **Description** |
|
|
2736
|
+
| --- | --- |
|
|
2737
|
+
| <code><a href="#projen-pipelines.AwsAssumeRoleStep.toBash">toBash</a></code> | Generates a configuration for a bash script step. |
|
|
2738
|
+
| <code><a href="#projen-pipelines.AwsAssumeRoleStep.toGithub">toGithub</a></code> | Generates a configuration for a GitHub Actions step. |
|
|
2739
|
+
| <code><a href="#projen-pipelines.AwsAssumeRoleStep.toGitlab">toGitlab</a></code> | Generates a configuration for a GitLab CI step. |
|
|
2740
|
+
|
|
2741
|
+
---
|
|
2742
|
+
|
|
2743
|
+
##### `toBash` <a name="toBash" id="projen-pipelines.AwsAssumeRoleStep.toBash"></a>
|
|
2744
|
+
|
|
2745
|
+
```typescript
|
|
2746
|
+
public toBash(): BashStepConfig
|
|
2747
|
+
```
|
|
2748
|
+
|
|
2749
|
+
Generates a configuration for a bash script step.
|
|
2750
|
+
|
|
2751
|
+
Should be implemented by subclasses.
|
|
2752
|
+
|
|
2753
|
+
##### `toGithub` <a name="toGithub" id="projen-pipelines.AwsAssumeRoleStep.toGithub"></a>
|
|
2754
|
+
|
|
2755
|
+
```typescript
|
|
2756
|
+
public toGithub(): GithubStepConfig
|
|
2757
|
+
```
|
|
2758
|
+
|
|
2759
|
+
Generates a configuration for a GitHub Actions step.
|
|
2760
|
+
|
|
2761
|
+
Should be implemented by subclasses.
|
|
2762
|
+
|
|
2763
|
+
##### `toGitlab` <a name="toGitlab" id="projen-pipelines.AwsAssumeRoleStep.toGitlab"></a>
|
|
2764
|
+
|
|
2765
|
+
```typescript
|
|
2766
|
+
public toGitlab(): GitlabStepConfig
|
|
2767
|
+
```
|
|
2768
|
+
|
|
2769
|
+
Generates a configuration for a GitLab CI step.
|
|
2770
|
+
|
|
2771
|
+
Should be implemented by subclasses.
|
|
2772
|
+
|
|
2773
|
+
|
|
2774
|
+
|
|
2775
|
+
|
|
2776
|
+
### DownloadArtifactStep <a name="DownloadArtifactStep" id="projen-pipelines.DownloadArtifactStep"></a>
|
|
2777
|
+
|
|
2778
|
+
#### Initializers <a name="Initializers" id="projen-pipelines.DownloadArtifactStep.Initializer"></a>
|
|
2779
|
+
|
|
2780
|
+
```typescript
|
|
2781
|
+
import { DownloadArtifactStep } from 'projen-pipelines'
|
|
2782
|
+
|
|
2783
|
+
new DownloadArtifactStep(project: Project, config: DownloadArtifactStepConfig)
|
|
2784
|
+
```
|
|
2785
|
+
|
|
2786
|
+
| **Name** | **Type** | **Description** |
|
|
2787
|
+
| --- | --- | --- |
|
|
2788
|
+
| <code><a href="#projen-pipelines.DownloadArtifactStep.Initializer.parameter.project">project</a></code> | <code>projen.Project</code> | - The projen project reference. |
|
|
2789
|
+
| <code><a href="#projen-pipelines.DownloadArtifactStep.Initializer.parameter.config">config</a></code> | <code><a href="#projen-pipelines.DownloadArtifactStepConfig">DownloadArtifactStepConfig</a></code> | *No description.* |
|
|
2790
|
+
|
|
2791
|
+
---
|
|
2792
|
+
|
|
2793
|
+
##### `project`<sup>Required</sup> <a name="project" id="projen-pipelines.DownloadArtifactStep.Initializer.parameter.project"></a>
|
|
2794
|
+
|
|
2795
|
+
- *Type:* projen.Project
|
|
2796
|
+
|
|
2797
|
+
The projen project reference.
|
|
2798
|
+
|
|
2799
|
+
---
|
|
2800
|
+
|
|
2801
|
+
##### `config`<sup>Required</sup> <a name="config" id="projen-pipelines.DownloadArtifactStep.Initializer.parameter.config"></a>
|
|
2802
|
+
|
|
2803
|
+
- *Type:* <a href="#projen-pipelines.DownloadArtifactStepConfig">DownloadArtifactStepConfig</a>
|
|
2804
|
+
|
|
2805
|
+
---
|
|
2806
|
+
|
|
2807
|
+
#### Methods <a name="Methods" id="Methods"></a>
|
|
2808
|
+
|
|
2809
|
+
| **Name** | **Description** |
|
|
2810
|
+
| --- | --- |
|
|
2811
|
+
| <code><a href="#projen-pipelines.DownloadArtifactStep.toBash">toBash</a></code> | Generates a configuration for a bash script step. |
|
|
2812
|
+
| <code><a href="#projen-pipelines.DownloadArtifactStep.toGithub">toGithub</a></code> | Generates a configuration for a GitHub Actions step. |
|
|
2813
|
+
| <code><a href="#projen-pipelines.DownloadArtifactStep.toGitlab">toGitlab</a></code> | Generates a configuration for a GitLab CI step. |
|
|
2814
|
+
|
|
2815
|
+
---
|
|
2816
|
+
|
|
2817
|
+
##### `toBash` <a name="toBash" id="projen-pipelines.DownloadArtifactStep.toBash"></a>
|
|
2818
|
+
|
|
2819
|
+
```typescript
|
|
2820
|
+
public toBash(): BashStepConfig
|
|
2821
|
+
```
|
|
2822
|
+
|
|
2823
|
+
Generates a configuration for a bash script step.
|
|
2824
|
+
|
|
2825
|
+
Should be implemented by subclasses.
|
|
2826
|
+
|
|
2827
|
+
##### `toGithub` <a name="toGithub" id="projen-pipelines.DownloadArtifactStep.toGithub"></a>
|
|
2828
|
+
|
|
2829
|
+
```typescript
|
|
2830
|
+
public toGithub(): GithubStepConfig
|
|
2831
|
+
```
|
|
2832
|
+
|
|
2833
|
+
Generates a configuration for a GitHub Actions step.
|
|
2834
|
+
|
|
2835
|
+
Should be implemented by subclasses.
|
|
2836
|
+
|
|
2837
|
+
##### `toGitlab` <a name="toGitlab" id="projen-pipelines.DownloadArtifactStep.toGitlab"></a>
|
|
2838
|
+
|
|
2839
|
+
```typescript
|
|
2840
|
+
public toGitlab(): GitlabStepConfig
|
|
2841
|
+
```
|
|
2842
|
+
|
|
2843
|
+
Generates a configuration for a GitLab CI step.
|
|
2844
|
+
|
|
2845
|
+
Should be implemented by subclasses.
|
|
2846
|
+
|
|
2847
|
+
|
|
2848
|
+
|
|
2849
|
+
|
|
2850
|
+
### GithubPackagesLoginStep <a name="GithubPackagesLoginStep" id="projen-pipelines.GithubPackagesLoginStep"></a>
|
|
2851
|
+
|
|
2852
|
+
#### Initializers <a name="Initializers" id="projen-pipelines.GithubPackagesLoginStep.Initializer"></a>
|
|
2853
|
+
|
|
2854
|
+
```typescript
|
|
2855
|
+
import { GithubPackagesLoginStep } from 'projen-pipelines'
|
|
2856
|
+
|
|
2857
|
+
new GithubPackagesLoginStep(project: Project, options: GithubPackagesLoginStepOptions)
|
|
2858
|
+
```
|
|
2859
|
+
|
|
2860
|
+
| **Name** | **Type** | **Description** |
|
|
2861
|
+
| --- | --- | --- |
|
|
2862
|
+
| <code><a href="#projen-pipelines.GithubPackagesLoginStep.Initializer.parameter.project">project</a></code> | <code>projen.Project</code> | - The projen project reference. |
|
|
2863
|
+
| <code><a href="#projen-pipelines.GithubPackagesLoginStep.Initializer.parameter.options">options</a></code> | <code><a href="#projen-pipelines.GithubPackagesLoginStepOptions">GithubPackagesLoginStepOptions</a></code> | *No description.* |
|
|
2864
|
+
|
|
2865
|
+
---
|
|
2866
|
+
|
|
2867
|
+
##### `project`<sup>Required</sup> <a name="project" id="projen-pipelines.GithubPackagesLoginStep.Initializer.parameter.project"></a>
|
|
2868
|
+
|
|
2869
|
+
- *Type:* projen.Project
|
|
2870
|
+
|
|
2871
|
+
The projen project reference.
|
|
2872
|
+
|
|
2873
|
+
---
|
|
2874
|
+
|
|
2875
|
+
##### `options`<sup>Required</sup> <a name="options" id="projen-pipelines.GithubPackagesLoginStep.Initializer.parameter.options"></a>
|
|
2876
|
+
|
|
2877
|
+
- *Type:* <a href="#projen-pipelines.GithubPackagesLoginStepOptions">GithubPackagesLoginStepOptions</a>
|
|
2878
|
+
|
|
2879
|
+
---
|
|
2880
|
+
|
|
2881
|
+
#### Methods <a name="Methods" id="Methods"></a>
|
|
2882
|
+
|
|
2883
|
+
| **Name** | **Description** |
|
|
2884
|
+
| --- | --- |
|
|
2885
|
+
| <code><a href="#projen-pipelines.GithubPackagesLoginStep.toBash">toBash</a></code> | Generates a configuration for a bash script step. |
|
|
2886
|
+
| <code><a href="#projen-pipelines.GithubPackagesLoginStep.toGithub">toGithub</a></code> | Generates a configuration for a GitHub Actions step. |
|
|
2887
|
+
| <code><a href="#projen-pipelines.GithubPackagesLoginStep.toGitlab">toGitlab</a></code> | Generates a configuration for a GitLab CI step. |
|
|
2888
|
+
|
|
2889
|
+
---
|
|
2890
|
+
|
|
2891
|
+
##### `toBash` <a name="toBash" id="projen-pipelines.GithubPackagesLoginStep.toBash"></a>
|
|
2892
|
+
|
|
2893
|
+
```typescript
|
|
2894
|
+
public toBash(): BashStepConfig
|
|
2895
|
+
```
|
|
2896
|
+
|
|
2897
|
+
Generates a configuration for a bash script step.
|
|
2898
|
+
|
|
2899
|
+
Should be implemented by subclasses.
|
|
2900
|
+
|
|
2901
|
+
##### `toGithub` <a name="toGithub" id="projen-pipelines.GithubPackagesLoginStep.toGithub"></a>
|
|
2902
|
+
|
|
2903
|
+
```typescript
|
|
2904
|
+
public toGithub(): GithubStepConfig
|
|
2905
|
+
```
|
|
2906
|
+
|
|
2907
|
+
Generates a configuration for a GitHub Actions step.
|
|
2908
|
+
|
|
2909
|
+
Should be implemented by subclasses.
|
|
2910
|
+
|
|
2911
|
+
##### `toGitlab` <a name="toGitlab" id="projen-pipelines.GithubPackagesLoginStep.toGitlab"></a>
|
|
2912
|
+
|
|
2913
|
+
```typescript
|
|
2914
|
+
public toGitlab(): GitlabStepConfig
|
|
2915
|
+
```
|
|
2916
|
+
|
|
2917
|
+
Generates a configuration for a GitLab CI step.
|
|
2918
|
+
|
|
2919
|
+
Should be implemented by subclasses.
|
|
2920
|
+
|
|
2921
|
+
|
|
2922
|
+
|
|
2923
|
+
|
|
2520
2924
|
### PipelineStep <a name="PipelineStep" id="projen-pipelines.PipelineStep"></a>
|
|
2521
2925
|
|
|
2522
2926
|
Abstract class defining the structure of a pipeline step.
|
|
@@ -2658,6 +3062,80 @@ Converts the step into a GitLab CI configuration.
|
|
|
2658
3062
|
|
|
2659
3063
|
|
|
2660
3064
|
|
|
3065
|
+
### UploadArtifactStep <a name="UploadArtifactStep" id="projen-pipelines.UploadArtifactStep"></a>
|
|
3066
|
+
|
|
3067
|
+
#### Initializers <a name="Initializers" id="projen-pipelines.UploadArtifactStep.Initializer"></a>
|
|
3068
|
+
|
|
3069
|
+
```typescript
|
|
3070
|
+
import { UploadArtifactStep } from 'projen-pipelines'
|
|
3071
|
+
|
|
3072
|
+
new UploadArtifactStep(project: Project, config: UploadArtifactStepConfig)
|
|
3073
|
+
```
|
|
3074
|
+
|
|
3075
|
+
| **Name** | **Type** | **Description** |
|
|
3076
|
+
| --- | --- | --- |
|
|
3077
|
+
| <code><a href="#projen-pipelines.UploadArtifactStep.Initializer.parameter.project">project</a></code> | <code>projen.Project</code> | - The projen project reference. |
|
|
3078
|
+
| <code><a href="#projen-pipelines.UploadArtifactStep.Initializer.parameter.config">config</a></code> | <code><a href="#projen-pipelines.UploadArtifactStepConfig">UploadArtifactStepConfig</a></code> | *No description.* |
|
|
3079
|
+
|
|
3080
|
+
---
|
|
3081
|
+
|
|
3082
|
+
##### `project`<sup>Required</sup> <a name="project" id="projen-pipelines.UploadArtifactStep.Initializer.parameter.project"></a>
|
|
3083
|
+
|
|
3084
|
+
- *Type:* projen.Project
|
|
3085
|
+
|
|
3086
|
+
The projen project reference.
|
|
3087
|
+
|
|
3088
|
+
---
|
|
3089
|
+
|
|
3090
|
+
##### `config`<sup>Required</sup> <a name="config" id="projen-pipelines.UploadArtifactStep.Initializer.parameter.config"></a>
|
|
3091
|
+
|
|
3092
|
+
- *Type:* <a href="#projen-pipelines.UploadArtifactStepConfig">UploadArtifactStepConfig</a>
|
|
3093
|
+
|
|
3094
|
+
---
|
|
3095
|
+
|
|
3096
|
+
#### Methods <a name="Methods" id="Methods"></a>
|
|
3097
|
+
|
|
3098
|
+
| **Name** | **Description** |
|
|
3099
|
+
| --- | --- |
|
|
3100
|
+
| <code><a href="#projen-pipelines.UploadArtifactStep.toBash">toBash</a></code> | Generates a configuration for a bash script step. |
|
|
3101
|
+
| <code><a href="#projen-pipelines.UploadArtifactStep.toGithub">toGithub</a></code> | Generates a configuration for a GitHub Actions step. |
|
|
3102
|
+
| <code><a href="#projen-pipelines.UploadArtifactStep.toGitlab">toGitlab</a></code> | Generates a configuration for a GitLab CI step. |
|
|
3103
|
+
|
|
3104
|
+
---
|
|
3105
|
+
|
|
3106
|
+
##### `toBash` <a name="toBash" id="projen-pipelines.UploadArtifactStep.toBash"></a>
|
|
3107
|
+
|
|
3108
|
+
```typescript
|
|
3109
|
+
public toBash(): BashStepConfig
|
|
3110
|
+
```
|
|
3111
|
+
|
|
3112
|
+
Generates a configuration for a bash script step.
|
|
3113
|
+
|
|
3114
|
+
Should be implemented by subclasses.
|
|
3115
|
+
|
|
3116
|
+
##### `toGithub` <a name="toGithub" id="projen-pipelines.UploadArtifactStep.toGithub"></a>
|
|
3117
|
+
|
|
3118
|
+
```typescript
|
|
3119
|
+
public toGithub(): GithubStepConfig
|
|
3120
|
+
```
|
|
3121
|
+
|
|
3122
|
+
Generates a configuration for a GitHub Actions step.
|
|
3123
|
+
|
|
3124
|
+
Should be implemented by subclasses.
|
|
3125
|
+
|
|
3126
|
+
##### `toGitlab` <a name="toGitlab" id="projen-pipelines.UploadArtifactStep.toGitlab"></a>
|
|
3127
|
+
|
|
3128
|
+
```typescript
|
|
3129
|
+
public toGitlab(): GitlabStepConfig
|
|
3130
|
+
```
|
|
3131
|
+
|
|
3132
|
+
Generates a configuration for a GitLab CI step.
|
|
3133
|
+
|
|
3134
|
+
Should be implemented by subclasses.
|
|
3135
|
+
|
|
3136
|
+
|
|
3137
|
+
|
|
3138
|
+
|
|
2661
3139
|
|
|
2662
3140
|
## Enums <a name="Enums" id="Enums"></a>
|
|
2663
3141
|
|
package/README.md
CHANGED
|
@@ -2,17 +2,53 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/projen-pipelines)
|
|
4
4
|
|
|
5
|
+
Projen Pipelines is an open-source project that automates the generation of CI/CD pipelines using Projen,
|
|
6
|
+
a project configuration tool created by the inventor of AWS CDK.
|
|
7
|
+
It provides high-level abstractions for defining continuous delivery (CD) pipelines for applications,
|
|
8
|
+
specifically designed to work with the projen project configuration engine.
|
|
5
9
|
|
|
6
|
-
|
|
7
|
-
|
|
10
|
+
### Key Features
|
|
11
|
+
|
|
12
|
+
* Automates code generation for CI/CD pipelines
|
|
13
|
+
* Supports multiple CI/CD platforms (currently GitHub Actions and GitLab CI, with more in development)
|
|
14
|
+
* Provides baked-in proven defaults for pipeline configurations
|
|
15
|
+
* Enables compliance-as-code integration
|
|
16
|
+
* Allows easy switching between different CI/CD platforms without rewriting pipeline configurations
|
|
17
|
+
* Handles complex deployment scenarios with less code
|
|
18
|
+
* Manages AWS infrastructure more efficiently and straightforwardly
|
|
19
|
+
|
|
20
|
+
### Benefits
|
|
21
|
+
|
|
22
|
+
* Reduces repetitive work in writing and maintaining pipeline configurations
|
|
23
|
+
* Ensures consistency across projects by using proven defaults
|
|
24
|
+
* Simplifies compliance management by integrating it directly into pipeline definitions
|
|
25
|
+
* Facilitates platform migrations (e.g., from GitHub to GitLab) by abstracting pipeline definitions
|
|
26
|
+
|
|
27
|
+
## Beyond AWS CDK: A Vision for Universal CI/CD Pipeline Generation
|
|
28
|
+
|
|
29
|
+
While Projen Pipelines currently focuses on AWS CDK applications, our vision extends far beyond this initial scope.
|
|
30
|
+
We aim to evolve into a universal CI/CD pipeline generator capable of supporting a wide variety of application types and deployment targets.
|
|
31
|
+
|
|
32
|
+
### Future Direction:
|
|
33
|
+
|
|
34
|
+
1. Diverse Application Support: We plan to expand our capabilities to generate pipelines for various application types, including but not limited to:
|
|
35
|
+
* Traditional web applications
|
|
36
|
+
* Terraform / OpenTOFU projects
|
|
37
|
+
* Winglang applications
|
|
38
|
+
1. Multi-Cloud Deployment: While we started with AWS, we aim to support deployments to other major cloud providers like Azure, Google Cloud Platform, and others.
|
|
39
|
+
1. On-Premises and Hybrid Scenarios: We recognize the importance of on-premises and hybrid cloud setups and plan to cater to these deployment models.
|
|
40
|
+
1. Framework Agnostic: Our goal is to make Projen Pipelines adaptable to work with various development frameworks and tools, not just those related to AWS or cloud deployments.
|
|
41
|
+
1. Extensibility: We're designing the system to be easily extensible, allowing the community to contribute modules for new application types, deployment targets, or CI/CD platforms.
|
|
42
|
+
|
|
43
|
+
By broadening our scope, we aim to create a tool that can standardize and simplify CI/CD pipeline creation across the entire spectrum of modern application development and deployment scenarios.
|
|
44
|
+
We invite the community to join us in this journey, contributing ideas, use cases, and code to help realize this vision.
|
|
8
45
|
|
|
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
46
|
## How Projen Pipelines work
|
|
12
47
|

|
|
13
|
-
Under the hood, after you defined the pipeline and selected target engine that you want to work on, we are using code generation methods that will create - in your project - the required CI/CD pipeline.
|
|
14
48
|
|
|
15
|
-
|
|
49
|
+
Under the hood, after you define the pipeline and select the target engine you want to work on, we use code generation methods to create the required CI/CD pipeline in your project.
|
|
50
|
+
|
|
51
|
+
We are considering allowing the selection of multiple engines going forward - please let us know if this is a feature you would use!
|
|
16
52
|
|
|
17
53
|
## Getting Started
|
|
18
54
|
|
|
@@ -24,7 +60,7 @@ After installing the package, you can import and use the constructs to define yo
|
|
|
24
60
|
|
|
25
61
|
You will also have to setup an IAM role that can be used by GitHub Actions. You can find a tutorial on how set this up here: [Configuring OpenID Connect in Amazon Web Services](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services)
|
|
26
62
|
|
|
27
|
-
### Usage
|
|
63
|
+
### Usage with AWS CDK
|
|
28
64
|
|
|
29
65
|
You can start using the constructs provided by Projen Pipelines in your AWS CDK applications. Here's a brief example:
|
|
30
66
|
|
|
@@ -34,7 +70,7 @@ import { GithubCDKPipeline } from 'projen-pipelines';
|
|
|
34
70
|
|
|
35
71
|
// Define your AWS CDK TypeScript App
|
|
36
72
|
const app = new awscdk.AwsCdkTypeScriptApp({
|
|
37
|
-
cdkVersion: '2.
|
|
73
|
+
cdkVersion: '2.150.0',
|
|
38
74
|
name: 'my-awesome-app',
|
|
39
75
|
defaultReleaseBranch: 'main',
|
|
40
76
|
devDeps: [
|
|
@@ -42,8 +78,6 @@ const app = new awscdk.AwsCdkTypeScriptApp({
|
|
|
42
78
|
],
|
|
43
79
|
});
|
|
44
80
|
|
|
45
|
-
project.package.addPackageResolutions('projen');
|
|
46
|
-
|
|
47
81
|
// Create the pipeline
|
|
48
82
|
new GithubCDKPipeline(app, {
|
|
49
83
|
stackPrefix: 'MyApp',
|
|
@@ -151,13 +185,18 @@ Here's a brief description of each one:
|
|
|
151
185
|
|
|
152
186
|
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.
|
|
153
187
|
|
|
188
|
+
## Current Status
|
|
189
|
+
|
|
190
|
+
Projen-Pipelines is currently in version 0.x, awaiting Projen's 1.0 release. Despite its pre-1.0 status, it's being used in several production environments.
|
|
191
|
+
|
|
154
192
|
## Contributing
|
|
193
|
+
|
|
155
194
|
### By raising feature requests or issues
|
|
195
|
+
|
|
156
196
|
Use the Github integrated "[Issues](https://github.com/taimos/projen-pipelines/issues/new)" view to create an item that you would love to have added to our open source project.
|
|
157
197
|
|
|
158
198
|
***No request is too big or too small*** - get your thoughts created and we'll get back to you if we have questions!
|
|
159
199
|
|
|
160
|
-
|
|
161
200
|
### By committing code
|
|
162
201
|
|
|
163
202
|
We welcome all contributions to Projen Pipelines! Here's how you can get started:
|
|
@@ -189,13 +228,20 @@ git commit -m "feat: Your descriptive commit message"
|
|
|
189
228
|
7. **Push to your Fork**: Push your commits to the branch in your forked repository.
|
|
190
229
|
|
|
191
230
|
```bash
|
|
192
|
-
git push origin my-branch
|
|
231
|
+
git push -u origin my-branch
|
|
193
232
|
```
|
|
194
233
|
|
|
195
234
|
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.
|
|
196
235
|
|
|
197
236
|
Your pull request will be reviewed and hopefully merged quickly. Thanks for contributing!
|
|
198
237
|
|
|
238
|
+
## Future Plans
|
|
239
|
+
|
|
240
|
+
* Move the project to the Open Construct Foundation for broader community involvement
|
|
241
|
+
* Continue expanding support for different CI/CD platforms and project types
|
|
242
|
+
|
|
243
|
+
Join us in elevating CI/CD pipeline discussions from implementation details to fundamental building blocks, and help create a more efficient, standardized approach to pipeline development!
|
|
244
|
+
|
|
199
245
|
## Known issues
|
|
200
246
|
|
|
201
247
|
### Environment variable not recognized during `npx projen`
|
package/lib/awscdk/base.d.ts
CHANGED
|
@@ -107,7 +107,7 @@ export interface CDKPipelineOptions {
|
|
|
107
107
|
*/
|
|
108
108
|
export declare abstract class CDKPipeline extends Component {
|
|
109
109
|
protected app: awscdk.AwsCdkTypeScriptApp;
|
|
110
|
-
|
|
110
|
+
protected baseOptions: CDKPipelineOptions;
|
|
111
111
|
readonly stackPrefix: string;
|
|
112
112
|
readonly branchName: string;
|
|
113
113
|
constructor(app: awscdk.AwsCdkTypeScriptApp, baseOptions: CDKPipelineOptions);
|