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/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
  [![npm version](https://badge.fury.io/js/projen-pipelines.svg)](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
- 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.
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
  ![High level Projen Pipelines Overview](documentation/overview.png)
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
- We are considering to allow selecting multiple engines going forward - please let us know if this is a feature you would use or not!
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.80.0',
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`
@@ -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
- private baseOptions;
110
+ protected baseOptions: CDKPipelineOptions;
111
111
  readonly stackPrefix: string;
112
112
  readonly branchName: string;
113
113
  constructor(app: awscdk.AwsCdkTypeScriptApp, baseOptions: CDKPipelineOptions);