projen 0.49.1 → 0.49.2

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.
Files changed (119) hide show
  1. package/.jsii +4673 -13
  2. package/API.md +930 -0
  3. package/changelog.md +6 -1
  4. package/docs/gitlab.md +67 -0
  5. package/lib/awscdk/auto-discover.js +1 -1
  6. package/lib/awscdk/awscdk-app-java.js +1 -1
  7. package/lib/awscdk/awscdk-app-ts.js +1 -1
  8. package/lib/awscdk/awscdk-construct.js +2 -2
  9. package/lib/awscdk/awscdk-deps-java.js +1 -1
  10. package/lib/awscdk/awscdk-deps-js.js +1 -1
  11. package/lib/awscdk/awscdk-deps.js +1 -1
  12. package/lib/awscdk/cdk-config.js +1 -1
  13. package/lib/awscdk/cdk-tasks.js +1 -1
  14. package/lib/awscdk/integration-test.js +1 -1
  15. package/lib/awscdk/lambda-function.js +2 -2
  16. package/lib/build/build-workflow.js +1 -1
  17. package/lib/cdk/construct-lib.js +1 -1
  18. package/lib/cdk/jsii-docgen.js +1 -1
  19. package/lib/cdk/jsii-project.js +1 -1
  20. package/lib/cdk8s/cdk8s-app-ts.js +1 -1
  21. package/lib/cdk8s/cdk8s-construct.js +1 -1
  22. package/lib/cdktf/cdktf-construct.js +1 -1
  23. package/lib/component.js +1 -1
  24. package/lib/dependencies.js +1 -1
  25. package/lib/dev-env.js +1 -1
  26. package/lib/docker-compose.js +2 -2
  27. package/lib/file.js +1 -1
  28. package/lib/gitattributes.js +1 -1
  29. package/lib/github/auto-approve.js +1 -1
  30. package/lib/github/auto-merge.js +1 -1
  31. package/lib/github/dependabot.js +1 -1
  32. package/lib/github/github-project.js +1 -1
  33. package/lib/github/github.js +1 -1
  34. package/lib/github/mergify.js +1 -1
  35. package/lib/github/pr-template.js +1 -1
  36. package/lib/github/pull-request-lint.js +1 -1
  37. package/lib/github/stale.js +1 -1
  38. package/lib/github/task-workflow.js +1 -1
  39. package/lib/github/workflows.js +1 -1
  40. package/lib/gitlab/configuration-model.d.ts +1308 -0
  41. package/lib/gitlab/configuration-model.js +122 -0
  42. package/lib/gitlab/configuration.d.ts +260 -0
  43. package/lib/gitlab/configuration.js +296 -0
  44. package/lib/gitlab/gitlab-configuration.d.ts +30 -0
  45. package/lib/gitlab/gitlab-configuration.js +49 -0
  46. package/lib/gitlab/index.d.ts +4 -0
  47. package/lib/gitlab/index.js +17 -0
  48. package/lib/gitlab/nested-configuration.d.ts +26 -0
  49. package/lib/gitlab/nested-configuration.js +38 -0
  50. package/lib/gitpod.js +1 -1
  51. package/lib/ignore-file.js +1 -1
  52. package/lib/index.d.ts +1 -0
  53. package/lib/index.js +2 -1
  54. package/lib/ini.js +1 -1
  55. package/lib/java/java-project.js +1 -1
  56. package/lib/java/junit.js +1 -1
  57. package/lib/java/maven-compile.js +1 -1
  58. package/lib/java/maven-packaging.js +1 -1
  59. package/lib/java/maven-sample.js +1 -1
  60. package/lib/java/pom.js +1 -1
  61. package/lib/java/projenrc.js +1 -1
  62. package/lib/javascript/bundler.js +1 -1
  63. package/lib/javascript/eslint.js +1 -1
  64. package/lib/javascript/jest.js +1 -1
  65. package/lib/javascript/node-package.js +1 -1
  66. package/lib/javascript/node-project.js +1 -1
  67. package/lib/javascript/npm-config.js +1 -1
  68. package/lib/javascript/prettier.js +1 -1
  69. package/lib/javascript/projenrc.js +1 -1
  70. package/lib/javascript/typescript-config.js +1 -1
  71. package/lib/javascript/upgrade-dependencies.js +2 -2
  72. package/lib/json.js +1 -1
  73. package/lib/license.js +1 -1
  74. package/lib/logger.js +1 -1
  75. package/lib/makefile.js +1 -1
  76. package/lib/object-file.js +1 -1
  77. package/lib/project-build.js +1 -1
  78. package/lib/project.js +1 -1
  79. package/lib/projects.js +1 -1
  80. package/lib/projenrc-json.js +1 -1
  81. package/lib/python/pip.js +1 -1
  82. package/lib/python/poetry.js +2 -2
  83. package/lib/python/projenrc.js +1 -1
  84. package/lib/python/pytest.js +1 -1
  85. package/lib/python/python-project.js +1 -1
  86. package/lib/python/python-sample.js +1 -1
  87. package/lib/python/requirements-file.js +1 -1
  88. package/lib/python/setuppy.js +1 -1
  89. package/lib/python/setuptools.js +1 -1
  90. package/lib/python/venv.js +1 -1
  91. package/lib/readme.js +1 -1
  92. package/lib/release/publisher.js +1 -1
  93. package/lib/release/release-trigger.js +1 -1
  94. package/lib/release/release.js +1 -1
  95. package/lib/sample-file.js +2 -2
  96. package/lib/semver.js +1 -1
  97. package/lib/source-code.js +1 -1
  98. package/lib/task-runtime.js +1 -1
  99. package/lib/task.js +1 -1
  100. package/lib/tasks.js +1 -1
  101. package/lib/testing.js +1 -1
  102. package/lib/textfile.js +1 -1
  103. package/lib/toml.js +1 -1
  104. package/lib/typescript/projenrc.js +1 -1
  105. package/lib/typescript/typescript-typedoc.js +1 -1
  106. package/lib/typescript/typescript.js +3 -3
  107. package/lib/version.js +1 -1
  108. package/lib/vscode/devcontainer.js +1 -1
  109. package/lib/vscode/launch-config.js +1 -1
  110. package/lib/vscode/vscode.js +1 -1
  111. package/lib/web/next.js +3 -3
  112. package/lib/web/postcss.js +1 -1
  113. package/lib/web/react.js +4 -4
  114. package/lib/web/tailwind.js +1 -1
  115. package/lib/xmlfile.js +1 -1
  116. package/lib/yaml.js +1 -1
  117. package/package.json +1 -1
  118. package/releasetag.txt +1 -1
  119. package/version.txt +1 -1
