projen 0.49.1 → 0.50.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 (122) hide show
  1. package/.jsii +5174 -357
  2. package/API.md +1052 -61
  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.d.ts +69 -2
  17. package/lib/build/build-workflow.js +62 -2
  18. package/lib/cdk/construct-lib.js +1 -1
  19. package/lib/cdk/jsii-docgen.js +1 -1
  20. package/lib/cdk/jsii-project.js +1 -1
  21. package/lib/cdk8s/cdk8s-app-ts.js +1 -1
  22. package/lib/cdk8s/cdk8s-construct.js +1 -1
  23. package/lib/cdktf/cdktf-construct.js +1 -1
  24. package/lib/component.js +1 -1
  25. package/lib/dependencies.js +1 -1
  26. package/lib/dev-env.js +1 -1
  27. package/lib/docker-compose.js +2 -2
  28. package/lib/file.js +1 -1
  29. package/lib/gitattributes.js +1 -1
  30. package/lib/github/auto-approve.js +1 -1
  31. package/lib/github/auto-merge.js +1 -1
  32. package/lib/github/dependabot.js +1 -1
  33. package/lib/github/github-project.js +1 -1
  34. package/lib/github/github.js +1 -1
  35. package/lib/github/mergify.js +1 -1
  36. package/lib/github/pr-template.js +1 -1
  37. package/lib/github/pull-request-lint.js +1 -1
  38. package/lib/github/stale.js +1 -1
  39. package/lib/github/task-workflow.js +1 -1
  40. package/lib/github/workflows.js +1 -1
  41. package/lib/gitlab/configuration-model.d.ts +1308 -0
  42. package/lib/gitlab/configuration-model.js +122 -0
  43. package/lib/gitlab/configuration.d.ts +260 -0
  44. package/lib/gitlab/configuration.js +296 -0
  45. package/lib/gitlab/gitlab-configuration.d.ts +30 -0
  46. package/lib/gitlab/gitlab-configuration.js +49 -0
  47. package/lib/gitlab/index.d.ts +4 -0
  48. package/lib/gitlab/index.js +17 -0
  49. package/lib/gitlab/nested-configuration.d.ts +26 -0
  50. package/lib/gitlab/nested-configuration.js +38 -0
  51. package/lib/gitpod.js +1 -1
  52. package/lib/ignore-file.js +1 -1
  53. package/lib/index.d.ts +1 -0
  54. package/lib/index.js +2 -1
  55. package/lib/ini.js +1 -1
  56. package/lib/java/java-project.js +1 -1
  57. package/lib/java/junit.js +1 -1
  58. package/lib/java/maven-compile.js +1 -1
  59. package/lib/java/maven-packaging.js +1 -1
  60. package/lib/java/maven-sample.js +1 -1
  61. package/lib/java/pom.js +1 -1
  62. package/lib/java/projenrc.js +1 -1
  63. package/lib/javascript/bundler.js +1 -1
  64. package/lib/javascript/eslint.js +1 -1
  65. package/lib/javascript/jest.d.ts +0 -8
  66. package/lib/javascript/jest.js +2 -25
  67. package/lib/javascript/node-package.js +1 -1
  68. package/lib/javascript/node-project.js +1 -1
  69. package/lib/javascript/npm-config.js +1 -1
  70. package/lib/javascript/prettier.js +1 -1
  71. package/lib/javascript/projenrc.js +1 -1
  72. package/lib/javascript/typescript-config.js +1 -1
  73. package/lib/javascript/upgrade-dependencies.js +2 -2
  74. package/lib/json.js +1 -1
  75. package/lib/license.js +1 -1
  76. package/lib/logger.js +1 -1
  77. package/lib/makefile.js +1 -1
  78. package/lib/object-file.js +1 -1
  79. package/lib/project-build.js +1 -1
  80. package/lib/project.js +1 -1
  81. package/lib/projects.js +1 -1
  82. package/lib/projenrc-json.js +1 -1
  83. package/lib/python/pip.js +1 -1
  84. package/lib/python/poetry.js +2 -2
  85. package/lib/python/projenrc.js +1 -1
  86. package/lib/python/pytest.js +1 -1
  87. package/lib/python/python-project.js +1 -1
  88. package/lib/python/python-sample.js +1 -1
  89. package/lib/python/requirements-file.js +1 -1
  90. package/lib/python/setuppy.js +1 -1
  91. package/lib/python/setuptools.js +1 -1
  92. package/lib/python/venv.js +1 -1
  93. package/lib/readme.js +1 -1
  94. package/lib/release/publisher.js +1 -1
  95. package/lib/release/release-trigger.js +1 -1
  96. package/lib/release/release.js +1 -1
  97. package/lib/sample-file.js +2 -2
  98. package/lib/semver.js +1 -1
  99. package/lib/source-code.js +1 -1
  100. package/lib/task-runtime.js +1 -1
  101. package/lib/task.js +1 -1
  102. package/lib/tasks.js +1 -1
  103. package/lib/testing.js +1 -1
  104. package/lib/textfile.js +1 -1
  105. package/lib/toml.js +1 -1
  106. package/lib/typescript/projenrc.js +1 -1
  107. package/lib/typescript/typescript-typedoc.js +1 -1
  108. package/lib/typescript/typescript.d.ts +6 -0
  109. package/lib/typescript/typescript.js +62 -46
  110. package/lib/version.js +1 -1
  111. package/lib/vscode/devcontainer.js +1 -1
  112. package/lib/vscode/launch-config.js +1 -1
  113. package/lib/vscode/vscode.js +1 -1
  114. package/lib/web/next.js +3 -3
  115. package/lib/web/postcss.js +1 -1
  116. package/lib/web/react.js +4 -4
  117. package/lib/web/tailwind.js +1 -1
  118. package/lib/xmlfile.js +1 -1
  119. package/lib/yaml.js +1 -1
  120. package/package.json +5 -5
  121. package/releasetag.txt +1 -1
  122. 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.