package/API.md CHANGED
@@ -68,6 +68,9 @@ Name|Description
68
68
  [github.PullRequestTemplate](#projen-github-pullrequesttemplate)|Template for GitHub pull requests.
69
69
  [github.Stale](#projen-github-stale)|Warns and then closes issues and PRs that have had no activity for a specified amount of time.
70
70
  [github.TaskWorkflow](#projen-github-taskworkflow)|A GitHub workflow for common build tasks within a project.
71
+ [gitlab.CiConfiguration](#projen-gitlab-ciconfiguration)|CI for GitLab.
72
+ [gitlab.GitlabConfiguration](#projen-gitlab-gitlabconfiguration)|A GitLab CI for the main `.gitlab-ci.yml` file.
73
+ [gitlab.NestedConfiguration](#projen-gitlab-nestedconfiguration)|A GitLab CI for templates that are created and included in the `.gitlab-ci.yml` file.
71
74
  [java.JavaProject](#projen-java-javaproject)|Java project.
72
75
  [java.Junit](#projen-java-junit)|Implements JUnit-based testing.
73
76
  [java.MavenCompile](#projen-java-mavencompile)|Adds the maven-compiler plugin to a POM file and the `compile` task.
@@ -209,6 +212,35 @@ Name|Description
209
212
  [github.StaleBehavior](#projen-github-stalebehavior)|Stale behavior.
210
213
  [github.StaleOptions](#projen-github-staleoptions)|Options for `Stale`.
211
214
  [github.TaskWorkflowOptions](#projen-github-taskworkflowoptions)|*No description*
215
+ [gitlab.AllowFailure](#projen-gitlab-allowfailure)|Exit code that are not considered failure.
216
+ [gitlab.Artifacts](#projen-gitlab-artifacts)|Used to specify a list of files and directories that should be attached to the job if it succeeds.
217
+ [gitlab.Assets](#projen-gitlab-assets)|Asset configuration for a release.
218
+ [gitlab.Cache](#projen-gitlab-cache)|Cache Definition.
219
+ [gitlab.CiConfigurationOptions](#projen-gitlab-ciconfigurationoptions)|Options for `CiConfiguration`.
220
+ [gitlab.Default](#projen-gitlab-default)|Default settings for the CI Configuration.
221
+ [gitlab.Engine](#projen-gitlab-engine)|The engine configuration for a secret.
222
+ [gitlab.Environment](#projen-gitlab-environment)|The environment that a job deploys to.
223
+ [gitlab.Filter](#projen-gitlab-filter)|Filtering options for when a job will run.
224
+ [gitlab.Image](#projen-gitlab-image)|Specifies the docker image to use for the job or globally for all jobs.
225
+ [gitlab.Include](#projen-gitlab-include)|An included YAML file.
226
+ [gitlab.IncludeRule](#projen-gitlab-includerule)|Rules allows for an array of individual rule objects to be evaluated in order, until one matches and dynamically provides attributes to the job.
227
+ [gitlab.Inherit](#projen-gitlab-inherit)|Controls inheritance of globally-defined defaults and variables.
228
+ [gitlab.Job](#projen-gitlab-job)|Jobs are the most fundamental element of a .gitlab-ci.yml file.
229
+ [gitlab.KubernetesConfig](#projen-gitlab-kubernetesconfig)|Used to configure the kubernetes deployment for this environment.
230
+ [gitlab.Link](#projen-gitlab-link)|Link configuration for an asset.
231
+ [gitlab.Need](#projen-gitlab-need)|A jobs in a previous stage whose sole completion is needed to start the current job.
232
+ [gitlab.Parallel](#projen-gitlab-parallel)|Used to run a job multiple times in parallel in a single pipeline.
233
+ [gitlab.Release](#projen-gitlab-release)|Indicates that the job creates a Release.
234
+ [gitlab.Reports](#projen-gitlab-reports)|Reports will be uploaded as artifacts, and often displayed in the Gitlab UI, such as in Merge Requests.
235
+ [gitlab.Retry](#projen-gitlab-retry)|How many times a job is retried if it fails.
236
+ [gitlab.Secret](#projen-gitlab-secret)|A CI/CD secret.
237
+ [gitlab.Service](#projen-gitlab-service)|Used to specify an additional Docker image to run scripts in.
238
+ [gitlab.Trigger](#projen-gitlab-trigger)|Trigger a multi-project or a child pipeline.
239
+ [gitlab.TriggerInclude](#projen-gitlab-triggerinclude)|References a local file or an artifact from another job to define the pipeline configuration.
240
+ [gitlab.VariableConfig](#projen-gitlab-variableconfig)|Explains what the global variable is used for, what the acceptable values are.
241
+ [gitlab.VaultConfig](#projen-gitlab-vaultconfig)|Specification for a secret provided by a HashiCorp Vault.
242
+ [gitlab.Workflow](#projen-gitlab-workflow)|Used to control pipeline behavior.
243
+ [gitlab.WorkflowRule](#projen-gitlab-workflowrule)|Used to control whether or not a whole pipeline is created.
212
244
  [java.JavaProjectCommonOptions](#projen-java-javaprojectcommonoptions)|Options for `JavaProject`.
213
245
  [java.JavaProjectOptions](#projen-java-javaprojectoptions)|Options for `JavaProject`.
214
246
  [java.JunitOptions](#projen-java-junitoptions)|Options for `Junit`.
@@ -328,6 +360,15 @@ Name|Description
328
360
  [github.DependabotRegistryType](#projen-github-dependabotregistrytype)|Each configuration type requires you to provide particular settings.
329
361
  [github.DependabotScheduleInterval](#projen-github-dependabotscheduleinterval)|How often to check for new versions and raise pull requests for version updates.
330
362
  [github.VersioningStrategy](#projen-github-versioningstrategy)|The strategy to use when edits manifest and lock files.
363
+ [gitlab.Action](#projen-gitlab-action)|Specifies what this job will do.
364
+ [gitlab.CacheWhen](#projen-gitlab-cachewhen)|Configure when artifacts are uploaded depended on job status.
365
+ [gitlab.DefaultElement](#projen-gitlab-defaultelement)|*No description*
366
+ [gitlab.DeploymentTier](#projen-gitlab-deploymenttier)|Explicitly specifies the tier of the deployment environment if non-standard environment name is used.
367
+ [gitlab.JobWhen](#projen-gitlab-jobwhen)|Describes the conditions for when to run the job.
368
+ [gitlab.KubernetesEnum](#projen-gitlab-kubernetesenum)|Filter job based on if Kubernetes integration is active.
369
+ [gitlab.LinkType](#projen-gitlab-linktype)|The content kind of what users can download via url.
370
+ [gitlab.Strategy](#projen-gitlab-strategy)|You can mirror the pipeline status from the triggered pipeline to the source bridge job by using strategy: depend.
371
+ [gitlab.WorkflowWhen](#projen-gitlab-workflowwhen)|Describes the conditions for when to run the job.
331
372
  [javascript.ArrowParens](#projen-javascript-arrowparens)|*No description*
332
373
  [javascript.AutoRelease](#projen-javascript-autorelease)|Automatic bump modes.
333
374
  [javascript.EmbeddedLanguageFormatting](#projen-javascript-embeddedlanguageformatting)|*No description*
@@ -5571,6 +5612,254 @@ Name | Type | Description
5571
5612
 
5572
5613
 
5573
5614
 
5615
+ ## class CiConfiguration 🔹 <a id="projen-gitlab-ciconfiguration"></a>
5616
+
5617
+ CI for GitLab.
5618
+
5619
+ A CI is a configurable automated process made up of one or more stages/jobs.
5620
+
5621
+ __Submodule__: gitlab
5622
+
5623
+ __Extends__: [Component](#projen-component)
5624
+
5625
+ ### Initializer
5626
+
5627
+
5628
+
5629
+
5630
+ ```ts
5631
+ new gitlab.CiConfiguration(project: Project, name: string, options?: CiConfigurationOptions)
5632
+ ```
5633
+
5634
+ * **project** (<code>[Project](#projen-project)</code>) *No description*
5635
+ * **name** (<code>string</code>) *No description*
5636
+ * **options** (<code>[gitlab.CiConfigurationOptions](#projen-gitlab-ciconfigurationoptions)</code>) *No description*
5637
+ * **default** (<code>[gitlab.Default](#projen-gitlab-default)</code>) Default settings for the CI Configuration. __*Optional*__
5638
+ * **jobs** (<code>Map<string, [gitlab.Job](#projen-gitlab-job)></code>) An initial set of jobs to add to the configuration. __*Optional*__
5639
+ * **pages** (<code>[gitlab.Job](#projen-gitlab-job)</code>) A special job used to upload static sites to Gitlab pages. __*Optional*__
5640
+ * **stages** (<code>Array<string></code>) Groups jobs into stages. __*Optional*__
5641
+ * **variables** (<code>Map<string, any></code>) Global variables that are passed to jobs. __*Optional*__
5642
+ * **workflow** (<code>[gitlab.Workflow](#projen-gitlab-workflow)</code>) Used to control pipeline behavior. __*Optional*__
5643
+
5644
+
5645
+
5646
+ ### Properties
5647
+
5648
+
5649
+ Name | Type | Description
5650
+ -----|------|-------------
5651
+ **defaultAfterScript**🔹 | <code>Array<string></code> | Defines default scripts that should run *after* all jobs.
5652
+ **defaultBeforeScript**🔹 | <code>Array<string></code> | Defines default scripts that should run *before* all jobs.
5653
+ **defaultTags**🔹 | <code>Array<string></code> | Used to select a specific runner from the list of all runners that are available for the project.
5654
+ **file**🔹 | <code>[YamlFile](#projen-yamlfile)</code> | The workflow YAML file.
5655
+ **jobs**🔹 | <code>Map<string, [gitlab.Job](#projen-gitlab-job)></code> | The jobs in the CI configuration.
5656
+ **name**🔹 | <code>string</code> | The name of the configuration.
5657
+ **path**🔹 | <code>string</code> | Path to CI file generated by the configuration.
5658
+ **project**🔹 | <code>[Project](#projen-project)</code> | The project the configuration belongs to.
5659
+ **stages**🔹 | <code>Array<string></code> | Groups jobs into stages.
5660
+ **variables**🔹 | <code>Map<string, string &#124; number &#124; [gitlab.VariableConfig](#projen-gitlab-variableconfig)></code> | Global variables that are passed to jobs.
5661
+ **defaultArtifacts**?🔹 | <code>[gitlab.Artifacts](#projen-gitlab-artifacts)</code> | Default list of files and directories that should be attached to the job if it succeeds.<br/>__*Optional*__
5662
+ **defaultCache**?🔹 | <code>[gitlab.Cache](#projen-gitlab-cache)</code> | A default list of files and directories to cache between jobs.<br/>__*Optional*__
5663
+ **defaultImage**?🔹 | <code>[gitlab.Image](#projen-gitlab-image)</code> | Specifies the default docker image to use globally for all jobs.<br/>__*Optional*__
5664
+ **defaultInterruptible**?🔹 | <code>boolean</code> | The default behavior for whether a job should be canceled when a newer pipeline starts before the job completes (Default: false).<br/>__*Optional*__
5665
+ **defaultRetry**?🔹 | <code>[gitlab.Retry](#projen-gitlab-retry)</code> | How many times a job is retried if it fails.<br/>__*Optional*__
5666
+ **defaultTimeout**?🔹 | <code>string</code> | A default timeout job written in natural language (Ex.<br/>__*Optional*__
5667
+ **pages**?🔹 | <code>[gitlab.Job](#projen-gitlab-job)</code> | A special job used to upload static sites to Gitlab pages.<br/>__*Optional*__
5668
+ **workflow**?🔹 | <code>[gitlab.Workflow](#projen-gitlab-workflow)</code> | Used to control pipeline behavior.<br/>__*Optional*__
5669
+
5670
+ ### Methods
5671
+
5672
+
5673
+ #### addGlobalVariables(variables)🔹 <a id="projen-gitlab-ciconfiguration-addglobalvariables"></a>
5674
+
5675
+ Add a globally defined variable to the CI configuration.
5676
+
5677
+ ```ts
5678
+ addGlobalVariables(variables: Map<string, any>): void
5679
+ ```
5680
+
5681
+ * **variables** (<code>Map<string, any></code>) The variables to add.
5682
+
5683
+
5684
+
5685
+
5686
+ #### addIncludes(...includes)🔹 <a id="projen-gitlab-ciconfiguration-addincludes"></a>
5687
+
5688
+ Add additional yml/yaml files to the CI includes.
5689
+
5690
+ ```ts
5691
+ addIncludes(...includes: Include[]): void
5692
+ ```
5693
+
5694
+ * **includes** (<code>[gitlab.Include](#projen-gitlab-include)</code>) The includes to add.
5695
+ * **file** (<code>Array<string></code>) Files from another private project on the same GitLab instance. __*Optional*__
5696
+ * **local** (<code>string</code>) Relative path from local repository root (`/`) to the `yaml`/`yml` file template. __*Optional*__
5697
+ * **project** (<code>string</code>) Path to the project, e.g. `group/project`, or `group/sub-group/project`. __*Optional*__
5698
+ * **ref** (<code>string</code>) Branch/Tag/Commit-hash for the target project. __*Optional*__
5699
+ * **remote** (<code>string</code>) URL to a `yaml`/`yml` template file using HTTP/HTTPS. __*Optional*__
5700
+ * **rules** (<code>Array<[gitlab.IncludeRule](#projen-gitlab-includerule)></code>) Rules allows for an array of individual rule objects to be evaluated in order, until one matches and dynamically provides attributes to the job. __*Optional*__
5701
+ * **template** (<code>string</code>) Use a `.gitlab-ci.yml` template as a base, e.g. `Nodejs.gitlab-ci.yml`. __*Optional*__
5702
+
5703
+
5704
+
5705
+
5706
+ #### addJobs(jobs)🔹 <a id="projen-gitlab-ciconfiguration-addjobs"></a>
5707
+
5708
+ Add jobs and their stages to the CI configuration.
5709
+
5710
+ ```ts
5711
+ addJobs(jobs: Map<string, Job>): void
5712
+ ```
5713
+
5714
+ * **jobs** (<code>Map<string, [gitlab.Job](#projen-gitlab-job)></code>) Jobs to add.
5715
+
5716
+
5717
+
5718
+
5719
+ #### addServices(...services)🔹 <a id="projen-gitlab-ciconfiguration-addservices"></a>
5720
+
5721
+ Add additional services.
5722
+
5723
+ ```ts
5724
+ addServices(...services: Service[]): void
5725
+ ```
5726
+
5727
+ * **services** (<code>[gitlab.Service](#projen-gitlab-service)</code>) The services to add.
5728
+ * **name** (<code>string</code>) Full name of the image that should be used.
5729
+ * **alias** (<code>string</code>) Additional alias that can be used to access the service from the job's container. __*Optional*__
5730
+ * **command** (<code>Array<string></code>) Command or script that should be used as the container's command. __*Optional*__
5731
+ * **entrypoint** (<code>Array<string></code>) Command or script that should be executed as the container's entrypoint. __*Optional*__
5732
+
5733
+
5734
+
5735
+
5736
+ #### addStages(...stages)🔹 <a id="projen-gitlab-ciconfiguration-addstages"></a>
5737
+
5738
+ Add stages to the CI configuration if not already present.
5739
+
5740
+ ```ts
5741
+ addStages(...stages: string[]): void
5742
+ ```
5743
+
5744
+ * **stages** (<code>string</code>) stages to add.
5745
+
5746
+
5747
+
5748
+
5749
+
5750
+
5751
+ ## class GitlabConfiguration 🔹 <a id="projen-gitlab-gitlabconfiguration"></a>
5752
+
5753
+ A GitLab CI for the main `.gitlab-ci.yml` file.
5754
+
5755
+ __Submodule__: gitlab
5756
+
5757
+ __Extends__: [gitlab.CiConfiguration](#projen-gitlab-ciconfiguration)
5758
+
5759
+ ### Initializer
5760
+
5761
+
5762
+
5763
+
5764
+ ```ts
5765
+ new gitlab.GitlabConfiguration(project: Project, options?: CiConfigurationOptions)
5766
+ ```
5767
+
5768
+ * **project** (<code>[Project](#projen-project)</code>) *No description*
5769
+ * **options** (<code>[gitlab.CiConfigurationOptions](#projen-gitlab-ciconfigurationoptions)</code>) *No description*
5770
+ * **default** (<code>[gitlab.Default](#projen-gitlab-default)</code>) Default settings for the CI Configuration. __*Optional*__
5771
+ * **jobs** (<code>Map<string, [gitlab.Job](#projen-gitlab-job)></code>) An initial set of jobs to add to the configuration. __*Optional*__
5772
+ * **pages** (<code>[gitlab.Job](#projen-gitlab-job)</code>) A special job used to upload static sites to Gitlab pages. __*Optional*__
5773
+ * **stages** (<code>Array<string></code>) Groups jobs into stages. __*Optional*__
5774
+ * **variables** (<code>Map<string, any></code>) Global variables that are passed to jobs. __*Optional*__
5775
+ * **workflow** (<code>[gitlab.Workflow](#projen-gitlab-workflow)</code>) Used to control pipeline behavior. __*Optional*__
5776
+
5777
+
5778
+
5779
+ ### Properties
5780
+
5781
+
5782
+ Name | Type | Description
5783
+ -----|------|-------------
5784
+ **nestedTemplates**🔹 | <code>Map<string, [gitlab.NestedConfiguration](#projen-gitlab-nestedconfiguration)></code> | <span></span>
5785
+
5786
+ ### Methods
5787
+
5788
+
5789
+ #### createNestedTemplates(config)🔹 <a id="projen-gitlab-gitlabconfiguration-createnestedtemplates"></a>
5790
+
5791
+ Creates and adds nested templates to the includes of the main CI.
5792
+
5793
+ Additionally adds their stages to the main CI if they are not already present.
5794
+ You can futher customize nested templates through the `nestedTemplates` property.
5795
+ E.g. gitlabConfig.nestedTemplates['templateName']?.addStages('stageName')
5796
+
5797
+ ```ts
5798
+ createNestedTemplates(config: Map<string, CiConfigurationOptions>): void
5799
+ ```
5800
+
5801
+ * **config** (<code>Map<string, [gitlab.CiConfigurationOptions](#projen-gitlab-ciconfigurationoptions)></code>) a record the names and configuraitons of the templates.
5802
+
5803
+
5804
+
5805
+
5806
+
5807
+
5808
+ ## class NestedConfiguration 🔹 <a id="projen-gitlab-nestedconfiguration"></a>
5809
+
5810
+ A GitLab CI for templates that are created and included in the `.gitlab-ci.yml` file.
5811
+
5812
+ __Submodule__: gitlab
5813
+
5814
+ __Extends__: [gitlab.CiConfiguration](#projen-gitlab-ciconfiguration)
5815
+
5816
+ ### Initializer
5817
+
5818
+
5819
+
5820
+
5821
+ ```ts
5822
+ new gitlab.NestedConfiguration(project: Project, parent: GitlabConfiguration, name: string, options?: CiConfigurationOptions)
5823
+ ```
5824
+
5825
+ * **project** (<code>[Project](#projen-project)</code>) *No description*
5826
+ * **parent** (<code>[gitlab.GitlabConfiguration](#projen-gitlab-gitlabconfiguration)</code>) *No description*
5827
+ * **name** (<code>string</code>) *No description*
5828
+ * **options** (<code>[gitlab.CiConfigurationOptions](#projen-gitlab-ciconfigurationoptions)</code>) *No description*
5829
+ * **default** (<code>[gitlab.Default](#projen-gitlab-default)</code>) Default settings for the CI Configuration. __*Optional*__
5830
+ * **jobs** (<code>Map<string, [gitlab.Job](#projen-gitlab-job)></code>) An initial set of jobs to add to the configuration. __*Optional*__
5831
+ * **pages** (<code>[gitlab.Job](#projen-gitlab-job)</code>) A special job used to upload static sites to Gitlab pages. __*Optional*__
5832
+ * **stages** (<code>Array<string></code>) Groups jobs into stages. __*Optional*__
5833
+ * **variables** (<code>Map<string, any></code>) Global variables that are passed to jobs. __*Optional*__
5834
+ * **workflow** (<code>[gitlab.Workflow](#projen-gitlab-workflow)</code>) Used to control pipeline behavior. __*Optional*__
5835
+
5836
+
5837
+
5838
+ ### Properties
5839
+
5840
+
5841
+ Name | Type | Description
5842
+ -----|------|-------------
5843
+ **parent**🔹 | <code>[gitlab.GitlabConfiguration](#projen-gitlab-gitlabconfiguration)</code> | <span></span>
5844
+
5845
+ ### Methods
5846
+
5847
+
5848
+ #### addStages(...stages)🔹 <a id="projen-gitlab-nestedconfiguration-addstages"></a>
5849
+
5850
+ Add stages to the Nested configuration and the main CI file if not already present.
5851
+
5852
+ ```ts
5853
+ addStages(...stages: string[]): void
5854
+ ```
5855
+
5856
+ * **stages** (<code>string</code>) stages to add.
5857
+
5858
+
5859
+
5860
+
5861
+
5862
+
5574
5863
  ## class JavaProject 🔹 <a id="projen-java-javaproject"></a>
5575
5864
 
5576
5865
  Java project.
@@ -12618,6 +12907,531 @@ Name | Type | Description
12618
12907
 
12619
12908
 
12620
12909
 
12910
+ ## struct AllowFailure 🔹 <a id="projen-gitlab-allowfailure"></a>
12911
+
12912
+
12913
+ Exit code that are not considered failure.
12914
+
12915
+ The job fails for any other exit code.
12916
+ You can list which exit codes are not considered failures. The job fails for any other
12917
+ exit code.
12918
+
12919
+
12920
+
12921
+ Name | Type | Description
12922
+ -----|------|-------------
12923
+ **exitCodes**🔹 | <code>number &#124; Array<number></code> | <span></span>
12924
+
12925
+
12926
+
12927
+ ## struct Artifacts 🔹 <a id="projen-gitlab-artifacts"></a>
12928
+
12929
+
12930
+ Used to specify a list of files and directories that should be attached to the job if it succeeds.
12931
+
12932
+ Artifacts are sent to Gitlab where they can be downloaded.
12933
+
12934
+
12935
+
12936
+ Name | Type | Description
12937
+ -----|------|-------------
12938
+ **exclude**?🔹 | <code>Array<string></code> | A list of paths to files/folders that should be excluded in the artifact.<br/>__*Optional*__
12939
+ **expireIn**?🔹 | <code>string</code> | How long artifacts should be kept.<br/>__*Optional*__
12940
+ **exposeAs**?🔹 | <code>string</code> | Can be used to expose job artifacts in the merge request UI.<br/>__*Optional*__
12941
+ **name**?🔹 | <code>string</code> | Name for the archive created on job success.<br/>__*Optional*__
12942
+ **paths**?🔹 | <code>Array<string></code> | A list of paths to files/folders that should be included in the artifact.<br/>__*Optional*__
12943
+ **reports**?🔹 | <code>[gitlab.Reports](#projen-gitlab-reports)</code> | Reports will be uploaded as artifacts, and often displayed in the Gitlab UI, such as in Merge Requests.<br/>__*Optional*__
12944
+ **untracked**?🔹 | <code>boolean</code> | Whether to add all untracked files (along with 'artifacts.paths') to the artifact.<br/>__*Optional*__
12945
+ **when**?🔹 | <code>[gitlab.CacheWhen](#projen-gitlab-cachewhen)</code> | Configure when artifacts are uploaded depended on job status.<br/>__*Optional*__
12946
+
12947
+
12948
+
12949
+ ## struct Assets 🔹 <a id="projen-gitlab-assets"></a>
12950
+
12951
+
12952
+ Asset configuration for a release.
12953
+
12954
+
12955
+
12956
+ Name | Type | Description
12957
+ -----|------|-------------
12958
+ **links**🔹 | <code>Array<[gitlab.Link](#projen-gitlab-link)></code> | Include asset links in the release.
12959
+
12960
+
12961
+
12962
+ ## struct Cache 🔹 <a id="projen-gitlab-cache"></a>
12963
+
12964
+
12965
+ Cache Definition.
12966
+
12967
+
12968
+
12969
+ Name | Type | Description
12970
+ -----|------|-------------
12971
+ **when**?🔹 | <code>[gitlab.CacheWhen](#projen-gitlab-cachewhen)</code> | Defines when to save the cache, based on the status of the job (Default: Job Success).<br/>__*Optional*__
12972
+
12973
+
12974
+
12975
+ ## struct CiConfigurationOptions 🔹 <a id="projen-gitlab-ciconfigurationoptions"></a>
12976
+
12977
+
12978
+ Options for `CiConfiguration`.
12979
+
12980
+
12981
+
12982
+ Name | Type | Description
12983
+ -----|------|-------------
12984
+ **default**?🔹 | <code>[gitlab.Default](#projen-gitlab-default)</code> | Default settings for the CI Configuration.<br/>__*Optional*__
12985
+ **jobs**?🔹 | <code>Map<string, [gitlab.Job](#projen-gitlab-job)></code> | An initial set of jobs to add to the configuration.<br/>__*Optional*__
12986
+ **pages**?🔹 | <code>[gitlab.Job](#projen-gitlab-job)</code> | A special job used to upload static sites to Gitlab pages.<br/>__*Optional*__
12987
+ **stages**?🔹 | <code>Array<string></code> | Groups jobs into stages.<br/>__*Optional*__
12988
+ **variables**?🔹 | <code>Map<string, any></code> | Global variables that are passed to jobs.<br/>__*Optional*__
12989
+ **workflow**?🔹 | <code>[gitlab.Workflow](#projen-gitlab-workflow)</code> | Used to control pipeline behavior.<br/>__*Optional*__
12990
+
12991
+
12992
+
12993
+ ## struct Default 🔹 <a id="projen-gitlab-default"></a>
12994
+
12995
+
12996
+ Default settings for the CI Configuration.
12997
+
12998
+ Jobs that do not define one or more of the listed keywords use the value defined in the default section.
12999
+
13000
+
13001
+
13002
+ Name | Type | Description
13003
+ -----|------|-------------
13004
+ **afterScript**?🔹 | <code>Array<string></code> | __*Optional*__
13005
+ **artifacts**?🔹 | <code>[gitlab.Artifacts](#projen-gitlab-artifacts)</code> | __*Optional*__
13006
+ **beforeScript**?🔹 | <code>Array<string></code> | __*Optional*__
13007
+ **cache**?🔹 | <code>[gitlab.Cache](#projen-gitlab-cache)</code> | __*Optional*__
13008
+ **image**?🔹 | <code>[gitlab.Image](#projen-gitlab-image)</code> | __*Optional*__
13009
+ **interruptible**?🔹 | <code>boolean</code> | __*Optional*__
13010
+ **retry**?🔹 | <code>[gitlab.Retry](#projen-gitlab-retry)</code> | __*Optional*__
13011
+ **services**?🔹 | <code>Array<[gitlab.Service](#projen-gitlab-service)></code> | __*Optional*__
13012
+ **tags**?🔹 | <code>Array<string></code> | __*Optional*__
13013
+ **timeout**?🔹 | <code>string</code> | __*Optional*__
13014
+
13015
+
13016
+
13017
+ ## struct Engine 🔹 <a id="projen-gitlab-engine"></a>
13018
+
13019
+
13020
+ The engine configuration for a secret.
13021
+
13022
+
13023
+
13024
+ Name | Type | Description
13025
+ -----|------|-------------
13026
+ **name**🔹 | <code>string</code> | Name of the secrets engine.
13027
+ **path**🔹 | <code>string</code> | Path to the secrets engine.
13028
+
13029
+
13030
+
13031
+ ## struct Environment 🔹 <a id="projen-gitlab-environment"></a>
13032
+
13033
+
13034
+ The environment that a job deploys to.
13035
+
13036
+
13037
+
13038
+ Name | Type | Description
13039
+ -----|------|-------------
13040
+ **name**🔹 | <code>string</code> | The name of the environment, e.g. 'qa', 'staging', 'production'.
13041
+ **action**?🔹 | <code>[gitlab.Action](#projen-gitlab-action)</code> | Specifies what this job will do.<br/>__*Optional*__
13042
+ **autoStopIn**?🔹 | <code>string</code> | The amount of time it should take before Gitlab will automatically stop the environment.<br/>__*Optional*__
13043
+ **deploymentTier**?🔹 | <code>[gitlab.DeploymentTier](#projen-gitlab-deploymenttier)</code> | Explicitly specifies the tier of the deployment environment if non-standard environment name is used.<br/>__*Optional*__
13044
+ **kubernetes**?🔹 | <code>[gitlab.KubernetesConfig](#projen-gitlab-kubernetesconfig)</code> | Used to configure the kubernetes deployment for this environment.<br/>__*Optional*__
13045
+ **onStop**?🔹 | <code>string</code> | The name of a job to execute when the environment is about to be stopped.<br/>__*Optional*__
13046
+ **url**?🔹 | <code>string</code> | When set, this will expose buttons in various places for the current environment in Gitlab, that will take you to the defined URL.<br/>__*Optional*__
13047
+
13048
+
13049
+
13050
+ ## struct Filter 🔹 <a id="projen-gitlab-filter"></a>
13051
+
13052
+
13053
+ Filtering options for when a job will run.
13054
+
13055
+
13056
+
13057
+ Name | Type | Description
13058
+ -----|------|-------------
13059
+ **changes**?🔹 | <code>Array<string></code> | Filter job creation based on files that were modified in a git push.<br/>__*Optional*__
13060
+ **kubernetes**?🔹 | <code>[gitlab.KubernetesEnum](#projen-gitlab-kubernetesenum)</code> | Filter job based on if Kubernetes integration is active.<br/>__*Optional*__
13061
+ **refs**?🔹 | <code>Array<string></code> | Control when to add jobs to a pipeline based on branch names or pipeline types.<br/>__*Optional*__
13062
+ **variables**?🔹 | <code>Array<string></code> | Filter job by checking comparing values of environment variables.<br/>__*Optional*__
13063
+
13064
+
13065
+
13066
+ ## struct Image 🔹 <a id="projen-gitlab-image"></a>
13067
+
13068
+
13069
+ Specifies the docker image to use for the job or globally for all jobs.
13070
+
13071
+ Job configuration
13072
+ takes precedence over global setting. Requires a certain kind of Gitlab runner executor.
13073
+
13074
+
13075
+
13076
+ Name | Type | Description
13077
+ -----|------|-------------
13078
+ **name**🔹 | <code>string</code> | Full name of the image that should be used.
13079
+ **entrypoint**?🔹 | <code>Array<any></code> | Command or script that should be executed as the container's entrypoint.<br/>__*Optional*__
13080
+
13081
+
13082
+
13083
+ ## struct Include 🔹 <a id="projen-gitlab-include"></a>
13084
+
13085
+
13086
+ An included YAML file.
13087
+
13088
+
13089
+
13090
+ Name | Type | Description
13091
+ -----|------|-------------
13092
+ **file**?🔹 | <code>Array<string></code> | Files from another private project on the same GitLab instance.<br/>__*Optional*__
13093
+ **local**?🔹 | <code>string</code> | Relative path from local repository root (`/`) to the `yaml`/`yml` file template.<br/>__*Optional*__
13094
+ **project**?🔹 | <code>string</code> | Path to the project, e.g. `group/project`, or `group/sub-group/project`.<br/>__*Optional*__
13095
+ **ref**?🔹 | <code>string</code> | Branch/Tag/Commit-hash for the target project.<br/>__*Optional*__
13096
+ **remote**?🔹 | <code>string</code> | URL to a `yaml`/`yml` template file using HTTP/HTTPS.<br/>__*Optional*__
13097
+ **rules**?🔹 | <code>Array<[gitlab.IncludeRule](#projen-gitlab-includerule)></code> | Rules allows for an array of individual rule objects to be evaluated in order, until one matches and dynamically provides attributes to the job.<br/>__*Optional*__
13098
+ **template**?🔹 | <code>string</code> | Use a `.gitlab-ci.yml` template as a base, e.g. `Nodejs.gitlab-ci.yml`.<br/>__*Optional*__
13099
+
13100
+
13101
+
13102
+ ## struct IncludeRule 🔹 <a id="projen-gitlab-includerule"></a>
13103
+
13104
+
13105
+ Rules allows for an array of individual rule objects to be evaluated in order, until one matches and dynamically provides attributes to the job.
13106
+
13107
+
13108
+
13109
+ Name | Type | Description
13110
+ -----|------|-------------
13111
+ **allowFailure**?🔹 | <code>boolean &#124; [gitlab.AllowFailure](#projen-gitlab-allowfailure)</code> | __*Optional*__
13112
+ **changes**?🔹 | <code>Array<string></code> | __*Optional*__
13113
+ **exists**?🔹 | <code>Array<string></code> | __*Optional*__
13114
+ **if**?🔹 | <code>string</code> | __*Optional*__
13115
+ **startIn**?🔹 | <code>string</code> | __*Optional*__
13116
+ **variables**?🔹 | <code>Map<string, string &#124; number></code> | __*Optional*__
13117
+ **when**?🔹 | <code>[gitlab.JobWhen](#projen-gitlab-jobwhen)</code> | __*Optional*__
13118
+
13119
+
13120
+
13121
+ ## struct Inherit 🔹 <a id="projen-gitlab-inherit"></a>
13122
+
13123
+
13124
+ Controls inheritance of globally-defined defaults and variables.
13125
+
13126
+ Boolean values control
13127
+ inheritance of all default: or variables: keywords. To inherit only a subset of default:
13128
+ or variables: keywords, specify what you wish to inherit. Anything not listed is not
13129
+ inherited.
13130
+
13131
+
13132
+
13133
+ Name | Type | Description
13134
+ -----|------|-------------
13135
+ **default**?🔹 | <code>boolean &#124; Array<[gitlab.DefaultElement](#projen-gitlab-defaultelement)></code> | Whether to inherit all globally-defined defaults or not.<br/>__*Optional*__
13136
+ **variables**?🔹 | <code>boolean &#124; Array<string></code> | Whether to inherit all globally-defined variables or not.<br/>__*Optional*__
13137
+
13138
+
13139
+
13140
+ ## struct Job 🔹 <a id="projen-gitlab-job"></a>
13141
+
13142
+
13143
+ Jobs are the most fundamental element of a .gitlab-ci.yml file.
13144
+
13145
+
13146
+
13147
+ Name | Type | Description
13148
+ -----|------|-------------
13149
+ **afterScript**?🔹 | <code>Array<string></code> | __*Optional*__
13150
+ **allowFailure**?🔹 | <code>boolean &#124; [gitlab.AllowFailure](#projen-gitlab-allowfailure)</code> | Whether to allow the pipeline to continue running on job failure (Default: false).<br/>__*Optional*__
13151
+ **artifacts**?🔹 | <code>[gitlab.Artifacts](#projen-gitlab-artifacts)</code> | __*Optional*__
13152
+ **beforeScript**?🔹 | <code>Array<string></code> | __*Optional*__
13153
+ **cache**?🔹 | <code>[gitlab.Cache](#projen-gitlab-cache)</code> | __*Optional*__
13154
+ **coverage**?🔹 | <code>string</code> | Must be a regular expression, optionally but recommended to be quoted, and must be surrounded with '/'.<br/>__*Optional*__
13155
+ **dependencies**?🔹 | <code>Array<string></code> | Specify a list of job names from earlier stages from which artifacts should be loaded.<br/>__*Optional*__
13156
+ **environment**?🔹 | <code>string &#124; [gitlab.Environment](#projen-gitlab-environment)</code> | Used to associate environment metadata with a deploy.<br/>__*Optional*__
13157
+ **except**?🔹 | <code>[gitlab.Filter](#projen-gitlab-filter) &#124; Array<string></code> | Job will run *except* for when these filtering options match.<br/>__*Optional*__
13158
+ **extends**?🔹 | <code>Array<string></code> | The name of one or more jobs to inherit configuration from.<br/>__*Optional*__
13159
+ **image**?🔹 | <code>[gitlab.Image](#projen-gitlab-image)</code> | __*Optional*__
13160
+ **inherit**?🔹 | <code>[gitlab.Inherit](#projen-gitlab-inherit)</code> | Controls inheritance of globally-defined defaults and variables.<br/>__*Optional*__
13161
+ **interruptible**?🔹 | <code>boolean</code> | __*Optional*__
13162
+ **needs**?🔹 | <code>Array<string &#124; [gitlab.Need](#projen-gitlab-need)></code> | The list of jobs in previous stages whose sole completion is needed to start the current job.<br/>__*Optional*__
13163
+ **only**?🔹 | <code>[gitlab.Filter](#projen-gitlab-filter) &#124; Array<string></code> | Job will run *only* when these filtering options match.<br/>__*Optional*__
13164
+ **parallel**?🔹 | <code>number &#124; [gitlab.Parallel](#projen-gitlab-parallel)</code> | Parallel will split up a single job into several, and provide `CI_NODE_INDEX` and `CI_NODE_TOTAL` environment variables for the running jobs.<br/>__*Optional*__
13165
+ **release**?🔹 | <code>[gitlab.Release](#projen-gitlab-release)</code> | Indicates that the job creates a Release.<br/>__*Optional*__
13166
+ **resourceGroup**?🔹 | <code>string</code> | Limit job concurrency.<br/>__*Optional*__
13167
+ **retry**?🔹 | <code>[gitlab.Retry](#projen-gitlab-retry)</code> | __*Optional*__
13168
+ **rules**?🔹 | <code>Array<[gitlab.IncludeRule](#projen-gitlab-includerule)></code> | Rules allows for an array of individual rule objects to be evaluated in order, until one matches and dynamically provides attributes to the job.<br/>__*Optional*__
13169
+ **script**?🔹 | <code>Array<string></code> | Shell scripts executed by the Runner.<br/>__*Optional*__
13170
+ **secrets**?🔹 | <code>Map<string, Map<string, [gitlab.Secret](#projen-gitlab-secret)>></code> | CI/CD secrets.<br/>__*Optional*__
13171
+ **services**?🔹 | <code>Array<[gitlab.Service](#projen-gitlab-service)></code> | __*Optional*__
13172
+ **stage**?🔹 | <code>string</code> | Define what stage the job will run in.<br/>__*Optional*__
13173
+ **startIn**?🔹 | <code>string</code> | __*Optional*__
13174
+ **tags**?🔹 | <code>Array<string></code> | __*Optional*__
13175
+ **timeout**?🔹 | <code>string</code> | __*Optional*__
13176
+ **trigger**?🔹 | <code>string &#124; [gitlab.Trigger](#projen-gitlab-trigger)</code> | Trigger allows you to define downstream pipeline trigger.<br/>__*Optional*__
13177
+ **variables**?🔹 | <code>Map<string, string &#124; number></code> | Configurable values that are passed to the Job.<br/>__*Optional*__
13178
+ **when**?🔹 | <code>[gitlab.JobWhen](#projen-gitlab-jobwhen)</code> | Describes the conditions for when to run the job.<br/>__*Optional*__
13179
+
13180
+
13181
+
13182
+ ## struct KubernetesConfig 🔹 <a id="projen-gitlab-kubernetesconfig"></a>
13183
+
13184
+
13185
+ Used to configure the kubernetes deployment for this environment.
13186
+
13187
+ This is currently not
13188
+ supported for kubernetes clusters that are managed by Gitlab.
13189
+
13190
+
13191
+
13192
+ Name | Type | Description
13193
+ -----|------|-------------
13194
+ **namespace**?🔹 | <code>string</code> | The kubernetes namespace where this environment should be deployed to.<br/>__*Optional*__
13195
+
13196
+
13197
+
13198
+ ## struct Link 🔹 <a id="projen-gitlab-link"></a>
13199
+
13200
+
13201
+ Link configuration for an asset.
13202
+
13203
+
13204
+
13205
+ Name | Type | Description
13206
+ -----|------|-------------
13207
+ **name**🔹 | <code>string</code> | The name of the link.
13208
+ **url**🔹 | <code>string</code> | The URL to download a file.
13209
+ **filepath**?🔹 | <code>string</code> | The redirect link to the url.<br/>__*Optional*__
13210
+ **linkType**?🔹 | <code>[gitlab.LinkType](#projen-gitlab-linktype)</code> | The content kind of what users can download via url.<br/>__*Optional*__
13211
+
13212
+
13213
+
13214
+ ## struct Need 🔹 <a id="projen-gitlab-need"></a>
13215
+
13216
+
13217
+ A jobs in a previous stage whose sole completion is needed to start the current job.
13218
+
13219
+
13220
+
13221
+ Name | Type | Description
13222
+ -----|------|-------------
13223
+ **job**🔹 | <code>string</code> | <span></span>
13224
+ **artifacts**?🔹 | <code>boolean</code> | __*Optional*__
13225
+ **optional**?🔹 | <code>boolean</code> | __*Optional*__
13226
+ **pipeline**?🔹 | <code>string</code> | __*Optional*__
13227
+ **project**?🔹 | <code>string</code> | __*Optional*__
13228
+ **ref**?🔹 | <code>string</code> | __*Optional*__
13229
+
13230
+
13231
+
13232
+ ## struct Parallel 🔹 <a id="projen-gitlab-parallel"></a>
13233
+
13234
+
13235
+ Used to run a job multiple times in parallel in a single pipeline.
13236
+
13237
+
13238
+
13239
+ Name | Type | Description
13240
+ -----|------|-------------
13241
+ **matrix**🔹 | <code>Array<Map<string, Array<any>>></code> | Defines different variables for jobs that are running in parallel.
13242
+
13243
+
13244
+
13245
+ ## struct Release 🔹 <a id="projen-gitlab-release"></a>
13246
+
13247
+
13248
+ Indicates that the job creates a Release.
13249
+
13250
+
13251
+
13252
+ Name | Type | Description
13253
+ -----|------|-------------
13254
+ **description**🔹 | <code>string</code> | Specifies the longer description of the Release.
13255
+ **tagName**🔹 | <code>string</code> | The tag_name must be specified.
13256
+ **assets**?🔹 | <code>[gitlab.Assets](#projen-gitlab-assets)</code> | __*Optional*__
13257
+ **milestones**?🔹 | <code>Array<string></code> | The title of each milestone the release is associated with.<br/>__*Optional*__
13258
+ **name**?🔹 | <code>string</code> | The Release name.<br/>__*Optional*__
13259
+ **ref**?🔹 | <code>string</code> | If the release: tag_name doesn’t exist yet, the release is created from ref.<br/>__*Optional*__
13260
+ **releasedAt**?🔹 | <code>string</code> | The date and time when the release is ready.<br/>__*Optional*__
13261
+
13262
+
13263
+
13264
+ ## struct Reports 🔹 <a id="projen-gitlab-reports"></a>
13265
+
13266
+
13267
+ Reports will be uploaded as artifacts, and often displayed in the Gitlab UI, such as in Merge Requests.
13268
+
13269
+
13270
+
13271
+ Name | Type | Description
13272
+ -----|------|-------------
13273
+ **cobertura**?🔹 | <code>Array<string></code> | Path for file(s) that should be parsed as Cobertura XML coverage report.<br/>__*Optional*__
13274
+ **codequality**?🔹 | <code>Array<string></code> | Path to file or list of files with code quality report(s) (such as Code Climate).<br/>__*Optional*__
13275
+ **containerScanning**?🔹 | <code>Array<string></code> | Path to file or list of files with Container scanning vulnerabilities report(s).<br/>__*Optional*__
13276
+ **dast**?🔹 | <code>Array<string></code> | Path to file or list of files with DAST vulnerabilities report(s).<br/>__*Optional*__
13277
+ **dependencyScanning**?🔹 | <code>Array<string></code> | Path to file or list of files with Dependency scanning vulnerabilities report(s).<br/>__*Optional*__
13278
+ **dotenv**?🔹 | <code>Array<string></code> | Path to file or list of files containing runtime-created variables for this job.<br/>__*Optional*__
13279
+ **junit**?🔹 | <code>Array<string></code> | Path for file(s) that should be parsed as JUnit XML result.<br/>__*Optional*__
13280
+ **licenseManagement**?🔹 | <code>Array<string></code> | Deprecated in 12.8: Path to file or list of files with license report(s).<br/>__*Optional*__
13281
+ **licenseScanning**?🔹 | <code>Array<string></code> | Path to file or list of files with license report(s).<br/>__*Optional*__
13282
+ **lsif**?🔹 | <code>Array<string></code> | Path to file or list of files containing code intelligence (Language Server Index Format).<br/>__*Optional*__
13283
+ **metrics**?🔹 | <code>Array<string></code> | Path to file or list of files with custom metrics report(s).<br/>__*Optional*__
13284
+ **performance**?🔹 | <code>Array<string></code> | Path to file or list of files with performance metrics report(s).<br/>__*Optional*__
13285
+ **requirements**?🔹 | <code>Array<string></code> | Path to file or list of files with requirements report(s).<br/>__*Optional*__
13286
+ **sast**?🔹 | <code>Array<string></code> | Path to file or list of files with SAST vulnerabilities report(s).<br/>__*Optional*__
13287
+ **secretDetection**?🔹 | <code>Array<string></code> | Path to file or list of files with secret detection report(s).<br/>__*Optional*__
13288
+ **terraform**?🔹 | <code>Array<string></code> | Path to file or list of files with terraform plan(s).<br/>__*Optional*__
13289
+
13290
+
13291
+
13292
+ ## struct Retry 🔹 <a id="projen-gitlab-retry"></a>
13293
+
13294
+
13295
+ How many times a job is retried if it fails.
13296
+
13297
+ If not defined, defaults to 0 and jobs do not retry.
13298
+
13299
+
13300
+
13301
+ Name | Type | Description
13302
+ -----|------|-------------
13303
+ **max**?🔹 | <code>number</code> | 0 (default), 1, or 2.<br/>__*Optional*__
13304
+ **when**?🔹 | <code>any</code> | Either a single or array of error types to trigger job retry.<br/>__*Optional*__
13305
+
13306
+
13307
+
13308
+ ## struct Secret 🔹 <a id="projen-gitlab-secret"></a>
13309
+
13310
+
13311
+ A CI/CD secret.
13312
+
13313
+
13314
+
13315
+ Name | Type | Description
13316
+ -----|------|-------------
13317
+ **vault**🔹 | <code>[gitlab.VaultConfig](#projen-gitlab-vaultconfig)</code> | <span></span>
13318
+
13319
+
13320
+
13321
+ ## struct Service 🔹 <a id="projen-gitlab-service"></a>
13322
+
13323
+
13324
+ Used to specify an additional Docker image to run scripts in.
13325
+
13326
+ The service image is linked to the image specified in the @Default image keyword.
13327
+
13328
+
13329
+
13330
+ Name | Type | Description
13331
+ -----|------|-------------
13332
+ **name**🔹 | <code>string</code> | Full name of the image that should be used.
13333
+ **alias**?🔹 | <code>string</code> | Additional alias that can be used to access the service from the job's container.<br/>__*Optional*__
13334
+ **command**?🔹 | <code>Array<string></code> | Command or script that should be used as the container's command.<br/>__*Optional*__
13335
+ **entrypoint**?🔹 | <code>Array<string></code> | Command or script that should be executed as the container's entrypoint.<br/>__*Optional*__
13336
+
13337
+
13338
+
13339
+ ## struct Trigger 🔹 <a id="projen-gitlab-trigger"></a>
13340
+
13341
+
13342
+ Trigger a multi-project or a child pipeline.
13343
+
13344
+ Read more:
13345
+
13346
+
13347
+
13348
+ Name | Type | Description
13349
+ -----|------|-------------
13350
+ **branch**?🔹 | <code>string</code> | The branch name that a downstream pipeline will use.<br/>__*Optional*__
13351
+ **include**?🔹 | <code>Array<[gitlab.TriggerInclude](#projen-gitlab-triggerinclude)></code> | A list of local files or artifacts from other jobs to define the pipeline.<br/>__*Optional*__
13352
+ **project**?🔹 | <code>string</code> | Path to the project, e.g. `group/project`, or `group/sub-group/project`.<br/>__*Optional*__
13353
+ **strategy**?🔹 | <code>[gitlab.Strategy](#projen-gitlab-strategy)</code> | You can mirror the pipeline status from the triggered pipeline to the source bridge job by using strategy: depend.<br/>__*Optional*__
13354
+
13355
+
13356
+
13357
+ ## struct TriggerInclude 🔹 <a id="projen-gitlab-triggerinclude"></a>
13358
+
13359
+
13360
+ References a local file or an artifact from another job to define the pipeline configuration.
13361
+
13362
+
13363
+
13364
+ Name | Type | Description
13365
+ -----|------|-------------
13366
+ **artifact**?🔹 | <code>string</code> | Relative path to the generated YAML file which is extracted from the artifacts and used as the configuration for triggering the child pipeline.<br/>__*Optional*__
13367
+ **file**?🔹 | <code>string</code> | Relative path from repository root (`/`) to the pipeline configuration YAML file.<br/>__*Optional*__
13368
+ **job**?🔹 | <code>string</code> | Job name which generates the artifact.<br/>__*Optional*__
13369
+ **local**?🔹 | <code>string</code> | Relative path from local repository root (`/`) to the local YAML file to define the pipeline configuration.<br/>__*Optional*__
13370
+ **project**?🔹 | <code>string</code> | Path to another private project under the same GitLab instance, like `group/project` or `group/sub-group/project`.<br/>__*Optional*__
13371
+ **ref**?🔹 | <code>string</code> | Branch/Tag/Commit hash for the target project.<br/>__*Optional*__
13372
+ **template**?🔹 | <code>string</code> | Name of the template YAML file to use in the pipeline configuration.<br/>__*Optional*__
13373
+
13374
+
13375
+
13376
+ ## struct VariableConfig 🔹 <a id="projen-gitlab-variableconfig"></a>
13377
+
13378
+
13379
+ Explains what the global variable is used for, what the acceptable values are.
13380
+
13381
+
13382
+
13383
+ Name | Type | Description
13384
+ -----|------|-------------
13385
+ **description**?🔹 | <code>string</code> | Define a global variable that is prefilled when running a pipeline manually.<br/>__*Optional*__
13386
+ **value**?🔹 | <code>string</code> | The variable value.<br/>__*Optional*__
13387
+
13388
+
13389
+
13390
+ ## struct VaultConfig 🔹 <a id="projen-gitlab-vaultconfig"></a>
13391
+
13392
+
13393
+ Specification for a secret provided by a HashiCorp Vault.
13394
+
13395
+
13396
+
13397
+ Name | Type | Description
13398
+ -----|------|-------------
13399
+ **engine**🔹 | <code>[gitlab.Engine](#projen-gitlab-engine)</code> | <span></span>
13400
+ **field**🔹 | <code>string</code> | <span></span>
13401
+ **path**🔹 | <code>string</code> | Path to the secret.
13402
+
13403
+
13404
+
13405
+ ## struct Workflow 🔹 <a id="projen-gitlab-workflow"></a>
13406
+
13407
+
13408
+ Used to control pipeline behavior.
13409
+
13410
+
13411
+
13412
+ Name | Type | Description
13413
+ -----|------|-------------
13414
+ **rules**?🔹 | <code>Array<[gitlab.WorkflowRule](#projen-gitlab-workflowrule)></code> | Used to control whether or not a whole pipeline is created.<br/>__*Optional*__
13415
+
13416
+
13417
+
13418
+ ## struct WorkflowRule 🔹 <a id="projen-gitlab-workflowrule"></a>
13419
+
13420
+
13421
+ Used to control whether or not a whole pipeline is created.
13422
+
13423
+
13424
+
13425
+ Name | Type | Description
13426
+ -----|------|-------------
13427
+ **changes**?🔹 | <code>Array<string></code> | __*Optional*__
13428
+ **exists**?🔹 | <code>Array<string></code> | __*Optional*__
13429
+ **if**?🔹 | <code>string</code> | __*Optional*__
13430
+ **variables**?🔹 | <code>Map<string, string &#124; number></code> | __*Optional*__
13431
+ **when**?🔹 | <code>[gitlab.JobWhen](#projen-gitlab-jobwhen)</code> | __*Optional*__
13432
+
13433
+
13434
+
12621
13435
  ## struct JavaProjectCommonOptions 🔹 <a id="projen-java-javaprojectcommonoptions"></a>
12622
13436
 
12623
13437
 
@@ -15342,6 +16156,122 @@ Name | Description
15342
16156
  **INCREASE_IF_NECESSARY** 🔹|Increase the version requirement only when required by the new version.
15343
16157
 
15344
16158
 
16159
+ ## enum Action 🔹 <a id="projen-gitlab-action"></a>
16160
+
16161
+ Specifies what this job will do.
16162
+
16163
+ 'start' (default) indicates the job will start the
16164
+ deployment. 'prepare' indicates this will not affect the deployment. 'stop' indicates
16165
+ this will stop the deployment.
16166
+
16167
+ Name | Description
16168
+ -----|-----
16169
+ **PREPARE** 🔹|
16170
+ **START** 🔹|
16171
+ **STOP** 🔹|
16172
+
16173
+
16174
+ ## enum CacheWhen 🔹 <a id="projen-gitlab-cachewhen"></a>
16175
+
16176
+ Configure when artifacts are uploaded depended on job status.
16177
+
16178
+ Name | Description
16179
+ -----|-----
16180
+ **ALWAYS** 🔹|Upload artifacts regardless of job status.
16181
+ **ON_FAILURE** 🔹|Upload artifacts only when the job fails.
16182
+ **ON_SUCCESS** 🔹|Upload artifacts only when the job succeeds (this is the default).
16183
+
16184
+
16185
+ ## enum DefaultElement 🔹 <a id="projen-gitlab-defaultelement"></a>
16186
+
16187
+
16188
+
16189
+ Name | Description
16190
+ -----|-----
16191
+ **AFTER_SCRIPT** 🔹|
16192
+ **ARTIFACTS** 🔹|
16193
+ **BEFORE_SCRIPT** 🔹|
16194
+ **CACHE** 🔹|
16195
+ **IMAGE** 🔹|
16196
+ **INTERRUPTIBLE** 🔹|
16197
+ **RETRY** 🔹|
16198
+ **SERVICES** 🔹|
16199
+ **TAGS** 🔹|
16200
+ **TIMEOUT** 🔹|
16201
+
16202
+
16203
+ ## enum DeploymentTier 🔹 <a id="projen-gitlab-deploymenttier"></a>
16204
+
16205
+ Explicitly specifies the tier of the deployment environment if non-standard environment name is used.
16206
+
16207
+ Name | Description
16208
+ -----|-----
16209
+ **DEVELOPMENT** 🔹|
16210
+ **OTHER** 🔹|
16211
+ **PRODUCTION** 🔹|
16212
+ **STAGING** 🔹|
16213
+ **TESTING** 🔹|
16214
+
16215
+
16216
+ ## enum JobWhen 🔹 <a id="projen-gitlab-jobwhen"></a>
16217
+
16218
+ Describes the conditions for when to run the job.
16219
+
16220
+ Defaults to 'on_success'.
16221
+
16222
+ Name | Description
16223
+ -----|-----
16224
+ **ALWAYS** 🔹|
16225
+ **DELAYED** 🔹|
16226
+ **MANUAL** 🔹|
16227
+ **NEVER** 🔹|
16228
+ **ON_FAILURE** 🔹|
16229
+ **ON_SUCCESS** 🔹|
16230
+
16231
+
16232
+ ## enum KubernetesEnum 🔹 <a id="projen-gitlab-kubernetesenum"></a>
16233
+
16234
+ Filter job based on if Kubernetes integration is active.
16235
+
16236
+ Name | Description
16237
+ -----|-----
16238
+ **ACTIVE** 🔹|
16239
+
16240
+
16241
+ ## enum LinkType 🔹 <a id="projen-gitlab-linktype"></a>
16242
+
16243
+ The content kind of what users can download via url.
16244
+
16245
+ Name | Description
16246
+ -----|-----
16247
+ **IMAGE** 🔹|
16248
+ **OTHER** 🔹|
16249
+ **PACKAGE** 🔹|
16250
+ **RUNBOOK** 🔹|
16251
+
16252
+
16253
+ ## enum Strategy 🔹 <a id="projen-gitlab-strategy"></a>
16254
+
16255
+ You can mirror the pipeline status from the triggered pipeline to the source bridge job by using strategy: depend.
16256
+
16257
+ Name | Description
16258
+ -----|-----
16259
+ **DEPEND** 🔹|
16260
+
16261
+
16262
+ ## enum WorkflowWhen 🔹 <a id="projen-gitlab-workflowwhen"></a>
16263
+
16264
+ Describes the conditions for when to run the job.
16265
+
16266
+ Defaults to 'on_success'.
16267
+ The value can only be 'always' or 'never' when used with workflow.
16268
+
16269
+ Name | Description
16270
+ -----|-----
16271
+ **ALWAYS** 🔹|
16272
+ **NEVER** 🔹|
16273
+
16274
+
15345
16275
  ## enum ArrowParens 🔹 <a id="projen-javascript-arrowparens"></a>
15346
16276
 
15347
16277