@@ -180,6 +183,8 @@ Name|Description
180
183
  [awscdk.IntegrationTestOptions](#projen-awscdk-integrationtestoptions)|Options for `IntegrationTest`.
181
184
  [awscdk.LambdaFunctionCommonOptions](#projen-awscdk-lambdafunctioncommonoptions)|Common options for `LambdaFunction`.
182
185
  [awscdk.LambdaFunctionOptions](#projen-awscdk-lambdafunctionoptions)|Options for `Function`.
186
+ [build.AddPostBuildJobCommandsOptions](#projen-build-addpostbuildjobcommandsoptions)|Options for `BuildWorkflow.addPostBuildJobCommands`.
187
+ [build.AddPostBuildJobTaskOptions](#projen-build-addpostbuildjobtaskoptions)|Options for `BuildWorkflow.addPostBuildJobTask`.
183
188
  [build.BuildWorkflowOptions](#projen-build-buildworkflowoptions)|*No description*
184
189
  [cdk.Catalog](#projen-cdk-catalog)|*No description*
185
190
  [cdk.ConstructLibraryOptions](#projen-cdk-constructlibraryoptions)|*No description*
@@ -209,6 +214,35 @@ Name|Description
209
214
  [github.StaleBehavior](#projen-github-stalebehavior)|Stale behavior.
210
215
  [github.StaleOptions](#projen-github-staleoptions)|Options for `Stale`.
211
216
  [github.TaskWorkflowOptions](#projen-github-taskworkflowoptions)|*No description*
217
+ [gitlab.AllowFailure](#projen-gitlab-allowfailure)|Exit code that are not considered failure.
218
+ [gitlab.Artifacts](#projen-gitlab-artifacts)|Used to specify a list of files and directories that should be attached to the job if it succeeds.
219
+ [gitlab.Assets](#projen-gitlab-assets)|Asset configuration for a release.
220
+ [gitlab.Cache](#projen-gitlab-cache)|Cache Definition.
221
+ [gitlab.CiConfigurationOptions](#projen-gitlab-ciconfigurationoptions)|Options for `CiConfiguration`.
222
+ [gitlab.Default](#projen-gitlab-default)|Default settings for the CI Configuration.
223
+ [gitlab.Engine](#projen-gitlab-engine)|The engine configuration for a secret.
224
+ [gitlab.Environment](#projen-gitlab-environment)|The environment that a job deploys to.
225
+ [gitlab.Filter](#projen-gitlab-filter)|Filtering options for when a job will run.
226
+ [gitlab.Image](#projen-gitlab-image)|Specifies the docker image to use for the job or globally for all jobs.
227
+ [gitlab.Include](#projen-gitlab-include)|An included YAML file.
228
+ [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.
229
+ [gitlab.Inherit](#projen-gitlab-inherit)|Controls inheritance of globally-defined defaults and variables.
230
+ [gitlab.Job](#projen-gitlab-job)|Jobs are the most fundamental element of a .gitlab-ci.yml file.
231
+ [gitlab.KubernetesConfig](#projen-gitlab-kubernetesconfig)|Used to configure the kubernetes deployment for this environment.
232
+ [gitlab.Link](#projen-gitlab-link)|Link configuration for an asset.
233
+ [gitlab.Need](#projen-gitlab-need)|A jobs in a previous stage whose sole completion is needed to start the current job.
234
+ [gitlab.Parallel](#projen-gitlab-parallel)|Used to run a job multiple times in parallel in a single pipeline.
235
+ [gitlab.Release](#projen-gitlab-release)|Indicates that the job creates a Release.
236
+ [gitlab.Reports](#projen-gitlab-reports)|Reports will be uploaded as artifacts, and often displayed in the Gitlab UI, such as in Merge Requests.
237
+ [gitlab.Retry](#projen-gitlab-retry)|How many times a job is retried if it fails.
238
+ [gitlab.Secret](#projen-gitlab-secret)|A CI/CD secret.
239
+ [gitlab.Service](#projen-gitlab-service)|Used to specify an additional Docker image to run scripts in.
240
+ [gitlab.Trigger](#projen-gitlab-trigger)|Trigger a multi-project or a child pipeline.
241
+ [gitlab.TriggerInclude](#projen-gitlab-triggerinclude)|References a local file or an artifact from another job to define the pipeline configuration.
242
+ [gitlab.VariableConfig](#projen-gitlab-variableconfig)|Explains what the global variable is used for, what the acceptable values are.
243
+ [gitlab.VaultConfig](#projen-gitlab-vaultconfig)|Specification for a secret provided by a HashiCorp Vault.
244
+ [gitlab.Workflow](#projen-gitlab-workflow)|Used to control pipeline behavior.
245
+ [gitlab.WorkflowRule](#projen-gitlab-workflowrule)|Used to control whether or not a whole pipeline is created.
212
246
  [java.JavaProjectCommonOptions](#projen-java-javaprojectcommonoptions)|Options for `JavaProject`.
213
247
  [java.JavaProjectOptions](#projen-java-javaprojectoptions)|Options for `JavaProject`.
214
248
  [java.JunitOptions](#projen-java-junitoptions)|Options for `Junit`.
@@ -328,6 +362,15 @@ Name|Description
328
362
  [github.DependabotRegistryType](#projen-github-dependabotregistrytype)|Each configuration type requires you to provide particular settings.
329
363
  [github.DependabotScheduleInterval](#projen-github-dependabotscheduleinterval)|How often to check for new versions and raise pull requests for version updates.
330
364
  [github.VersioningStrategy](#projen-github-versioningstrategy)|The strategy to use when edits manifest and lock files.
365
+ [gitlab.Action](#projen-gitlab-action)|Specifies what this job will do.
366
+ [gitlab.CacheWhen](#projen-gitlab-cachewhen)|Configure when artifacts are uploaded depended on job status.
367
+ [gitlab.DefaultElement](#projen-gitlab-defaultelement)|*No description*
368
+ [gitlab.DeploymentTier](#projen-gitlab-deploymenttier)|Explicitly specifies the tier of the deployment environment if non-standard environment name is used.
369
+ [gitlab.JobWhen](#projen-gitlab-jobwhen)|Describes the conditions for when to run the job.
370
+ [gitlab.KubernetesEnum](#projen-gitlab-kubernetesenum)|Filter job based on if Kubernetes integration is active.
371
+ [gitlab.LinkType](#projen-gitlab-linktype)|The content kind of what users can download via url.
372
+ [gitlab.Strategy](#projen-gitlab-strategy)|You can mirror the pipeline status from the triggered pipeline to the source bridge job by using strategy: depend.
373
+ [gitlab.WorkflowWhen](#projen-gitlab-workflowwhen)|Describes the conditions for when to run the job.
331
374
  [javascript.ArrowParens](#projen-javascript-arrowparens)|*No description*
332
375
  [javascript.AutoRelease](#projen-javascript-autorelease)|Automatic bump modes.
333
376
  [javascript.EmbeddedLanguageFormatting](#projen-javascript-embeddedlanguageformatting)|*No description*
@@ -4015,6 +4058,50 @@ addPostBuildJob(id: string, job: Job): void
4015
4058
 
4016
4059
 
4017
4060
 
4061
+ #### addPostBuildJobCommands(id, commands, options?)🔹 <a id="projen-build-buildworkflow-addpostbuildjobcommands"></a>
4062
+
4063
+ Run a sequence of commands as a job within the build workflow which is executed after the build job succeeded.
4064
+
4065
+ Jobs are executed _only_ if the build did NOT self mutate. If the build
4066
+ self-mutate, the branch will either be updated or the build will fail (in
4067
+ forks), so there is no point in executing the post-build job.
4068
+
4069
+ ```ts
4070
+ addPostBuildJobCommands(id: string, commands: Array<string>, options?: AddPostBuildJobCommandsOptions): void
4071
+ ```
4072
+
4073
+ * **id** (<code>string</code>) *No description*
4074
+ * **commands** (<code>Array<string></code>) *No description*
4075
+ * **options** (<code>[build.AddPostBuildJobCommandsOptions](#projen-build-addpostbuildjobcommandsoptions)</code>) Specify tools and other options.
4076
+ * **checkoutRepo** (<code>boolean</code>) Check out the repository at the pull request branch before commands are run. __*Default*__: false
4077
+ * **installDeps** (<code>boolean</code>) Install project dependencies before running commands. `checkoutRepo` must also be set to true. __*Default*__: false
4078
+ * **tools** (<code>[github.workflows.Tools](#projen-github-workflows-tools)</code>) Tools that should be installed before the commands are run. __*Optional*__
4079
+
4080
+
4081
+
4082
+
4083
+ #### addPostBuildJobTask(task, options)🔹 <a id="projen-build-buildworkflow-addpostbuildjobtask"></a>
4084
+
4085
+ Run a task as a job within the build workflow which is executed after the build job succeeded.
4086
+
4087
+ The job will have access to build artifacts and will install project
4088
+ dependencies in order to be able to run any commands used in the tasks.
4089
+
4090
+ Jobs are executed _only_ if the build did NOT self mutate. If the build
4091
+ self-mutate, the branch will either be updated or the build will fail (in
4092
+ forks), so there is no point in executing the post-build job.
4093
+
4094
+ ```ts
4095
+ addPostBuildJobTask(task: Task, options: AddPostBuildJobTaskOptions): void
4096
+ ```
4097
+
4098
+ * **task** (<code>[Task](#projen-task)</code>) *No description*
4099
+ * **options** (<code>[build.AddPostBuildJobTaskOptions](#projen-build-addpostbuildjobtaskoptions)</code>) Specify tools and other options.
4100
+ * **tools** (<code>[github.workflows.Tools](#projen-github-workflows-tools)</code>) Tools that should be installed before the task is run. __*Optional*__
4101
+
4102
+
4103
+
4104
+
4018
4105
  #### addPostBuildSteps(...steps)🔹 <a id="projen-build-buildworkflow-addpostbuildsteps"></a>
4019
4106
 
4020
4107
  Adds steps that are executed after the build.
@@ -5571,6 +5658,254 @@ Name | Type | Description
5571
5658
 
5572
5659
 
5573
5660
 
5661
+ ## class CiConfiguration 🔹 <a id="projen-gitlab-ciconfiguration"></a>
5662
+
5663
+ CI for GitLab.
5664
+
5665
+ A CI is a configurable automated process made up of one or more stages/jobs.
5666
+
5667
+ __Submodule__: gitlab
5668
+
5669
+ __Extends__: [Component](#projen-component)
5670
+
5671
+ ### Initializer
5672
+
5673
+
5674
+
5675
+
5676
+ ```ts
5677
+ new gitlab.CiConfiguration(project: Project, name: string, options?: CiConfigurationOptions)
5678
+ ```
5679
+
5680
+ * **project** (<code>[Project](#projen-project)</code>) *No description*
5681
+ * **name** (<code>string</code>) *No description*
5682
+ * **options** (<code>[gitlab.CiConfigurationOptions](#projen-gitlab-ciconfigurationoptions)</code>) *No description*
5683
+ * **default** (<code>[gitlab.Default](#projen-gitlab-default)</code>) Default settings for the CI Configuration. __*Optional*__
5684
+ * **jobs** (<code>Map<string, [gitlab.Job](#projen-gitlab-job)></code>) An initial set of jobs to add to the configuration. __*Optional*__
5685
+ * **pages** (<code>[gitlab.Job](#projen-gitlab-job)</code>) A special job used to upload static sites to Gitlab pages. __*Optional*__
5686
+ * **stages** (<code>Array<string></code>) Groups jobs into stages. __*Optional*__
5687
+ * **variables** (<code>Map<string, any></code>) Global variables that are passed to jobs. __*Optional*__
5688
+ * **workflow** (<code>[gitlab.Workflow](#projen-gitlab-workflow)</code>) Used to control pipeline behavior. __*Optional*__
5689
+
5690
+
5691
+
5692
+ ### Properties
5693
+
5694
+
5695
+ Name | Type | Description
5696
+ -----|------|-------------
5697
+ **defaultAfterScript**🔹 | <code>Array<string></code> | Defines default scripts that should run *after* all jobs.
5698
+ **defaultBeforeScript**🔹 | <code>Array<string></code> | Defines default scripts that should run *before* all jobs.
5699
+ **defaultTags**🔹 | <code>Array<string></code> | Used to select a specific runner from the list of all runners that are available for the project.
5700
+ **file**🔹 | <code>[YamlFile](#projen-yamlfile)</code> | The workflow YAML file.
5701
+ **jobs**🔹 | <code>Map<string, [gitlab.Job](#projen-gitlab-job)></code> | The jobs in the CI configuration.
5702
+ **name**🔹 | <code>string</code> | The name of the configuration.
5703
+ **path**🔹 | <code>string</code> | Path to CI file generated by the configuration.
5704
+ **project**🔹 | <code>[Project](#projen-project)</code> | The project the configuration belongs to.
5705
+ **stages**🔹 | <code>Array<string></code> | Groups jobs into stages.
5706
+ **variables**🔹 | <code>Map<string, string &#124; number &#124; [gitlab.VariableConfig](#projen-gitlab-variableconfig)></code> | Global variables that are passed to jobs.
5707
+ **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*__
5708
+ **defaultCache**?🔹 | <code>[gitlab.Cache](#projen-gitlab-cache)</code> | A default list of files and directories to cache between jobs.<br/>__*Optional*__
5709
+ **defaultImage**?🔹 | <code>[gitlab.Image](#projen-gitlab-image)</code> | Specifies the default docker image to use globally for all jobs.<br/>__*Optional*__
5710
+ **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*__
5711
+ **defaultRetry**?🔹 | <code>[gitlab.Retry](#projen-gitlab-retry)</code> | How many times a job is retried if it fails.<br/>__*Optional*__
5712
+ **defaultTimeout**?🔹 | <code>string</code> | A default timeout job written in natural language (Ex.<br/>__*Optional*__
5713
+ **pages**?🔹 | <code>[gitlab.Job](#projen-gitlab-job)</code> | A special job used to upload static sites to Gitlab pages.<br/>__*Optional*__
5714
+ **workflow**?🔹 | <code>[gitlab.Workflow](#projen-gitlab-workflow)</code> | Used to control pipeline behavior.<br/>__*Optional*__
5715
+
5716
+ ### Methods
5717
+
5718
+
5719
+ #### addGlobalVariables(variables)🔹 <a id="projen-gitlab-ciconfiguration-addglobalvariables"></a>
5720
+
5721
+ Add a globally defined variable to the CI configuration.
5722
+
5723
+ ```ts
5724
+ addGlobalVariables(variables: Map<string, any>): void
5725
+ ```
5726
+
5727
+ * **variables** (<code>Map<string, any></code>) The variables to add.
5728
+
5729
+
5730
+
5731
+
5732
+ #### addIncludes(...includes)🔹 <a id="projen-gitlab-ciconfiguration-addincludes"></a>
5733
+
5734
+ Add additional yml/yaml files to the CI includes.
5735
+
5736
+ ```ts
5737
+ addIncludes(...includes: Include[]): void
5738
+ ```
5739
+
5740
+ * **includes** (<code>[gitlab.Include](#projen-gitlab-include)</code>) The includes to add.
5741
+ * **file** (<code>Array<string></code>) Files from another private project on the same GitLab instance. __*Optional*__
5742
+ * **local** (<code>string</code>) Relative path from local repository root (`/`) to the `yaml`/`yml` file template. __*Optional*__
5743
+ * **project** (<code>string</code>) Path to the project, e.g. `group/project`, or `group/sub-group/project`. __*Optional*__
5744
+ * **ref** (<code>string</code>) Branch/Tag/Commit-hash for the target project. __*Optional*__
5745
+ * **remote** (<code>string</code>) URL to a `yaml`/`yml` template file using HTTP/HTTPS. __*Optional*__
5746
+ * **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*__
5747
+ * **template** (<code>string</code>) Use a `.gitlab-ci.yml` template as a base, e.g. `Nodejs.gitlab-ci.yml`. __*Optional*__
5748
+
5749
+
5750
+
5751
+
5752
+ #### addJobs(jobs)🔹 <a id="projen-gitlab-ciconfiguration-addjobs"></a>
5753
+
5754
+ Add jobs and their stages to the CI configuration.
5755
+
5756
+ ```ts
5757
+ addJobs(jobs: Map<string, Job>): void
5758
+ ```
5759
+
5760
+ * **jobs** (<code>Map<string, [gitlab.Job](#projen-gitlab-job)></code>) Jobs to add.
5761
+
5762
+
5763
+
5764
+
5765
+ #### addServices(...services)🔹 <a id="projen-gitlab-ciconfiguration-addservices"></a>
5766
+
5767
+ Add additional services.
5768
+
5769
+ ```ts
5770
+ addServices(...services: Service[]): void
5771
+ ```
5772
+
5773
+ * **services** (<code>[gitlab.Service](#projen-gitlab-service)</code>) The services to add.
5774
+ * **name** (<code>string</code>) Full name of the image that should be used.
5775
+ * **alias** (<code>string</code>) Additional alias that can be used to access the service from the job's container. __*Optional*__
5776
+ * **command** (<code>Array<string></code>) Command or script that should be used as the container's command. __*Optional*__
5777
+ * **entrypoint** (<code>Array<string></code>) Command or script that should be executed as the container's entrypoint. __*Optional*__
5778
+
5779
+
5780
+
5781
+
5782
+ #### addStages(...stages)🔹 <a id="projen-gitlab-ciconfiguration-addstages"></a>
5783
+
5784
+ Add stages to the CI configuration if not already present.
5785
+
5786
+ ```ts
5787
+ addStages(...stages: string[]): void
5788
+ ```
5789
+
5790
+ * **stages** (<code>string</code>) stages to add.
5791
+
5792
+
5793
+
5794
+
5795
+
5796
+
5797
+ ## class GitlabConfiguration 🔹 <a id="projen-gitlab-gitlabconfiguration"></a>
5798
+
5799
+ A GitLab CI for the main `.gitlab-ci.yml` file.
5800
+
5801
+ __Submodule__: gitlab
5802
+
5803
+ __Extends__: [gitlab.CiConfiguration](#projen-gitlab-ciconfiguration)
5804
+
5805
+ ### Initializer
5806
+
5807
+
5808
+
5809
+
5810
+ ```ts
5811
+ new gitlab.GitlabConfiguration(project: Project, options?: CiConfigurationOptions)
5812
+ ```
5813
+
5814
+ * **project** (<code>[Project](#projen-project)</code>) *No description*
5815
+ * **options** (<code>[gitlab.CiConfigurationOptions](#projen-gitlab-ciconfigurationoptions)</code>) *No description*
5816
+ * **default** (<code>[gitlab.Default](#projen-gitlab-default)</code>) Default settings for the CI Configuration. __*Optional*__
5817
+ * **jobs** (<code>Map<string, [gitlab.Job](#projen-gitlab-job)></code>) An initial set of jobs to add to the configuration. __*Optional*__
5818
+ * **pages** (<code>[gitlab.Job](#projen-gitlab-job)</code>) A special job used to upload static sites to Gitlab pages. __*Optional*__
5819
+ * **stages** (<code>Array<string></code>) Groups jobs into stages. __*Optional*__
5820
+ * **variables** (<code>Map<string, any></code>) Global variables that are passed to jobs. __*Optional*__
5821
+ * **workflow** (<code>[gitlab.Workflow](#projen-gitlab-workflow)</code>) Used to control pipeline behavior. __*Optional*__
5822
+
5823
+
5824
+
5825
+ ### Properties
5826
+
5827
+
5828
+ Name | Type | Description
5829
+ -----|------|-------------
5830
+ **nestedTemplates**🔹 | <code>Map<string, [gitlab.NestedConfiguration](#projen-gitlab-nestedconfiguration)></code> | <span></span>
5831
+
5832
+ ### Methods
5833
+
5834
+
5835
+ #### createNestedTemplates(config)🔹 <a id="projen-gitlab-gitlabconfiguration-createnestedtemplates"></a>
5836
+
5837
+ Creates and adds nested templates to the includes of the main CI.
5838
+
5839
+ Additionally adds their stages to the main CI if they are not already present.
5840
+ You can futher customize nested templates through the `nestedTemplates` property.
5841
+ E.g. gitlabConfig.nestedTemplates['templateName']?.addStages('stageName')
5842
+
5843
+ ```ts
5844
+ createNestedTemplates(config: Map<string, CiConfigurationOptions>): void
5845
+ ```
5846
+
5847
+ * **config** (<code>Map<string, [gitlab.CiConfigurationOptions](#projen-gitlab-ciconfigurationoptions)></code>) a record the names and configuraitons of the templates.
5848
+
5849
+
5850
+
5851
+
5852
+
5853
+
5854
+ ## class NestedConfiguration 🔹 <a id="projen-gitlab-nestedconfiguration"></a>
5855
+
5856
+ A GitLab CI for templates that are created and included in the `.gitlab-ci.yml` file.
5857
+
5858
+ __Submodule__: gitlab
5859
+
5860
+ __Extends__: [gitlab.CiConfiguration](#projen-gitlab-ciconfiguration)
5861
+
5862
+ ### Initializer
5863
+
5864
+
5865
+
5866
+
5867
+ ```ts
5868
+ new gitlab.NestedConfiguration(project: Project, parent: GitlabConfiguration, name: string, options?: CiConfigurationOptions)
5869
+ ```
5870
+
5871
+ * **project** (<code>[Project](#projen-project)</code>) *No description*
5872
+ * **parent** (<code>[gitlab.GitlabConfiguration](#projen-gitlab-gitlabconfiguration)</code>) *No description*
5873
+ * **name** (<code>string</code>) *No description*
5874
+ * **options** (<code>[gitlab.CiConfigurationOptions](#projen-gitlab-ciconfigurationoptions)</code>) *No description*
5875
+ * **default** (<code>[gitlab.Default](#projen-gitlab-default)</code>) Default settings for the CI Configuration. __*Optional*__
5876
+ * **jobs** (<code>Map<string, [gitlab.Job](#projen-gitlab-job)></code>) An initial set of jobs to add to the configuration. __*Optional*__
5877
+ * **pages** (<code>[gitlab.Job](#projen-gitlab-job)</code>) A special job used to upload static sites to Gitlab pages. __*Optional*__
5878
+ * **stages** (<code>Array<string></code>) Groups jobs into stages. __*Optional*__
5879
+ * **variables** (<code>Map<string, any></code>) Global variables that are passed to jobs. __*Optional*__
5880
+ * **workflow** (<code>[gitlab.Workflow](#projen-gitlab-workflow)</code>) Used to control pipeline behavior. __*Optional*__
5881
+
5882
+
5883
+
5884
+ ### Properties
5885
+
5886
+
5887
+ Name | Type | Description
5888
+ -----|------|-------------
5889
+ **parent**🔹 | <code>[gitlab.GitlabConfiguration](#projen-gitlab-gitlabconfiguration)</code> | <span></span>
5890
+
5891
+ ### Methods
5892
+
5893
+
5894
+ #### addStages(...stages)🔹 <a id="projen-gitlab-nestedconfiguration-addstages"></a>
5895
+
5896
+ Add stages to the Nested configuration and the main CI file if not already present.
5897
+
5898
+ ```ts
5899
+ addStages(...stages: string[]): void
5900
+ ```
5901
+
5902
+ * **stages** (<code>string</code>) stages to add.
5903
+
5904
+
5905
+
5906
+
5907
+
5908
+
5574
5909
  ## class JavaProject 🔹 <a id="projen-java-javaproject"></a>
5575
5910
 
5576
5911
  Java project.
@@ -6254,19 +6589,6 @@ addTestMatch(pattern: string): void
6254
6589
 
6255
6590
 
6256
6591
 
6257
- #### addTypeScriptSupport(tsconfig)🔹 <a id="projen-javascript-jest-addtypescriptsupport"></a>
6258
-
6259
- Configures jest for TypeScript.
6260
-
6261
- ```ts
6262
- addTypeScriptSupport(tsconfig: TypescriptConfig): void
6263
- ```
6264
-
6265
- * **tsconfig** (<code>[javascript.TypescriptConfig](#projen-javascript-typescriptconfig)</code>) The typescript config file.
6266
-
6267
-
6268
-
6269
-
6270
6592
  #### addWatchIgnorePattern(pattern)🔹 <a id="projen-javascript-jest-addwatchignorepattern"></a>
6271
6593
 
6272
6594
  Adds a watch ignore pattern.
@@ -11380,6 +11702,34 @@ Name | Type | Description
11380
11702
 
11381
11703
 
11382
11704
 
11705
+ ## struct AddPostBuildJobCommandsOptions 🔹 <a id="projen-build-addpostbuildjobcommandsoptions"></a>
11706
+
11707
+
11708
+ Options for `BuildWorkflow.addPostBuildJobCommands`.
11709
+
11710
+
11711
+
11712
+ Name | Type | Description
11713
+ -----|------|-------------
11714
+ **checkoutRepo**?🔹 | <code>boolean</code> | Check out the repository at the pull request branch before commands are run.<br/>__*Default*__: false
11715
+ **installDeps**?🔹 | <code>boolean</code> | Install project dependencies before running commands. `checkoutRepo` must also be set to true.<br/>__*Default*__: false
11716
+ **tools**?🔹 | <code>[github.workflows.Tools](#projen-github-workflows-tools)</code> | Tools that should be installed before the commands are run.<br/>__*Optional*__
11717
+
11718
+
11719
+
11720
+ ## struct AddPostBuildJobTaskOptions 🔹 <a id="projen-build-addpostbuildjobtaskoptions"></a>
11721
+
11722
+
11723
+ Options for `BuildWorkflow.addPostBuildJobTask`.
11724
+
11725
+
11726
+
11727
+ Name | Type | Description
11728
+ -----|------|-------------
11729
+ **tools**?🔹 | <code>[github.workflows.Tools](#projen-github-workflows-tools)</code> | Tools that should be installed before the task is run.<br/>__*Optional*__
11730
+
11731
+
11732
+
11383
11733
  ## struct BuildWorkflowOptions 🔹 <a id="projen-build-buildworkflowoptions"></a>
11384
11734
 
11385
11735
 
@@ -12618,71 +12968,596 @@ Name | Type | Description
12618
12968
 
12619
12969
 
12620
12970
 
12621
- ## struct JavaProjectCommonOptions 🔹 <a id="projen-java-javaprojectcommonoptions"></a>
12971
+ ## struct AllowFailure 🔹 <a id="projen-gitlab-allowfailure"></a>
12622
12972
 
12623
12973
 
12624
- Options for `JavaProject`.
12974
+ Exit code that are not considered failure.
12975
+
12976
+ The job fails for any other exit code.
12977
+ You can list which exit codes are not considered failures. The job fails for any other
12978
+ exit code.
12625
12979
 
12626
12980
 
12627
12981
 
12628
12982
  Name | Type | Description
12629
12983
  -----|------|-------------
12630
- **artifactId**🔹 | <code>string</code> | The artifactId is generally the name that the project is known by.
12631
- **groupId**🔹 | <code>string</code> | This is generally unique amongst an organization or a project.
12632
- **name**🔹 | <code>string</code> | This is the name of your project.
12633
- **version**🔹 | <code>string</code> | This is the last piece of the naming puzzle.
12634
- **autoApproveOptions**?🔹 | <code>[github.AutoApproveOptions](#projen-github-autoapproveoptions)</code> | Enable and configure the 'auto approve' workflow.<br/>__*Default*__: auto approve is disabled
12635
- **autoMergeOptions**?🔹 | <code>[github.AutoMergeOptions](#projen-github-automergeoptions)</code> | Configure options for automatic merging on GitHub.<br/>__*Default*__: see defaults in `AutoMergeOptions`
12636
- **clobber**?🔹 | <code>boolean</code> | Add a `clobber` task which resets the repo to origin.<br/>__*Default*__: true
12637
- **compileOptions**?🔹 | <code>[java.MavenCompileOptions](#projen-java-mavencompileoptions)</code> | Compile options.<br/>__*Default*__: defaults
12638
- **deps**?🔹 | <code>Array<string></code> | List of runtime dependencies for this project.<br/>__*Default*__: []
12639
- **description**?🔹 | <code>string</code> | Description of a project is always good.<br/>__*Default*__: undefined
12640
- **devContainer**?🔹 | <code>boolean</code> | Add a VSCode development environment (used for GitHub Codespaces).<br/>__*Default*__: false
12641
- **distdir**?🔹 | <code>string</code> | Final artifact output directory.<br/>__*Default*__: "dist/java"
12642
- **github**?🔹 | <code>boolean</code> | Enable GitHub integration.<br/>__*Default*__: true
12643
- **githubOptions**?🔹 | <code>[github.GitHubOptions](#projen-github-githuboptions)</code> | Options for GitHub integration.<br/>__*Default*__: see GitHubOptions
12644
- **gitpod**?🔹 | <code>boolean</code> | Add a Gitpod development environment.<br/>__*Default*__: false
12645
- **junit**?🔹 | <code>boolean</code> | Include junit tests.<br/>__*Default*__: true
12646
- **junitOptions**?🔹 | <code>[java.JunitOptions](#projen-java-junitoptions)</code> | junit options.<br/>__*Default*__: defaults
12647
- **logging**?🔹 | <code>[LoggerOptions](#projen-loggeroptions)</code> | Configure logging options such as verbosity.<br/>__*Default*__: {}
12648
- **mergify**?⚠️ | <code>boolean</code> | Whether mergify should be enabled on this repository or not.<br/>__*Default*__: true
12649
- **mergifyOptions**?⚠️ | <code>[github.MergifyOptions](#projen-github-mergifyoptions)</code> | Options for mergify.<br/>__*Default*__: default options
12650
- **outdir**?🔹 | <code>string</code> | The root directory of the project.<br/>__*Default*__: "."
12651
- **packaging**?🔹 | <code>string</code> | Project packaging format.<br/>__*Default*__: "jar"
12652
- **packagingOptions**?🔹 | <code>[java.MavenPackagingOptions](#projen-java-mavenpackagingoptions)</code> | Packaging options.<br/>__*Default*__: defaults
12653
- **parent**?🔹 | <code>[Project](#projen-project)</code> | The parent project, if this project is part of a bigger project.<br/>__*Optional*__
12654
- **projectType**?⚠️ | <code>[ProjectType](#projen-projecttype)</code> | Which type of project this is (library/app).<br/>__*Default*__: ProjectType.UNKNOWN
12655
- **projenCommand**?🔹 | <code>string</code> | The shell command to use in order to run the projen CLI.<br/>__*Default*__: "npx projen"
12656
- **projenTokenSecret**?🔹 | <code>string</code> | The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows.<br/>__*Default*__: "PROJEN_GITHUB_TOKEN"
12657
- **projenrcJava**?🔹 | <code>boolean</code> | Use projenrc in java.<br/>__*Default*__: true
12658
- **projenrcJavaOptions**?🔹 | <code>[java.ProjenrcOptions](#projen-java-projenrcoptions)</code> | Options related to projenrc in java.<br/>__*Default*__: default options
12659
- **projenrcJson**?🔹 | <code>boolean</code> | Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation.<br/>__*Default*__: false
12660
- **projenrcJsonOptions**?🔹 | <code>[ProjenrcOptions](#projen-projenrcoptions)</code> | Options for .projenrc.json.<br/>__*Default*__: default options
12661
- **readme**?🔹 | <code>[SampleReadmeProps](#projen-samplereadmeprops)</code> | The README setup.<br/>__*Default*__: { filename: 'README.md', contents: '# replace this' }
12662
- **stale**?🔹 | <code>boolean</code> | Auto-close of stale issues and pull request.<br/>__*Default*__: true
12663
- **staleOptions**?🔹 | <code>[github.StaleOptions](#projen-github-staleoptions)</code> | Auto-close stale issues and pull requests.<br/>__*Default*__: see defaults in `StaleOptions`
12664
- **testDeps**?🔹 | <code>Array<string></code> | List of test dependencies for this project.<br/>__*Default*__: []
12665
- **url**?🔹 | <code>string</code> | The URL, like the name, is not required.<br/>__*Default*__: undefined
12666
- **vscode**?🔹 | <code>boolean</code> | Enable VSCode integration.<br/>__*Default*__: true
12984
+ **exitCodes**🔹 | <code>number &#124; Array<number></code> | <span></span>
12667
12985
 
12668
12986
 
12669
12987
 
12670
- ## struct JavaProjectOptions 🔹 <a id="projen-java-javaprojectoptions"></a>
12988
+ ## struct Artifacts 🔹 <a id="projen-gitlab-artifacts"></a>
12671
12989
 
12672
12990
 
12673
- Options for `JavaProject`.
12991
+ Used to specify a list of files and directories that should be attached to the job if it succeeds.
12992
+
12993
+ Artifacts are sent to Gitlab where they can be downloaded.
12674
12994
 
12675
12995
 
12676
12996
 
12677
12997
  Name | Type | Description
12678
12998
  -----|------|-------------
12679
- **artifactId**🔹 | <code>string</code> | The artifactId is generally the name that the project is known by.
12680
- **groupId**🔹 | <code>string</code> | This is generally unique amongst an organization or a project.
12681
- **name**🔹 | <code>string</code> | This is the name of your project.
12682
- **version**🔹 | <code>string</code> | This is the last piece of the naming puzzle.
12683
- **autoApproveOptions**?🔹 | <code>[github.AutoApproveOptions](#projen-github-autoapproveoptions)</code> | Enable and configure the 'auto approve' workflow.<br/>__*Default*__: auto approve is disabled
12684
- **autoMergeOptions**?🔹 | <code>[github.AutoMergeOptions](#projen-github-automergeoptions)</code> | Configure options for automatic merging on GitHub.<br/>__*Default*__: see defaults in `AutoMergeOptions`
12685
- **clobber**?🔹 | <code>boolean</code> | Add a `clobber` task which resets the repo to origin.<br/>__*Default*__: true
12999
+ **exclude**?🔹 | <code>Array<string></code> | A list of paths to files/folders that should be excluded in the artifact.<br/>__*Optional*__
13000
+ **expireIn**?🔹 | <code>string</code> | How long artifacts should be kept.<br/>__*Optional*__
13001
+ **exposeAs**?🔹 | <code>string</code> | Can be used to expose job artifacts in the merge request UI.<br/>__*Optional*__
13002
+ **name**?🔹 | <code>string</code> | Name for the archive created on job success.<br/>__*Optional*__
13003
+ **paths**?🔹 | <code>Array<string></code> | A list of paths to files/folders that should be included in the artifact.<br/>__*Optional*__
13004
+ **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*__
13005
+ **untracked**?🔹 | <code>boolean</code> | Whether to add all untracked files (along with 'artifacts.paths') to the artifact.<br/>__*Optional*__
13006
+ **when**?🔹 | <code>[gitlab.CacheWhen](#projen-gitlab-cachewhen)</code> | Configure when artifacts are uploaded depended on job status.<br/>__*Optional*__
13007
+
13008
+
13009
+
13010
+ ## struct Assets 🔹 <a id="projen-gitlab-assets"></a>
13011
+
13012
+
13013
+ Asset configuration for a release.
13014
+
13015
+
13016
+
13017
+ Name | Type | Description
13018
+ -----|------|-------------
13019
+ **links**🔹 | <code>Array<[gitlab.Link](#projen-gitlab-link)></code> | Include asset links in the release.
13020
+
13021
+
13022
+
13023
+ ## struct Cache 🔹 <a id="projen-gitlab-cache"></a>
13024
+
13025
+
13026
+ Cache Definition.
13027
+
13028
+
13029
+
13030
+ Name | Type | Description
13031
+ -----|------|-------------
13032
+ **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*__
13033
+
13034
+
13035
+
13036
+ ## struct CiConfigurationOptions 🔹 <a id="projen-gitlab-ciconfigurationoptions"></a>
13037
+
13038
+
13039
+ Options for `CiConfiguration`.
13040
+
13041
+
13042
+
13043
+ Name | Type | Description
13044
+ -----|------|-------------
13045
+ **default**?🔹 | <code>[gitlab.Default](#projen-gitlab-default)</code> | Default settings for the CI Configuration.<br/>__*Optional*__
13046
+ **jobs**?🔹 | <code>Map<string, [gitlab.Job](#projen-gitlab-job)></code> | An initial set of jobs to add to the configuration.<br/>__*Optional*__
13047
+ **pages**?🔹 | <code>[gitlab.Job](#projen-gitlab-job)</code> | A special job used to upload static sites to Gitlab pages.<br/>__*Optional*__
13048
+ **stages**?🔹 | <code>Array<string></code> | Groups jobs into stages.<br/>__*Optional*__
13049
+ **variables**?🔹 | <code>Map<string, any></code> | Global variables that are passed to jobs.<br/>__*Optional*__
13050
+ **workflow**?🔹 | <code>[gitlab.Workflow](#projen-gitlab-workflow)</code> | Used to control pipeline behavior.<br/>__*Optional*__
13051
+
13052
+
13053
+
13054
+ ## struct Default 🔹 <a id="projen-gitlab-default"></a>
13055
+
13056
+
13057
+ Default settings for the CI Configuration.
13058
+
13059
+ Jobs that do not define one or more of the listed keywords use the value defined in the default section.
13060
+
13061
+
13062
+
13063
+ Name | Type | Description
13064
+ -----|------|-------------
13065
+ **afterScript**?🔹 | <code>Array<string></code> | __*Optional*__
13066
+ **artifacts**?🔹 | <code>[gitlab.Artifacts](#projen-gitlab-artifacts)</code> | __*Optional*__
13067
+ **beforeScript**?🔹 | <code>Array<string></code> | __*Optional*__
13068
+ **cache**?🔹 | <code>[gitlab.Cache](#projen-gitlab-cache)</code> | __*Optional*__
13069
+ **image**?🔹 | <code>[gitlab.Image](#projen-gitlab-image)</code> | __*Optional*__
13070
+ **interruptible**?🔹 | <code>boolean</code> | __*Optional*__
13071
+ **retry**?🔹 | <code>[gitlab.Retry](#projen-gitlab-retry)</code> | __*Optional*__
13072
+ **services**?🔹 | <code>Array<[gitlab.Service](#projen-gitlab-service)></code> | __*Optional*__
13073
+ **tags**?🔹 | <code>Array<string></code> | __*Optional*__
13074
+ **timeout**?🔹 | <code>string</code> | __*Optional*__
13075
+
13076
+
13077
+
13078
+ ## struct Engine 🔹 <a id="projen-gitlab-engine"></a>
13079
+
13080
+
13081
+ The engine configuration for a secret.
13082
+
13083
+
13084
+
13085
+ Name | Type | Description
13086
+ -----|------|-------------
13087
+ **name**🔹 | <code>string</code> | Name of the secrets engine.
13088
+ **path**🔹 | <code>string</code> | Path to the secrets engine.
13089
+
13090
+
13091
+
13092
+ ## struct Environment 🔹 <a id="projen-gitlab-environment"></a>
13093
+
13094
+
13095
+ The environment that a job deploys to.
13096
+
13097
+
13098
+
13099
+ Name | Type | Description
13100
+ -----|------|-------------
13101
+ **name**🔹 | <code>string</code> | The name of the environment, e.g. 'qa', 'staging', 'production'.
13102
+ **action**?🔹 | <code>[gitlab.Action](#projen-gitlab-action)</code> | Specifies what this job will do.<br/>__*Optional*__
13103
+ **autoStopIn**?🔹 | <code>string</code> | The amount of time it should take before Gitlab will automatically stop the environment.<br/>__*Optional*__
13104
+ **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*__
13105
+ **kubernetes**?🔹 | <code>[gitlab.KubernetesConfig](#projen-gitlab-kubernetesconfig)</code> | Used to configure the kubernetes deployment for this environment.<br/>__*Optional*__
13106
+ **onStop**?🔹 | <code>string</code> | The name of a job to execute when the environment is about to be stopped.<br/>__*Optional*__
13107
+ **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*__
13108
+
13109
+
13110
+
13111
+ ## struct Filter 🔹 <a id="projen-gitlab-filter"></a>
13112
+
13113
+
13114
+ Filtering options for when a job will run.
13115
+
13116
+
13117
+
13118
+ Name | Type | Description
13119
+ -----|------|-------------
13120
+ **changes**?🔹 | <code>Array<string></code> | Filter job creation based on files that were modified in a git push.<br/>__*Optional*__
13121
+ **kubernetes**?🔹 | <code>[gitlab.KubernetesEnum](#projen-gitlab-kubernetesenum)</code> | Filter job based on if Kubernetes integration is active.<br/>__*Optional*__
13122
+ **refs**?🔹 | <code>Array<string></code> | Control when to add jobs to a pipeline based on branch names or pipeline types.<br/>__*Optional*__
13123
+ **variables**?🔹 | <code>Array<string></code> | Filter job by checking comparing values of environment variables.<br/>__*Optional*__
13124
+
13125
+
13126
+
13127
+ ## struct Image 🔹 <a id="projen-gitlab-image"></a>
13128
+
13129
+
13130
+ Specifies the docker image to use for the job or globally for all jobs.
13131
+
13132
+ Job configuration
13133
+ takes precedence over global setting. Requires a certain kind of Gitlab runner executor.
13134
+
13135
+
13136
+
13137
+ Name | Type | Description
13138
+ -----|------|-------------
13139
+ **name**🔹 | <code>string</code> | Full name of the image that should be used.
13140
+ **entrypoint**?🔹 | <code>Array<any></code> | Command or script that should be executed as the container's entrypoint.<br/>__*Optional*__
13141
+
13142
+
13143
+
13144
+ ## struct Include 🔹 <a id="projen-gitlab-include"></a>
13145
+
13146
+
13147
+ An included YAML file.
13148
+
13149
+
13150
+
13151
+ Name | Type | Description
13152
+ -----|------|-------------
13153
+ **file**?🔹 | <code>Array<string></code> | Files from another private project on the same GitLab instance.<br/>__*Optional*__
13154
+ **local**?🔹 | <code>string</code> | Relative path from local repository root (`/`) to the `yaml`/`yml` file template.<br/>__*Optional*__
13155
+ **project**?🔹 | <code>string</code> | Path to the project, e.g. `group/project`, or `group/sub-group/project`.<br/>__*Optional*__
13156
+ **ref**?🔹 | <code>string</code> | Branch/Tag/Commit-hash for the target project.<br/>__*Optional*__
13157
+ **remote**?🔹 | <code>string</code> | URL to a `yaml`/`yml` template file using HTTP/HTTPS.<br/>__*Optional*__
13158
+ **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*__
13159
+ **template**?🔹 | <code>string</code> | Use a `.gitlab-ci.yml` template as a base, e.g. `Nodejs.gitlab-ci.yml`.<br/>__*Optional*__
13160
+
13161
+
13162
+
13163
+ ## struct IncludeRule 🔹 <a id="projen-gitlab-includerule"></a>
13164
+
13165
+
13166
+ Rules allows for an array of individual rule objects to be evaluated in order, until one matches and dynamically provides attributes to the job.
13167
+
13168
+
13169
+
13170
+ Name | Type | Description
13171
+ -----|------|-------------
13172
+ **allowFailure**?🔹 | <code>boolean &#124; [gitlab.AllowFailure](#projen-gitlab-allowfailure)</code> | __*Optional*__
13173
+ **changes**?🔹 | <code>Array<string></code> | __*Optional*__
13174
+ **exists**?🔹 | <code>Array<string></code> | __*Optional*__
13175
+ **if**?🔹 | <code>string</code> | __*Optional*__
13176
+ **startIn**?🔹 | <code>string</code> | __*Optional*__
13177
+ **variables**?🔹 | <code>Map<string, string &#124; number></code> | __*Optional*__
13178
+ **when**?🔹 | <code>[gitlab.JobWhen](#projen-gitlab-jobwhen)</code> | __*Optional*__
13179
+
13180
+
13181
+
13182
+ ## struct Inherit 🔹 <a id="projen-gitlab-inherit"></a>
13183
+
13184
+
13185
+ Controls inheritance of globally-defined defaults and variables.
13186
+
13187
+ Boolean values control
13188
+ inheritance of all default: or variables: keywords. To inherit only a subset of default:
13189
+ or variables: keywords, specify what you wish to inherit. Anything not listed is not
13190
+ inherited.
13191
+
13192
+
13193
+
13194
+ Name | Type | Description
13195
+ -----|------|-------------
13196
+ **default**?🔹 | <code>boolean &#124; Array<[gitlab.DefaultElement](#projen-gitlab-defaultelement)></code> | Whether to inherit all globally-defined defaults or not.<br/>__*Optional*__
13197
+ **variables**?🔹 | <code>boolean &#124; Array<string></code> | Whether to inherit all globally-defined variables or not.<br/>__*Optional*__
13198
+
13199
+
13200
+
13201
+ ## struct Job 🔹 <a id="projen-gitlab-job"></a>
13202
+
13203
+
13204
+ Jobs are the most fundamental element of a .gitlab-ci.yml file.
13205
+
13206
+
13207
+
13208
+ Name | Type | Description
13209
+ -----|------|-------------
13210
+ **afterScript**?🔹 | <code>Array<string></code> | __*Optional*__
13211
+ **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*__
13212
+ **artifacts**?🔹 | <code>[gitlab.Artifacts](#projen-gitlab-artifacts)</code> | __*Optional*__
13213
+ **beforeScript**?🔹 | <code>Array<string></code> | __*Optional*__
13214
+ **cache**?🔹 | <code>[gitlab.Cache](#projen-gitlab-cache)</code> | __*Optional*__
13215
+ **coverage**?🔹 | <code>string</code> | Must be a regular expression, optionally but recommended to be quoted, and must be surrounded with '/'.<br/>__*Optional*__
13216
+ **dependencies**?🔹 | <code>Array<string></code> | Specify a list of job names from earlier stages from which artifacts should be loaded.<br/>__*Optional*__
13217
+ **environment**?🔹 | <code>string &#124; [gitlab.Environment](#projen-gitlab-environment)</code> | Used to associate environment metadata with a deploy.<br/>__*Optional*__
13218
+ **except**?🔹 | <code>[gitlab.Filter](#projen-gitlab-filter) &#124; Array<string></code> | Job will run *except* for when these filtering options match.<br/>__*Optional*__
13219
+ **extends**?🔹 | <code>Array<string></code> | The name of one or more jobs to inherit configuration from.<br/>__*Optional*__
13220
+ **image**?🔹 | <code>[gitlab.Image](#projen-gitlab-image)</code> | __*Optional*__
13221
+ **inherit**?🔹 | <code>[gitlab.Inherit](#projen-gitlab-inherit)</code> | Controls inheritance of globally-defined defaults and variables.<br/>__*Optional*__
13222
+ **interruptible**?🔹 | <code>boolean</code> | __*Optional*__
13223
+ **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*__
13224
+ **only**?🔹 | <code>[gitlab.Filter](#projen-gitlab-filter) &#124; Array<string></code> | Job will run *only* when these filtering options match.<br/>__*Optional*__
13225
+ **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*__
13226
+ **release**?🔹 | <code>[gitlab.Release](#projen-gitlab-release)</code> | Indicates that the job creates a Release.<br/>__*Optional*__
13227
+ **resourceGroup**?🔹 | <code>string</code> | Limit job concurrency.<br/>__*Optional*__
13228
+ **retry**?🔹 | <code>[gitlab.Retry](#projen-gitlab-retry)</code> | __*Optional*__
13229
+ **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*__
13230
+ **script**?🔹 | <code>Array<string></code> | Shell scripts executed by the Runner.<br/>__*Optional*__
13231
+ **secrets**?🔹 | <code>Map<string, Map<string, [gitlab.Secret](#projen-gitlab-secret)>></code> | CI/CD secrets.<br/>__*Optional*__
13232
+ **services**?🔹 | <code>Array<[gitlab.Service](#projen-gitlab-service)></code> | __*Optional*__
13233
+ **stage**?🔹 | <code>string</code> | Define what stage the job will run in.<br/>__*Optional*__
13234
+ **startIn**?🔹 | <code>string</code> | __*Optional*__
13235
+ **tags**?🔹 | <code>Array<string></code> | __*Optional*__
13236
+ **timeout**?🔹 | <code>string</code> | __*Optional*__
13237
+ **trigger**?🔹 | <code>string &#124; [gitlab.Trigger](#projen-gitlab-trigger)</code> | Trigger allows you to define downstream pipeline trigger.<br/>__*Optional*__
13238
+ **variables**?🔹 | <code>Map<string, string &#124; number></code> | Configurable values that are passed to the Job.<br/>__*Optional*__
13239
+ **when**?🔹 | <code>[gitlab.JobWhen](#projen-gitlab-jobwhen)</code> | Describes the conditions for when to run the job.<br/>__*Optional*__
13240
+
13241
+
13242
+
13243
+ ## struct KubernetesConfig 🔹 <a id="projen-gitlab-kubernetesconfig"></a>
13244
+
13245
+
13246
+ Used to configure the kubernetes deployment for this environment.
13247
+
13248
+ This is currently not
13249
+ supported for kubernetes clusters that are managed by Gitlab.
13250
+
13251
+
13252
+
13253
+ Name | Type | Description
13254
+ -----|------|-------------
13255
+ **namespace**?🔹 | <code>string</code> | The kubernetes namespace where this environment should be deployed to.<br/>__*Optional*__
13256
+
13257
+
13258
+
13259
+ ## struct Link 🔹 <a id="projen-gitlab-link"></a>
13260
+
13261
+
13262
+ Link configuration for an asset.
13263
+
13264
+
13265
+
13266
+ Name | Type | Description
13267
+ -----|------|-------------
13268
+ **name**🔹 | <code>string</code> | The name of the link.
13269
+ **url**🔹 | <code>string</code> | The URL to download a file.
13270
+ **filepath**?🔹 | <code>string</code> | The redirect link to the url.<br/>__*Optional*__
13271
+ **linkType**?🔹 | <code>[gitlab.LinkType](#projen-gitlab-linktype)</code> | The content kind of what users can download via url.<br/>__*Optional*__
13272
+
13273
+
13274
+
13275
+ ## struct Need 🔹 <a id="projen-gitlab-need"></a>
13276
+
13277
+
13278
+ A jobs in a previous stage whose sole completion is needed to start the current job.
13279
+
13280
+
13281
+
13282
+ Name | Type | Description
13283
+ -----|------|-------------
13284
+ **job**🔹 | <code>string</code> | <span></span>
13285
+ **artifacts**?🔹 | <code>boolean</code> | __*Optional*__
13286
+ **optional**?🔹 | <code>boolean</code> | __*Optional*__
13287
+ **pipeline**?🔹 | <code>string</code> | __*Optional*__
13288
+ **project**?🔹 | <code>string</code> | __*Optional*__
13289
+ **ref**?🔹 | <code>string</code> | __*Optional*__
13290
+
13291
+
13292
+
13293
+ ## struct Parallel 🔹 <a id="projen-gitlab-parallel"></a>
13294
+
13295
+
13296
+ Used to run a job multiple times in parallel in a single pipeline.
13297
+
13298
+
13299
+
13300
+ Name | Type | Description
13301
+ -----|------|-------------
13302
+ **matrix**🔹 | <code>Array<Map<string, Array<any>>></code> | Defines different variables for jobs that are running in parallel.
13303
+
13304
+
13305
+
13306
+ ## struct Release 🔹 <a id="projen-gitlab-release"></a>
13307
+
13308
+
13309
+ Indicates that the job creates a Release.
13310
+
13311
+
13312
+
13313
+ Name | Type | Description
13314
+ -----|------|-------------
13315
+ **description**🔹 | <code>string</code> | Specifies the longer description of the Release.
13316
+ **tagName**🔹 | <code>string</code> | The tag_name must be specified.
13317
+ **assets**?🔹 | <code>[gitlab.Assets](#projen-gitlab-assets)</code> | __*Optional*__
13318
+ **milestones**?🔹 | <code>Array<string></code> | The title of each milestone the release is associated with.<br/>__*Optional*__
13319
+ **name**?🔹 | <code>string</code> | The Release name.<br/>__*Optional*__
13320
+ **ref**?🔹 | <code>string</code> | If the release: tag_name doesn’t exist yet, the release is created from ref.<br/>__*Optional*__
13321
+ **releasedAt**?🔹 | <code>string</code> | The date and time when the release is ready.<br/>__*Optional*__
13322
+
13323
+
13324
+
13325
+ ## struct Reports 🔹 <a id="projen-gitlab-reports"></a>
13326
+
13327
+
13328
+ Reports will be uploaded as artifacts, and often displayed in the Gitlab UI, such as in Merge Requests.
13329
+
13330
+
13331
+
13332
+ Name | Type | Description
13333
+ -----|------|-------------
13334
+ **cobertura**?🔹 | <code>Array<string></code> | Path for file(s) that should be parsed as Cobertura XML coverage report.<br/>__*Optional*__
13335
+ **codequality**?🔹 | <code>Array<string></code> | Path to file or list of files with code quality report(s) (such as Code Climate).<br/>__*Optional*__
13336
+ **containerScanning**?🔹 | <code>Array<string></code> | Path to file or list of files with Container scanning vulnerabilities report(s).<br/>__*Optional*__
13337
+ **dast**?🔹 | <code>Array<string></code> | Path to file or list of files with DAST vulnerabilities report(s).<br/>__*Optional*__
13338
+ **dependencyScanning**?🔹 | <code>Array<string></code> | Path to file or list of files with Dependency scanning vulnerabilities report(s).<br/>__*Optional*__
13339
+ **dotenv**?🔹 | <code>Array<string></code> | Path to file or list of files containing runtime-created variables for this job.<br/>__*Optional*__
13340
+ **junit**?🔹 | <code>Array<string></code> | Path for file(s) that should be parsed as JUnit XML result.<br/>__*Optional*__
13341
+ **licenseManagement**?🔹 | <code>Array<string></code> | Deprecated in 12.8: Path to file or list of files with license report(s).<br/>__*Optional*__
13342
+ **licenseScanning**?🔹 | <code>Array<string></code> | Path to file or list of files with license report(s).<br/>__*Optional*__
13343
+ **lsif**?🔹 | <code>Array<string></code> | Path to file or list of files containing code intelligence (Language Server Index Format).<br/>__*Optional*__
13344
+ **metrics**?🔹 | <code>Array<string></code> | Path to file or list of files with custom metrics report(s).<br/>__*Optional*__
13345
+ **performance**?🔹 | <code>Array<string></code> | Path to file or list of files with performance metrics report(s).<br/>__*Optional*__
13346
+ **requirements**?🔹 | <code>Array<string></code> | Path to file or list of files with requirements report(s).<br/>__*Optional*__
13347
+ **sast**?🔹 | <code>Array<string></code> | Path to file or list of files with SAST vulnerabilities report(s).<br/>__*Optional*__
13348
+ **secretDetection**?🔹 | <code>Array<string></code> | Path to file or list of files with secret detection report(s).<br/>__*Optional*__
13349
+ **terraform**?🔹 | <code>Array<string></code> | Path to file or list of files with terraform plan(s).<br/>__*Optional*__
13350
+
13351
+
13352
+
13353
+ ## struct Retry 🔹 <a id="projen-gitlab-retry"></a>
13354
+
13355
+
13356
+ How many times a job is retried if it fails.
13357
+
13358
+ If not defined, defaults to 0 and jobs do not retry.
13359
+
13360
+
13361
+
13362
+ Name | Type | Description
13363
+ -----|------|-------------
13364
+ **max**?🔹 | <code>number</code> | 0 (default), 1, or 2.<br/>__*Optional*__
13365
+ **when**?🔹 | <code>any</code> | Either a single or array of error types to trigger job retry.<br/>__*Optional*__
13366
+
13367
+
13368
+
13369
+ ## struct Secret 🔹 <a id="projen-gitlab-secret"></a>
13370
+
13371
+
13372
+ A CI/CD secret.
13373
+
13374
+
13375
+
13376
+ Name | Type | Description
13377
+ -----|------|-------------
13378
+ **vault**🔹 | <code>[gitlab.VaultConfig](#projen-gitlab-vaultconfig)</code> | <span></span>
13379
+
13380
+
13381
+
13382
+ ## struct Service 🔹 <a id="projen-gitlab-service"></a>
13383
+
13384
+
13385
+ Used to specify an additional Docker image to run scripts in.
13386
+
13387
+ The service image is linked to the image specified in the @Default image keyword.
13388
+
13389
+
13390
+
13391
+ Name | Type | Description
13392
+ -----|------|-------------
13393
+ **name**🔹 | <code>string</code> | Full name of the image that should be used.
13394
+ **alias**?🔹 | <code>string</code> | Additional alias that can be used to access the service from the job's container.<br/>__*Optional*__
13395
+ **command**?🔹 | <code>Array<string></code> | Command or script that should be used as the container's command.<br/>__*Optional*__
13396
+ **entrypoint**?🔹 | <code>Array<string></code> | Command or script that should be executed as the container's entrypoint.<br/>__*Optional*__
13397
+
13398
+
13399
+
13400
+ ## struct Trigger 🔹 <a id="projen-gitlab-trigger"></a>
13401
+
13402
+
13403
+ Trigger a multi-project or a child pipeline.
13404
+
13405
+ Read more:
13406
+
13407
+
13408
+
13409
+ Name | Type | Description
13410
+ -----|------|-------------
13411
+ **branch**?🔹 | <code>string</code> | The branch name that a downstream pipeline will use.<br/>__*Optional*__
13412
+ **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*__
13413
+ **project**?🔹 | <code>string</code> | Path to the project, e.g. `group/project`, or `group/sub-group/project`.<br/>__*Optional*__
13414
+ **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*__
13415
+
13416
+
13417
+
13418
+ ## struct TriggerInclude 🔹 <a id="projen-gitlab-triggerinclude"></a>
13419
+
13420
+
13421
+ References a local file or an artifact from another job to define the pipeline configuration.
13422
+
13423
+
13424
+
13425
+ Name | Type | Description
13426
+ -----|------|-------------
13427
+ **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*__
13428
+ **file**?🔹 | <code>string</code> | Relative path from repository root (`/`) to the pipeline configuration YAML file.<br/>__*Optional*__
13429
+ **job**?🔹 | <code>string</code> | Job name which generates the artifact.<br/>__*Optional*__
13430
+ **local**?🔹 | <code>string</code> | Relative path from local repository root (`/`) to the local YAML file to define the pipeline configuration.<br/>__*Optional*__
13431
+ **project**?🔹 | <code>string</code> | Path to another private project under the same GitLab instance, like `group/project` or `group/sub-group/project`.<br/>__*Optional*__
13432
+ **ref**?🔹 | <code>string</code> | Branch/Tag/Commit hash for the target project.<br/>__*Optional*__
13433
+ **template**?🔹 | <code>string</code> | Name of the template YAML file to use in the pipeline configuration.<br/>__*Optional*__
13434
+
13435
+
13436
+
13437
+ ## struct VariableConfig 🔹 <a id="projen-gitlab-variableconfig"></a>
13438
+
13439
+
13440
+ Explains what the global variable is used for, what the acceptable values are.
13441
+
13442
+
13443
+
13444
+ Name | Type | Description
13445
+ -----|------|-------------
13446
+ **description**?🔹 | <code>string</code> | Define a global variable that is prefilled when running a pipeline manually.<br/>__*Optional*__
13447
+ **value**?🔹 | <code>string</code> | The variable value.<br/>__*Optional*__
13448
+
13449
+
13450
+
13451
+ ## struct VaultConfig 🔹 <a id="projen-gitlab-vaultconfig"></a>
13452
+
13453
+
13454
+ Specification for a secret provided by a HashiCorp Vault.
13455
+
13456
+
13457
+
13458
+ Name | Type | Description
13459
+ -----|------|-------------
13460
+ **engine**🔹 | <code>[gitlab.Engine](#projen-gitlab-engine)</code> | <span></span>
13461
+ **field**🔹 | <code>string</code> | <span></span>
13462
+ **path**🔹 | <code>string</code> | Path to the secret.
13463
+
13464
+
13465
+
13466
+ ## struct Workflow 🔹 <a id="projen-gitlab-workflow"></a>
13467
+
13468
+
13469
+ Used to control pipeline behavior.
13470
+
13471
+
13472
+
13473
+ Name | Type | Description
13474
+ -----|------|-------------
13475
+ **rules**?🔹 | <code>Array<[gitlab.WorkflowRule](#projen-gitlab-workflowrule)></code> | Used to control whether or not a whole pipeline is created.<br/>__*Optional*__
13476
+
13477
+
13478
+
13479
+ ## struct WorkflowRule 🔹 <a id="projen-gitlab-workflowrule"></a>
13480
+
13481
+
13482
+ Used to control whether or not a whole pipeline is created.
13483
+
13484
+
13485
+
13486
+ Name | Type | Description
13487
+ -----|------|-------------
13488
+ **changes**?🔹 | <code>Array<string></code> | __*Optional*__
13489
+ **exists**?🔹 | <code>Array<string></code> | __*Optional*__
13490
+ **if**?🔹 | <code>string</code> | __*Optional*__
13491
+ **variables**?🔹 | <code>Map<string, string &#124; number></code> | __*Optional*__
13492
+ **when**?🔹 | <code>[gitlab.JobWhen](#projen-gitlab-jobwhen)</code> | __*Optional*__
13493
+
13494
+
13495
+
13496
+ ## struct JavaProjectCommonOptions 🔹 <a id="projen-java-javaprojectcommonoptions"></a>
13497
+
13498
+
13499
+ Options for `JavaProject`.
13500
+
13501
+
13502
+
13503
+ Name | Type | Description
13504
+ -----|------|-------------
13505
+ **artifactId**🔹 | <code>string</code> | The artifactId is generally the name that the project is known by.
13506
+ **groupId**🔹 | <code>string</code> | This is generally unique amongst an organization or a project.
13507
+ **name**🔹 | <code>string</code> | This is the name of your project.
13508
+ **version**🔹 | <code>string</code> | This is the last piece of the naming puzzle.
13509
+ **autoApproveOptions**?🔹 | <code>[github.AutoApproveOptions](#projen-github-autoapproveoptions)</code> | Enable and configure the 'auto approve' workflow.<br/>__*Default*__: auto approve is disabled
13510
+ **autoMergeOptions**?🔹 | <code>[github.AutoMergeOptions](#projen-github-automergeoptions)</code> | Configure options for automatic merging on GitHub.<br/>__*Default*__: see defaults in `AutoMergeOptions`
13511
+ **clobber**?🔹 | <code>boolean</code> | Add a `clobber` task which resets the repo to origin.<br/>__*Default*__: true
13512
+ **compileOptions**?🔹 | <code>[java.MavenCompileOptions](#projen-java-mavencompileoptions)</code> | Compile options.<br/>__*Default*__: defaults
13513
+ **deps**?🔹 | <code>Array<string></code> | List of runtime dependencies for this project.<br/>__*Default*__: []
13514
+ **description**?🔹 | <code>string</code> | Description of a project is always good.<br/>__*Default*__: undefined
13515
+ **devContainer**?🔹 | <code>boolean</code> | Add a VSCode development environment (used for GitHub Codespaces).<br/>__*Default*__: false
13516
+ **distdir**?🔹 | <code>string</code> | Final artifact output directory.<br/>__*Default*__: "dist/java"
13517
+ **github**?🔹 | <code>boolean</code> | Enable GitHub integration.<br/>__*Default*__: true
13518
+ **githubOptions**?🔹 | <code>[github.GitHubOptions](#projen-github-githuboptions)</code> | Options for GitHub integration.<br/>__*Default*__: see GitHubOptions
13519
+ **gitpod**?🔹 | <code>boolean</code> | Add a Gitpod development environment.<br/>__*Default*__: false
13520
+ **junit**?🔹 | <code>boolean</code> | Include junit tests.<br/>__*Default*__: true
13521
+ **junitOptions**?🔹 | <code>[java.JunitOptions](#projen-java-junitoptions)</code> | junit options.<br/>__*Default*__: defaults
13522
+ **logging**?🔹 | <code>[LoggerOptions](#projen-loggeroptions)</code> | Configure logging options such as verbosity.<br/>__*Default*__: {}
13523
+ **mergify**?⚠️ | <code>boolean</code> | Whether mergify should be enabled on this repository or not.<br/>__*Default*__: true
13524
+ **mergifyOptions**?⚠️ | <code>[github.MergifyOptions](#projen-github-mergifyoptions)</code> | Options for mergify.<br/>__*Default*__: default options
13525
+ **outdir**?🔹 | <code>string</code> | The root directory of the project.<br/>__*Default*__: "."
13526
+ **packaging**?🔹 | <code>string</code> | Project packaging format.<br/>__*Default*__: "jar"
13527
+ **packagingOptions**?🔹 | <code>[java.MavenPackagingOptions](#projen-java-mavenpackagingoptions)</code> | Packaging options.<br/>__*Default*__: defaults
13528
+ **parent**?🔹 | <code>[Project](#projen-project)</code> | The parent project, if this project is part of a bigger project.<br/>__*Optional*__
13529
+ **projectType**?⚠️ | <code>[ProjectType](#projen-projecttype)</code> | Which type of project this is (library/app).<br/>__*Default*__: ProjectType.UNKNOWN
13530
+ **projenCommand**?🔹 | <code>string</code> | The shell command to use in order to run the projen CLI.<br/>__*Default*__: "npx projen"
13531
+ **projenTokenSecret**?🔹 | <code>string</code> | The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows.<br/>__*Default*__: "PROJEN_GITHUB_TOKEN"
13532
+ **projenrcJava**?🔹 | <code>boolean</code> | Use projenrc in java.<br/>__*Default*__: true
13533
+ **projenrcJavaOptions**?🔹 | <code>[java.ProjenrcOptions](#projen-java-projenrcoptions)</code> | Options related to projenrc in java.<br/>__*Default*__: default options
13534
+ **projenrcJson**?🔹 | <code>boolean</code> | Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation.<br/>__*Default*__: false
13535
+ **projenrcJsonOptions**?🔹 | <code>[ProjenrcOptions](#projen-projenrcoptions)</code> | Options for .projenrc.json.<br/>__*Default*__: default options
13536
+ **readme**?🔹 | <code>[SampleReadmeProps](#projen-samplereadmeprops)</code> | The README setup.<br/>__*Default*__: { filename: 'README.md', contents: '# replace this' }
13537
+ **stale**?🔹 | <code>boolean</code> | Auto-close of stale issues and pull request.<br/>__*Default*__: true
13538
+ **staleOptions**?🔹 | <code>[github.StaleOptions](#projen-github-staleoptions)</code> | Auto-close stale issues and pull requests.<br/>__*Default*__: see defaults in `StaleOptions`
13539
+ **testDeps**?🔹 | <code>Array<string></code> | List of test dependencies for this project.<br/>__*Default*__: []
13540
+ **url**?🔹 | <code>string</code> | The URL, like the name, is not required.<br/>__*Default*__: undefined
13541
+ **vscode**?🔹 | <code>boolean</code> | Enable VSCode integration.<br/>__*Default*__: true
13542
+
13543
+
13544
+
13545
+ ## struct JavaProjectOptions 🔹 <a id="projen-java-javaprojectoptions"></a>
13546
+
13547
+
13548
+ Options for `JavaProject`.
13549
+
13550
+
13551
+
13552
+ Name | Type | Description
13553
+ -----|------|-------------
13554
+ **artifactId**🔹 | <code>string</code> | The artifactId is generally the name that the project is known by.
13555
+ **groupId**🔹 | <code>string</code> | This is generally unique amongst an organization or a project.
13556
+ **name**🔹 | <code>string</code> | This is the name of your project.
13557
+ **version**🔹 | <code>string</code> | This is the last piece of the naming puzzle.
13558
+ **autoApproveOptions**?🔹 | <code>[github.AutoApproveOptions](#projen-github-autoapproveoptions)</code> | Enable and configure the 'auto approve' workflow.<br/>__*Default*__: auto approve is disabled
13559
+ **autoMergeOptions**?🔹 | <code>[github.AutoMergeOptions](#projen-github-automergeoptions)</code> | Configure options for automatic merging on GitHub.<br/>__*Default*__: see defaults in `AutoMergeOptions`
13560
+ **clobber**?🔹 | <code>boolean</code> | Add a `clobber` task which resets the repo to origin.<br/>__*Default*__: true
12686
13561
  **compileOptions**?🔹 | <code>[java.MavenCompileOptions](#projen-java-mavencompileoptions)</code> | Compile options.<br/>__*Default*__: defaults
12687
13562
  **deps**?🔹 | <code>Array<string></code> | List of runtime dependencies for this project.<br/>__*Default*__: []
12688
13563
  **description**?🔹 | <code>string</code> | Description of a project is always good.<br/>__*Default*__: undefined
@@ -15342,6 +16217,122 @@ Name | Description
15342
16217
  **INCREASE_IF_NECESSARY** 🔹|Increase the version requirement only when required by the new version.
15343
16218
 
15344
16219
 
16220
+ ## enum Action 🔹 <a id="projen-gitlab-action"></a>
16221
+
16222
+ Specifies what this job will do.
16223
+
16224
+ 'start' (default) indicates the job will start the
16225
+ deployment. 'prepare' indicates this will not affect the deployment. 'stop' indicates
16226
+ this will stop the deployment.
16227
+
16228
+ Name | Description
16229
+ -----|-----
16230
+ **PREPARE** 🔹|
16231
+ **START** 🔹|
16232
+ **STOP** 🔹|
16233
+
16234
+
16235
+ ## enum CacheWhen 🔹 <a id="projen-gitlab-cachewhen"></a>
16236
+
16237
+ Configure when artifacts are uploaded depended on job status.
16238
+
16239
+ Name | Description
16240
+ -----|-----
16241
+ **ALWAYS** 🔹|Upload artifacts regardless of job status.
16242
+ **ON_FAILURE** 🔹|Upload artifacts only when the job fails.
16243
+ **ON_SUCCESS** 🔹|Upload artifacts only when the job succeeds (this is the default).
16244
+
16245
+
16246
+ ## enum DefaultElement 🔹 <a id="projen-gitlab-defaultelement"></a>
16247
+
16248
+
16249
+
16250
+ Name | Description
16251
+ -----|-----
16252
+ **AFTER_SCRIPT** 🔹|
16253
+ **ARTIFACTS** 🔹|
16254
+ **BEFORE_SCRIPT** 🔹|
16255
+ **CACHE** 🔹|
16256
+ **IMAGE** 🔹|
16257
+ **INTERRUPTIBLE** 🔹|
16258
+ **RETRY** 🔹|
16259
+ **SERVICES** 🔹|
16260
+ **TAGS** 🔹|
16261
+ **TIMEOUT** 🔹|
16262
+
16263
+
16264
+ ## enum DeploymentTier 🔹 <a id="projen-gitlab-deploymenttier"></a>
16265
+
16266
+ Explicitly specifies the tier of the deployment environment if non-standard environment name is used.
16267
+
16268
+ Name | Description
16269
+ -----|-----
16270
+ **DEVELOPMENT** 🔹|
16271
+ **OTHER** 🔹|
16272
+ **PRODUCTION** 🔹|
16273
+ **STAGING** 🔹|
16274
+ **TESTING** 🔹|
16275
+
16276
+
16277
+ ## enum JobWhen 🔹 <a id="projen-gitlab-jobwhen"></a>
16278
+
16279
+ Describes the conditions for when to run the job.
16280
+
16281
+ Defaults to 'on_success'.
16282
+
16283
+ Name | Description
16284
+ -----|-----
16285
+ **ALWAYS** 🔹|
16286
+ **DELAYED** 🔹|
16287
+ **MANUAL** 🔹|
16288
+ **NEVER** 🔹|
16289
+ **ON_FAILURE** 🔹|
16290
+ **ON_SUCCESS** 🔹|
16291
+
16292
+
16293
+ ## enum KubernetesEnum 🔹 <a id="projen-gitlab-kubernetesenum"></a>
16294
+
16295
+ Filter job based on if Kubernetes integration is active.
16296
+
16297
+ Name | Description
16298
+ -----|-----
16299
+ **ACTIVE** 🔹|
16300
+
16301
+
16302
+ ## enum LinkType 🔹 <a id="projen-gitlab-linktype"></a>
16303
+
16304
+ The content kind of what users can download via url.
16305
+
16306
+ Name | Description
16307
+ -----|-----
16308
+ **IMAGE** 🔹|
16309
+ **OTHER** 🔹|
16310
+ **PACKAGE** 🔹|
16311
+ **RUNBOOK** 🔹|
16312
+
16313
+
16314
+ ## enum Strategy 🔹 <a id="projen-gitlab-strategy"></a>
16315
+
16316
+ You can mirror the pipeline status from the triggered pipeline to the source bridge job by using strategy: depend.
16317
+
16318
+ Name | Description
16319
+ -----|-----
16320
+ **DEPEND** 🔹|
16321
+
16322
+
16323
+ ## enum WorkflowWhen 🔹 <a id="projen-gitlab-workflowwhen"></a>
16324
+
16325
+ Describes the conditions for when to run the job.
16326
+
16327
+ Defaults to 'on_success'.
16328
+ The value can only be 'always' or 'never' when used with workflow.
16329
+
16330
+ Name | Description
16331
+ -----|-----
16332
+ **ALWAYS** 🔹|
16333
+ **NEVER** 🔹|
16334
+
16335
+
15345
16336
  ## enum ArrowParens 🔹 <a id="projen-javascript-arrowparens"></a>
15346
16337
 
15347
16338