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
@@ -0,0 +1,1308 @@
1
+ /**
2
+ * (experimental) Cache Definition.
3
+ *
4
+ * @see https://docs.gitlab.com/ee/ci/yaml/#cache
5
+ * @experimental
6
+ */
7
+ export interface Cache {
8
+ /**
9
+ * (experimental) Defines when to save the cache, based on the status of the job (Default: Job Success).
10
+ *
11
+ * @experimental
12
+ */
13
+ readonly when?: CacheWhen;
14
+ }
15
+ /**
16
+ * (experimental) Configure when artifacts are uploaded depended on job status.
17
+ *
18
+ * @see https://docs.gitlab.com/ee/ci/yaml/#cachewhen
19
+ * @experimental
20
+ */
21
+ export declare enum CacheWhen {
22
+ /**
23
+ * (experimental) Upload artifacts regardless of job status.
24
+ *
25
+ * @experimental
26
+ */
27
+ ALWAYS = "always",
28
+ /**
29
+ * (experimental) Upload artifacts only when the job fails.
30
+ *
31
+ * @experimental
32
+ */
33
+ ON_FAILURE = "on_failure",
34
+ /**
35
+ * (experimental) Upload artifacts only when the job succeeds (this is the default).
36
+ *
37
+ * @experimental
38
+ */
39
+ ON_SUCCESS = "on_success"
40
+ }
41
+ /**
42
+ * (experimental) Default settings for the CI Configuration.
43
+ *
44
+ * Jobs that do not define one or more of the listed keywords use the value defined in the default section.
45
+ *
46
+ * @see https://docs.gitlab.com/ee/ci/yaml/#default
47
+ * @experimental
48
+ */
49
+ export interface Default {
50
+ /**
51
+ * @experimental
52
+ */
53
+ readonly afterScript?: string[];
54
+ /**
55
+ * @experimental
56
+ */
57
+ readonly artifacts?: Artifacts;
58
+ /**
59
+ * @experimental
60
+ */
61
+ readonly beforeScript?: string[];
62
+ /**
63
+ * @experimental
64
+ */
65
+ readonly cache?: Cache;
66
+ /**
67
+ * @experimental
68
+ */
69
+ readonly image?: Image;
70
+ /**
71
+ * @experimental
72
+ */
73
+ readonly interruptible?: boolean;
74
+ /**
75
+ * @experimental
76
+ */
77
+ readonly retry?: Retry;
78
+ /**
79
+ * @experimental
80
+ */
81
+ readonly services?: Service[];
82
+ /**
83
+ * @experimental
84
+ */
85
+ readonly tags?: string[];
86
+ /**
87
+ * @experimental
88
+ */
89
+ readonly timeout?: string;
90
+ }
91
+ /**
92
+ * (experimental) Used to specify a list of files and directories that should be attached to the job if it succeeds.
93
+ *
94
+ * Artifacts are sent to Gitlab where they can be downloaded.
95
+ *
96
+ * @see https://docs.gitlab.com/ee/ci/yaml/#artifacts
97
+ * @experimental
98
+ */
99
+ export interface Artifacts {
100
+ /**
101
+ * (experimental) A list of paths to files/folders that should be excluded in the artifact.
102
+ *
103
+ * @experimental
104
+ */
105
+ readonly exclude?: string[];
106
+ /**
107
+ * (experimental) How long artifacts should be kept.
108
+ *
109
+ * They are saved 30 days by default. Artifacts that have expired are removed periodically via cron job. Supports a wide variety of formats, e.g. '1 week', '3 mins 4 sec', '2 hrs 20 min', '2h20min', '6 mos 1 day', '47 yrs 6 mos and 4d', '3 weeks and 2 days'.
110
+ *
111
+ * @experimental
112
+ */
113
+ readonly expireIn?: string;
114
+ /**
115
+ * (experimental) Can be used to expose job artifacts in the merge request UI.
116
+ *
117
+ * GitLab will add a link <expose_as> to the relevant merge request that points to the artifact.
118
+ *
119
+ * @experimental
120
+ */
121
+ readonly exposeAs?: string;
122
+ /**
123
+ * (experimental) Name for the archive created on job success.
124
+ *
125
+ * Can use variables in the name, e.g. '$CI_JOB_NAME'
126
+ *
127
+ * @experimental
128
+ */
129
+ readonly name?: string;
130
+ /**
131
+ * (experimental) A list of paths to files/folders that should be included in the artifact.
132
+ *
133
+ * @experimental
134
+ */
135
+ readonly paths?: string[];
136
+ /**
137
+ * (experimental) Reports will be uploaded as artifacts, and often displayed in the Gitlab UI, such as in Merge Requests.
138
+ *
139
+ * @experimental
140
+ */
141
+ readonly reports?: Reports;
142
+ /**
143
+ * (experimental) Whether to add all untracked files (along with 'artifacts.paths') to the artifact.
144
+ *
145
+ * @experimental
146
+ */
147
+ readonly untracked?: boolean;
148
+ /**
149
+ * (experimental) Configure when artifacts are uploaded depended on job status.
150
+ *
151
+ * @experimental
152
+ */
153
+ readonly when?: CacheWhen;
154
+ }
155
+ /**
156
+ * (experimental) Reports will be uploaded as artifacts, and often displayed in the Gitlab UI, such as in Merge Requests.
157
+ *
158
+ * @see https://docs.gitlab.com/ee/ci/yaml/#artifactsreports
159
+ * @experimental
160
+ */
161
+ export interface Reports {
162
+ /**
163
+ * (experimental) Path for file(s) that should be parsed as Cobertura XML coverage report.
164
+ *
165
+ * @experimental
166
+ */
167
+ readonly cobertura?: string[];
168
+ /**
169
+ * (experimental) Path to file or list of files with code quality report(s) (such as Code Climate).
170
+ *
171
+ * @experimental
172
+ */
173
+ readonly codequality?: string[];
174
+ /**
175
+ * (experimental) Path to file or list of files with Container scanning vulnerabilities report(s).
176
+ *
177
+ * @experimental
178
+ */
179
+ readonly containerScanning?: string[];
180
+ /**
181
+ * (experimental) Path to file or list of files with DAST vulnerabilities report(s).
182
+ *
183
+ * @experimental
184
+ */
185
+ readonly dast?: string[];
186
+ /**
187
+ * (experimental) Path to file or list of files with Dependency scanning vulnerabilities report(s).
188
+ *
189
+ * @experimental
190
+ */
191
+ readonly dependencyScanning?: string[];
192
+ /**
193
+ * (experimental) Path to file or list of files containing runtime-created variables for this job.
194
+ *
195
+ * @experimental
196
+ */
197
+ readonly dotenv?: string[];
198
+ /**
199
+ * (experimental) Path for file(s) that should be parsed as JUnit XML result.
200
+ *
201
+ * @experimental
202
+ */
203
+ readonly junit?: string[];
204
+ /**
205
+ * (experimental) Deprecated in 12.8: Path to file or list of files with license report(s).
206
+ *
207
+ * @experimental
208
+ */
209
+ readonly licenseManagement?: string[];
210
+ /**
211
+ * (experimental) Path to file or list of files with license report(s).
212
+ *
213
+ * @experimental
214
+ */
215
+ readonly licenseScanning?: string[];
216
+ /**
217
+ * (experimental) Path to file or list of files containing code intelligence (Language Server Index Format).
218
+ *
219
+ * @experimental
220
+ */
221
+ readonly lsif?: string[];
222
+ /**
223
+ * (experimental) Path to file or list of files with custom metrics report(s).
224
+ *
225
+ * @experimental
226
+ */
227
+ readonly metrics?: string[];
228
+ /**
229
+ * (experimental) Path to file or list of files with performance metrics report(s).
230
+ *
231
+ * @experimental
232
+ */
233
+ readonly performance?: string[];
234
+ /**
235
+ * (experimental) Path to file or list of files with requirements report(s).
236
+ *
237
+ * @experimental
238
+ */
239
+ readonly requirements?: string[];
240
+ /**
241
+ * (experimental) Path to file or list of files with SAST vulnerabilities report(s).
242
+ *
243
+ * @experimental
244
+ */
245
+ readonly sast?: string[];
246
+ /**
247
+ * (experimental) Path to file or list of files with secret detection report(s).
248
+ *
249
+ * @experimental
250
+ */
251
+ readonly secretDetection?: string[];
252
+ /**
253
+ * (experimental) Path to file or list of files with terraform plan(s).
254
+ *
255
+ * @experimental
256
+ */
257
+ readonly terraform?: string[];
258
+ }
259
+ /**
260
+ * (experimental) Specifies the docker image to use for the job or globally for all jobs.
261
+ *
262
+ * Job configuration
263
+ * takes precedence over global setting. Requires a certain kind of Gitlab runner executor.
264
+ *
265
+ * @see https://docs.gitlab.com/ee/ci/yaml/#image
266
+ * @experimental
267
+ */
268
+ export interface Image {
269
+ /**
270
+ * (experimental) Command or script that should be executed as the container's entrypoint.
271
+ *
272
+ * It will be translated to Docker's --entrypoint option while creating the container. The syntax is similar to Dockerfile's ENTRYPOINT directive, where each shell token is a separate string in the array.
273
+ *
274
+ * @experimental
275
+ */
276
+ readonly entrypoint?: any[];
277
+ /**
278
+ * (experimental) Full name of the image that should be used.
279
+ *
280
+ * It should contain the Registry part if needed.
281
+ *
282
+ * @experimental
283
+ */
284
+ readonly name: string;
285
+ }
286
+ /**
287
+ * (experimental) How many times a job is retried if it fails.
288
+ *
289
+ * If not defined, defaults to 0 and jobs do not retry.
290
+ *
291
+ * @see https://docs.gitlab.com/ee/ci/yaml/#retry
292
+ * @experimental
293
+ */
294
+ export interface Retry {
295
+ /**
296
+ * (experimental) 0 (default), 1, or 2.
297
+ *
298
+ * @experimental
299
+ */
300
+ readonly max?: number;
301
+ /**
302
+ * (experimental) Either a single or array of error types to trigger job retry.
303
+ *
304
+ * @experimental
305
+ */
306
+ readonly when?: any;
307
+ }
308
+ /**
309
+ * (experimental) Used to specify an additional Docker image to run scripts in.
310
+ *
311
+ * The service image is linked to the image specified in the @Default image keyword.
312
+ *
313
+ * @see https://docs.gitlab.com/ee/ci/yaml/#services
314
+ * @experimental
315
+ */
316
+ export interface Service {
317
+ /**
318
+ * (experimental) Additional alias that can be used to access the service from the job's container.
319
+ *
320
+ * Read Accessing the services for more information.
321
+ *
322
+ * @experimental
323
+ */
324
+ readonly alias?: string;
325
+ /**
326
+ * (experimental) Command or script that should be used as the container's command.
327
+ *
328
+ * It will be translated to arguments passed to Docker after the image's name. The syntax is similar to Dockerfile's CMD directive, where each shell token is a separate string in the array.
329
+ *
330
+ * @experimental
331
+ */
332
+ readonly command?: string[];
333
+ /**
334
+ * (experimental) Command or script that should be executed as the container's entrypoint.
335
+ *
336
+ * It will be translated to Docker's --entrypoint option while creating the container. The syntax is similar to Dockerfile's ENTRYPOINT directive, where each shell token is a separate string in the array.
337
+ *
338
+ * @experimental
339
+ */
340
+ readonly entrypoint?: string[];
341
+ /**
342
+ * (experimental) Full name of the image that should be used.
343
+ *
344
+ * It should contain the Registry part if needed.
345
+ *
346
+ * @experimental
347
+ */
348
+ readonly name: string;
349
+ }
350
+ /**
351
+ * (experimental) An included YAML file.
352
+ *
353
+ * @see https://docs.gitlab.com/ee/ci/yaml/#include
354
+ * @experimental
355
+ */
356
+ export interface Include {
357
+ /**
358
+ * (experimental) Relative path from local repository root (`/`) to the `yaml`/`yml` file template.
359
+ *
360
+ * The file must be on the same branch, and does not work across git submodules.
361
+ *
362
+ * @experimental
363
+ */
364
+ readonly local?: string;
365
+ /**
366
+ * (experimental) Rules allows for an array of individual rule objects to be evaluated in order, until one matches and dynamically provides attributes to the job.
367
+ *
368
+ * @experimental
369
+ */
370
+ readonly rules?: IncludeRule[];
371
+ /**
372
+ * (experimental) Files from another private project on the same GitLab instance.
373
+ *
374
+ * You can use `file` in combination with `project` only.
375
+ *
376
+ * @experimental
377
+ */
378
+ readonly file?: string[];
379
+ /**
380
+ * (experimental) Path to the project, e.g. `group/project`, or `group/sub-group/project`.
381
+ *
382
+ * @experimental
383
+ */
384
+ readonly project?: string;
385
+ /**
386
+ * (experimental) Branch/Tag/Commit-hash for the target project.
387
+ *
388
+ * @experimental
389
+ */
390
+ readonly ref?: string;
391
+ /**
392
+ * (experimental) Use a `.gitlab-ci.yml` template as a base, e.g. `Nodejs.gitlab-ci.yml`.
393
+ *
394
+ * @experimental
395
+ */
396
+ readonly template?: string;
397
+ /**
398
+ * (experimental) URL to a `yaml`/`yml` template file using HTTP/HTTPS.
399
+ *
400
+ * @experimental
401
+ */
402
+ readonly remote?: string;
403
+ }
404
+ /**
405
+ * (experimental) Rules allows for an array of individual rule objects to be evaluated in order, until one matches and dynamically provides attributes to the job.
406
+ *
407
+ * @see https://docs.gitlab.com/ee/ci/yaml/includes.html#use-rules-with-include
408
+ * @experimental
409
+ */
410
+ export interface IncludeRule {
411
+ /**
412
+ * @experimental
413
+ */
414
+ readonly allowFailure?: boolean | AllowFailure;
415
+ /**
416
+ * @experimental
417
+ */
418
+ readonly changes?: string[];
419
+ /**
420
+ * @experimental
421
+ */
422
+ readonly exists?: string[];
423
+ /**
424
+ * @experimental
425
+ */
426
+ readonly if?: string;
427
+ /**
428
+ * @experimental
429
+ */
430
+ readonly startIn?: string;
431
+ /**
432
+ * @experimental
433
+ */
434
+ readonly variables?: Record<string, number | string>;
435
+ /**
436
+ * @experimental
437
+ */
438
+ readonly when?: JobWhen;
439
+ }
440
+ /**
441
+ * (experimental) Exit code that are not considered failure.
442
+ *
443
+ * The job fails for any other exit code.
444
+ * You can list which exit codes are not considered failures. The job fails for any other
445
+ * exit code.
446
+ *
447
+ * @see https://docs.gitlab.com/ee/ci/yaml/#allow_failure
448
+ * @experimental
449
+ */
450
+ export interface AllowFailure {
451
+ /**
452
+ * @experimental
453
+ */
454
+ readonly exitCodes: number[] | number;
455
+ }
456
+ /**
457
+ * (experimental) Describes the conditions for when to run the job.
458
+ *
459
+ * Defaults to 'on_success'.
460
+ *
461
+ * @see https://docs.gitlab.com/ee/ci/yaml/#when
462
+ * @experimental
463
+ */
464
+ export declare enum JobWhen {
465
+ /**
466
+ * @experimental
467
+ */
468
+ ALWAYS = "always",
469
+ /**
470
+ * @experimental
471
+ */
472
+ DELAYED = "delayed",
473
+ /**
474
+ * @experimental
475
+ */
476
+ MANUAL = "manual",
477
+ /**
478
+ * @experimental
479
+ */
480
+ NEVER = "never",
481
+ /**
482
+ * @experimental
483
+ */
484
+ ON_FAILURE = "on_failure",
485
+ /**
486
+ * @experimental
487
+ */
488
+ ON_SUCCESS = "on_success"
489
+ }
490
+ /**
491
+ * (experimental) Jobs are the most fundamental element of a .gitlab-ci.yml file.
492
+ *
493
+ * @see https://docs.gitlab.com/ee/ci/jobs/
494
+ * @experimental
495
+ */
496
+ export interface Job {
497
+ /**
498
+ * @experimental
499
+ */
500
+ readonly afterScript?: string[];
501
+ /**
502
+ * (experimental) Whether to allow the pipeline to continue running on job failure (Default: false).
503
+ *
504
+ * @experimental
505
+ */
506
+ readonly allowFailure?: boolean | AllowFailure;
507
+ /**
508
+ * @experimental
509
+ */
510
+ readonly artifacts?: Artifacts;
511
+ /**
512
+ * @experimental
513
+ */
514
+ readonly beforeScript?: string[];
515
+ /**
516
+ * @experimental
517
+ */
518
+ readonly cache?: Cache;
519
+ /**
520
+ * (experimental) Must be a regular expression, optionally but recommended to be quoted, and must be surrounded with '/'.
521
+ *
522
+ * Example: '/Code coverage: \d+\.\d+/'
523
+ *
524
+ * @experimental
525
+ */
526
+ readonly coverage?: string;
527
+ /**
528
+ * (experimental) Specify a list of job names from earlier stages from which artifacts should be loaded.
529
+ *
530
+ * By default, all previous artifacts are passed. Use an empty array to skip downloading artifacts.
531
+ *
532
+ * @experimental
533
+ */
534
+ readonly dependencies?: string[];
535
+ /**
536
+ * (experimental) Used to associate environment metadata with a deploy.
537
+ *
538
+ * Environment can have a name and URL attached to it, and will be displayed under /environments under the project.
539
+ *
540
+ * @experimental
541
+ */
542
+ readonly environment?: Environment | string;
543
+ /**
544
+ * (experimental) Job will run *except* for when these filtering options match.
545
+ *
546
+ * @experimental
547
+ */
548
+ readonly except?: string[] | Filter;
549
+ /**
550
+ * (experimental) The name of one or more jobs to inherit configuration from.
551
+ *
552
+ * @experimental
553
+ */
554
+ readonly extends?: string[];
555
+ /**
556
+ * @experimental
557
+ */
558
+ readonly image?: Image;
559
+ /**
560
+ * (experimental) Controls inheritance of globally-defined defaults and variables.
561
+ *
562
+ * Boolean values control inheritance of all default: or variables: keywords. To inherit only a subset of default: or variables: keywords, specify what you wish to inherit. Anything not listed is not inherited.
563
+ *
564
+ * @experimental
565
+ */
566
+ readonly inherit?: Inherit;
567
+ /**
568
+ * @experimental
569
+ */
570
+ readonly interruptible?: boolean;
571
+ /**
572
+ * (experimental) The list of jobs in previous stages whose sole completion is needed to start the current job.
573
+ *
574
+ * @experimental
575
+ */
576
+ readonly needs?: Array<Need | string>;
577
+ /**
578
+ * (experimental) Job will run *only* when these filtering options match.
579
+ *
580
+ * @experimental
581
+ */
582
+ readonly only?: string[] | Filter;
583
+ /**
584
+ * (experimental) Parallel will split up a single job into several, and provide `CI_NODE_INDEX` and `CI_NODE_TOTAL` environment variables for the running jobs.
585
+ *
586
+ * @experimental
587
+ */
588
+ readonly parallel?: Parallel | number;
589
+ /**
590
+ * (experimental) Indicates that the job creates a Release.
591
+ *
592
+ * @experimental
593
+ */
594
+ readonly release?: Release;
595
+ /**
596
+ * (experimental) Limit job concurrency.
597
+ *
598
+ * Can be used to ensure that the Runner will not run certain jobs simultaneously.
599
+ *
600
+ * @experimental
601
+ */
602
+ readonly resourceGroup?: string;
603
+ /**
604
+ * @experimental
605
+ */
606
+ readonly retry?: Retry;
607
+ /**
608
+ * (experimental) Rules allows for an array of individual rule objects to be evaluated in order, until one matches and dynamically provides attributes to the job.
609
+ *
610
+ * @experimental
611
+ */
612
+ readonly rules?: IncludeRule[];
613
+ /**
614
+ * (experimental) Shell scripts executed by the Runner.
615
+ *
616
+ * The only required property of jobs. Be careful with special characters (e.g. `:`, `{`, `}`, `&`) and use single or double quotes to avoid issues.
617
+ *
618
+ * @experimental
619
+ */
620
+ readonly script?: string[];
621
+ /**
622
+ * (experimental) CI/CD secrets.
623
+ *
624
+ * @experimental
625
+ */
626
+ readonly secrets?: Record<string, Record<string, Secret>>;
627
+ /**
628
+ * @experimental
629
+ */
630
+ readonly services?: Service[];
631
+ /**
632
+ * (experimental) Define what stage the job will run in.
633
+ *
634
+ * @experimental
635
+ */
636
+ readonly stage?: string;
637
+ /**
638
+ * @experimental
639
+ */
640
+ readonly startIn?: string;
641
+ /**
642
+ * @experimental
643
+ */
644
+ readonly tags?: string[];
645
+ /**
646
+ * @experimental
647
+ */
648
+ readonly timeout?: string;
649
+ /**
650
+ * (experimental) Trigger allows you to define downstream pipeline trigger.
651
+ *
652
+ * When a job created from trigger definition is started by GitLab, a downstream pipeline gets created. Read more: https://docs.gitlab.com/ee/ci/yaml/README.html#trigger
653
+ *
654
+ * @experimental
655
+ */
656
+ readonly trigger?: Trigger | string;
657
+ /**
658
+ * (experimental) Configurable values that are passed to the Job.
659
+ *
660
+ * @experimental
661
+ */
662
+ readonly variables?: Record<string, number | string>;
663
+ /**
664
+ * (experimental) Describes the conditions for when to run the job.
665
+ *
666
+ * Defaults to 'on_success'.
667
+ *
668
+ * @experimental
669
+ */
670
+ readonly when?: JobWhen;
671
+ }
672
+ /**
673
+ * (experimental) The environment that a job deploys to.
674
+ *
675
+ * @experimental
676
+ */
677
+ export interface Environment {
678
+ /**
679
+ * (experimental) Specifies what this job will do.
680
+ *
681
+ * 'start' (default) indicates the job will start the deployment. 'prepare' indicates this will not affect the deployment. 'stop' indicates this will stop the deployment.
682
+ *
683
+ * @experimental
684
+ */
685
+ readonly action?: Action;
686
+ /**
687
+ * (experimental) The amount of time it should take before Gitlab will automatically stop the environment.
688
+ *
689
+ * Supports a wide variety of formats, e.g. '1 week', '3 mins 4 sec', '2 hrs 20 min', '2h20min', '6 mos 1 day', '47 yrs 6 mos and 4d', '3 weeks and 2 days'.
690
+ *
691
+ * @experimental
692
+ */
693
+ readonly autoStopIn?: string;
694
+ /**
695
+ * (experimental) Explicitly specifies the tier of the deployment environment if non-standard environment name is used.
696
+ *
697
+ * @experimental
698
+ */
699
+ readonly deploymentTier?: DeploymentTier;
700
+ /**
701
+ * (experimental) Used to configure the kubernetes deployment for this environment.
702
+ *
703
+ * This is currently not supported for kubernetes clusters that are managed by Gitlab.
704
+ *
705
+ * @experimental
706
+ */
707
+ readonly kubernetes?: KubernetesConfig;
708
+ /**
709
+ * (experimental) The name of the environment, e.g. 'qa', 'staging', 'production'.
710
+ *
711
+ * @experimental
712
+ */
713
+ readonly name: string;
714
+ /**
715
+ * (experimental) The name of a job to execute when the environment is about to be stopped.
716
+ *
717
+ * @experimental
718
+ */
719
+ readonly onStop?: string;
720
+ /**
721
+ * (experimental) When set, this will expose buttons in various places for the current environment in Gitlab, that will take you to the defined URL.
722
+ *
723
+ * @experimental
724
+ */
725
+ readonly url?: string;
726
+ }
727
+ /**
728
+ * (experimental) Specifies what this job will do.
729
+ *
730
+ * 'start' (default) indicates the job will start the
731
+ * deployment. 'prepare' indicates this will not affect the deployment. 'stop' indicates
732
+ * this will stop the deployment.
733
+ *
734
+ * @experimental
735
+ */
736
+ export declare enum Action {
737
+ /**
738
+ * @experimental
739
+ */
740
+ PREPARE = "prepare",
741
+ /**
742
+ * @experimental
743
+ */
744
+ START = "start",
745
+ /**
746
+ * @experimental
747
+ */
748
+ STOP = "stop"
749
+ }
750
+ /**
751
+ * (experimental) Explicitly specifies the tier of the deployment environment if non-standard environment name is used.
752
+ *
753
+ * @experimental
754
+ */
755
+ export declare enum DeploymentTier {
756
+ /**
757
+ * @experimental
758
+ */
759
+ DEVELOPMENT = "development",
760
+ /**
761
+ * @experimental
762
+ */
763
+ OTHER = "other",
764
+ /**
765
+ * @experimental
766
+ */
767
+ PRODUCTION = "production",
768
+ /**
769
+ * @experimental
770
+ */
771
+ STAGING = "staging",
772
+ /**
773
+ * @experimental
774
+ */
775
+ TESTING = "testing"
776
+ }
777
+ /**
778
+ * (experimental) Used to configure the kubernetes deployment for this environment.
779
+ *
780
+ * This is currently not
781
+ * supported for kubernetes clusters that are managed by Gitlab.
782
+ *
783
+ * @experimental
784
+ */
785
+ export interface KubernetesConfig {
786
+ /**
787
+ * (experimental) The kubernetes namespace where this environment should be deployed to.
788
+ *
789
+ * @experimental
790
+ */
791
+ readonly namespace?: string;
792
+ }
793
+ /**
794
+ * (experimental) Filtering options for when a job will run.
795
+ *
796
+ * @experimental
797
+ */
798
+ export interface Filter {
799
+ /**
800
+ * (experimental) Filter job creation based on files that were modified in a git push.
801
+ *
802
+ * @experimental
803
+ */
804
+ readonly changes?: string[];
805
+ /**
806
+ * (experimental) Filter job based on if Kubernetes integration is active.
807
+ *
808
+ * @experimental
809
+ */
810
+ readonly kubernetes?: KubernetesEnum;
811
+ /**
812
+ * (experimental) Control when to add jobs to a pipeline based on branch names or pipeline types.
813
+ *
814
+ * @experimental
815
+ */
816
+ readonly refs?: string[];
817
+ /**
818
+ * (experimental) Filter job by checking comparing values of environment variables.
819
+ *
820
+ * Read more about variable expressions: https://docs.gitlab.com/ee/ci/variables/README.html#variables-expressions
821
+ *
822
+ * @experimental
823
+ */
824
+ readonly variables?: string[];
825
+ }
826
+ /**
827
+ * Filter job based on if Kubernetes integration is active.
828
+ */
829
+ export declare enum KubernetesEnum {
830
+ /**
831
+ * (experimental) Filter job based on if Kubernetes integration is active.
832
+ *
833
+ * @experimental
834
+ */
835
+ ACTIVE = "active"
836
+ }
837
+ /**
838
+ * (experimental) Controls inheritance of globally-defined defaults and variables.
839
+ *
840
+ * Boolean values control
841
+ * inheritance of all default: or variables: keywords. To inherit only a subset of default:
842
+ * or variables: keywords, specify what you wish to inherit. Anything not listed is not
843
+ * inherited.
844
+ *
845
+ * @experimental
846
+ */
847
+ export interface Inherit {
848
+ /**
849
+ * (experimental) Whether to inherit all globally-defined defaults or not.
850
+ *
851
+ * Or subset of inherited defaults
852
+ *
853
+ * @experimental
854
+ */
855
+ readonly default?: DefaultElement[] | boolean;
856
+ /**
857
+ * (experimental) Whether to inherit all globally-defined variables or not.
858
+ *
859
+ * Or subset of inherited variables
860
+ *
861
+ * @experimental
862
+ */
863
+ readonly variables?: string[] | boolean;
864
+ }
865
+ /**
866
+ * @experimental
867
+ */
868
+ export declare enum DefaultElement {
869
+ /**
870
+ * @experimental
871
+ */
872
+ AFTER_SCRIPT = "after_script",
873
+ /**
874
+ * @experimental
875
+ */
876
+ ARTIFACTS = "artifacts",
877
+ /**
878
+ * @experimental
879
+ */
880
+ BEFORE_SCRIPT = "before_script",
881
+ /**
882
+ * @experimental
883
+ */
884
+ CACHE = "cache",
885
+ /**
886
+ * @experimental
887
+ */
888
+ IMAGE = "image",
889
+ /**
890
+ * @experimental
891
+ */
892
+ INTERRUPTIBLE = "interruptible",
893
+ /**
894
+ * @experimental
895
+ */
896
+ RETRY = "retry",
897
+ /**
898
+ * @experimental
899
+ */
900
+ SERVICES = "services",
901
+ /**
902
+ * @experimental
903
+ */
904
+ TAGS = "tags",
905
+ /**
906
+ * @experimental
907
+ */
908
+ TIMEOUT = "timeout"
909
+ }
910
+ /**
911
+ * (experimental) A jobs in a previous stage whose sole completion is needed to start the current job.
912
+ *
913
+ * @experimental
914
+ */
915
+ export interface Need {
916
+ /**
917
+ * @experimental
918
+ */
919
+ readonly artifacts?: boolean;
920
+ /**
921
+ * @experimental
922
+ */
923
+ readonly job: string;
924
+ /**
925
+ * @experimental
926
+ */
927
+ readonly optional?: boolean;
928
+ /**
929
+ * @experimental
930
+ */
931
+ readonly pipeline?: string;
932
+ /**
933
+ * @experimental
934
+ */
935
+ readonly project?: string;
936
+ /**
937
+ * @experimental
938
+ */
939
+ readonly ref?: string;
940
+ }
941
+ /**
942
+ * (experimental) Used to run a job multiple times in parallel in a single pipeline.
943
+ *
944
+ * @experimental
945
+ */
946
+ export interface Parallel {
947
+ /**
948
+ * (experimental) Defines different variables for jobs that are running in parallel.
949
+ *
950
+ * @experimental
951
+ */
952
+ readonly matrix: Record<string, any[]>[];
953
+ }
954
+ /**
955
+ * (experimental) Indicates that the job creates a Release.
956
+ *
957
+ * @experimental
958
+ */
959
+ export interface Release {
960
+ /**
961
+ * @experimental
962
+ */
963
+ readonly assets?: Assets;
964
+ /**
965
+ * (experimental) Specifies the longer description of the Release.
966
+ *
967
+ * @experimental
968
+ */
969
+ readonly description: string;
970
+ /**
971
+ * (experimental) The title of each milestone the release is associated with.
972
+ *
973
+ * @experimental
974
+ */
975
+ readonly milestones?: string[];
976
+ /**
977
+ * (experimental) The Release name.
978
+ *
979
+ * If omitted, it is populated with the value of release: tag_name.
980
+ *
981
+ * @experimental
982
+ */
983
+ readonly name?: string;
984
+ /**
985
+ * (experimental) If the release: tag_name doesn’t exist yet, the release is created from ref.
986
+ *
987
+ * ref can be a commit SHA, another tag name, or a branch name.
988
+ *
989
+ * @experimental
990
+ */
991
+ readonly ref?: string;
992
+ /**
993
+ * (experimental) The date and time when the release is ready.
994
+ *
995
+ * Defaults to the current date and time if not defined. Should be enclosed in quotes and expressed in ISO 8601 format.
996
+ *
997
+ * @experimental
998
+ */
999
+ readonly releasedAt?: string;
1000
+ /**
1001
+ * (experimental) The tag_name must be specified.
1002
+ *
1003
+ * It can refer to an existing Git tag or can be specified by the user.
1004
+ *
1005
+ * @experimental
1006
+ */
1007
+ readonly tagName: string;
1008
+ }
1009
+ /**
1010
+ * (experimental) Asset configuration for a release.
1011
+ *
1012
+ * @experimental
1013
+ */
1014
+ export interface Assets {
1015
+ /**
1016
+ * (experimental) Include asset links in the release.
1017
+ *
1018
+ * @experimental
1019
+ */
1020
+ readonly links: Link[];
1021
+ }
1022
+ /**
1023
+ * (experimental) Link configuration for an asset.
1024
+ *
1025
+ * @experimental
1026
+ */
1027
+ export interface Link {
1028
+ /**
1029
+ * (experimental) The redirect link to the url.
1030
+ *
1031
+ * @experimental
1032
+ */
1033
+ readonly filepath?: string;
1034
+ /**
1035
+ * (experimental) The content kind of what users can download via url.
1036
+ *
1037
+ * @experimental
1038
+ */
1039
+ readonly linkType?: LinkType;
1040
+ /**
1041
+ * (experimental) The name of the link.
1042
+ *
1043
+ * @experimental
1044
+ */
1045
+ readonly name: string;
1046
+ /**
1047
+ * (experimental) The URL to download a file.
1048
+ *
1049
+ * @experimental
1050
+ */
1051
+ readonly url: string;
1052
+ }
1053
+ /**
1054
+ * (experimental) The content kind of what users can download via url.
1055
+ *
1056
+ * @experimental
1057
+ */
1058
+ export declare enum LinkType {
1059
+ /**
1060
+ * @experimental
1061
+ */
1062
+ IMAGE = "image",
1063
+ /**
1064
+ * @experimental
1065
+ */
1066
+ OTHER = "other",
1067
+ /**
1068
+ * @experimental
1069
+ */
1070
+ PACKAGE = "package",
1071
+ /**
1072
+ * @experimental
1073
+ */
1074
+ RUNBOOK = "runbook"
1075
+ }
1076
+ /**
1077
+ * (experimental) A CI/CD secret.
1078
+ *
1079
+ * @experimental
1080
+ */
1081
+ export interface Secret {
1082
+ /**
1083
+ * @experimental
1084
+ */
1085
+ readonly vault: VaultConfig;
1086
+ }
1087
+ /**
1088
+ * (experimental) Specification for a secret provided by a HashiCorp Vault.
1089
+ *
1090
+ * @see https://www.vaultproject.io/
1091
+ * @experimental
1092
+ */
1093
+ export interface VaultConfig {
1094
+ /**
1095
+ * @experimental
1096
+ */
1097
+ readonly engine: Engine;
1098
+ /**
1099
+ * @experimental
1100
+ */
1101
+ readonly field: string;
1102
+ /**
1103
+ * (experimental) Path to the secret.
1104
+ *
1105
+ * @experimental
1106
+ */
1107
+ readonly path: string;
1108
+ }
1109
+ /**
1110
+ * (experimental) The engine configuration for a secret.
1111
+ *
1112
+ * @experimental
1113
+ */
1114
+ export interface Engine {
1115
+ /**
1116
+ * (experimental) Name of the secrets engine.
1117
+ *
1118
+ * @experimental
1119
+ */
1120
+ readonly name: string;
1121
+ /**
1122
+ * (experimental) Path to the secrets engine.
1123
+ *
1124
+ * @experimental
1125
+ */
1126
+ readonly path: string;
1127
+ }
1128
+ /**
1129
+ * (experimental) Trigger a multi-project or a child pipeline.
1130
+ *
1131
+ * Read more:
1132
+ *
1133
+ * @see https://docs.gitlab.com/ee/ci/yaml/README.html#trigger-syntax-for-child-pipeline
1134
+ * @experimental
1135
+ */
1136
+ export interface Trigger {
1137
+ /**
1138
+ * (experimental) The branch name that a downstream pipeline will use.
1139
+ *
1140
+ * @experimental
1141
+ */
1142
+ readonly branch?: string;
1143
+ /**
1144
+ * (experimental) Path to the project, e.g. `group/project`, or `group/sub-group/project`.
1145
+ *
1146
+ * @experimental
1147
+ */
1148
+ readonly project?: string;
1149
+ /**
1150
+ * (experimental) You can mirror the pipeline status from the triggered pipeline to the source bridge job by using strategy: depend.
1151
+ *
1152
+ * @experimental
1153
+ */
1154
+ readonly strategy?: Strategy;
1155
+ /**
1156
+ * (experimental) A list of local files or artifacts from other jobs to define the pipeline.
1157
+ *
1158
+ * @experimental
1159
+ */
1160
+ readonly include?: TriggerInclude[];
1161
+ }
1162
+ /**
1163
+ * (experimental) References a local file or an artifact from another job to define the pipeline configuration.
1164
+ *
1165
+ * @see https://docs.gitlab.com/ee/ci/yaml/#triggerinclude
1166
+ * @experimental
1167
+ */
1168
+ export interface TriggerInclude {
1169
+ /**
1170
+ * (experimental) Relative path from local repository root (`/`) to the local YAML file to define the pipeline configuration.
1171
+ *
1172
+ * @experimental
1173
+ */
1174
+ readonly local?: string;
1175
+ /**
1176
+ * (experimental) Name of the template YAML file to use in the pipeline configuration.
1177
+ *
1178
+ * @experimental
1179
+ */
1180
+ readonly template?: string;
1181
+ /**
1182
+ * (experimental) Relative path to the generated YAML file which is extracted from the artifacts and used as the configuration for triggering the child pipeline.
1183
+ *
1184
+ * @experimental
1185
+ */
1186
+ readonly artifact?: string;
1187
+ /**
1188
+ * (experimental) Job name which generates the artifact.
1189
+ *
1190
+ * @experimental
1191
+ */
1192
+ readonly job?: string;
1193
+ /**
1194
+ * (experimental) Relative path from repository root (`/`) to the pipeline configuration YAML file.
1195
+ *
1196
+ * @experimental
1197
+ */
1198
+ readonly file?: string;
1199
+ /**
1200
+ * (experimental) Path to another private project under the same GitLab instance, like `group/project` or `group/sub-group/project`.
1201
+ *
1202
+ * @experimental
1203
+ */
1204
+ readonly project?: string;
1205
+ /**
1206
+ * (experimental) Branch/Tag/Commit hash for the target project.
1207
+ *
1208
+ * @experimental
1209
+ */
1210
+ readonly ref?: string;
1211
+ }
1212
+ /**
1213
+ * You can mirror the pipeline status from the triggered pipeline to the source bridge job
1214
+ * by using strategy: depend
1215
+ * @see https://docs.gitlab.com/ee/ci/yaml/#triggerstrategy
1216
+ */
1217
+ export declare enum Strategy {
1218
+ /**
1219
+ * (experimental) You can mirror the pipeline status from the triggered pipeline to the source bridge job by using strategy: depend.
1220
+ *
1221
+ * @see https://docs.gitlab.com/ee/ci/yaml/#triggerstrategy
1222
+ * @experimental
1223
+ */
1224
+ DEPEND = "depend"
1225
+ }
1226
+ /**
1227
+ * (experimental) Explains what the global variable is used for, what the acceptable values are.
1228
+ *
1229
+ * @see https://docs.gitlab.com/ee/ci/yaml/#variables
1230
+ * @experimental
1231
+ */
1232
+ export interface VariableConfig {
1233
+ /**
1234
+ * (experimental) Define a global variable that is prefilled when running a pipeline manually.
1235
+ *
1236
+ * Must be used with value.
1237
+ *
1238
+ * @experimental
1239
+ */
1240
+ readonly description?: string;
1241
+ /**
1242
+ * (experimental) The variable value.
1243
+ *
1244
+ * @experimental
1245
+ */
1246
+ readonly value?: string;
1247
+ }
1248
+ /**
1249
+ * (experimental) Used to control pipeline behavior.
1250
+ *
1251
+ * @see https://docs.gitlab.com/ee/ci/yaml/#workflow
1252
+ * @experimental
1253
+ */
1254
+ export interface Workflow {
1255
+ /**
1256
+ * (experimental) Used to control whether or not a whole pipeline is created.
1257
+ *
1258
+ * @experimental
1259
+ */
1260
+ readonly rules?: WorkflowRule[];
1261
+ }
1262
+ /**
1263
+ * (experimental) Used to control whether or not a whole pipeline is created.
1264
+ *
1265
+ * @see https://docs.gitlab.com/ee/ci/yaml/#workflowrules
1266
+ * @experimental
1267
+ */
1268
+ export interface WorkflowRule {
1269
+ /**
1270
+ * @experimental
1271
+ */
1272
+ readonly changes?: string[];
1273
+ /**
1274
+ * @experimental
1275
+ */
1276
+ readonly exists?: string[];
1277
+ /**
1278
+ * @experimental
1279
+ */
1280
+ readonly if?: string;
1281
+ /**
1282
+ * @experimental
1283
+ */
1284
+ readonly variables?: Record<string, number | string>;
1285
+ /**
1286
+ * @experimental
1287
+ */
1288
+ readonly when?: JobWhen;
1289
+ }
1290
+ /**
1291
+ * (experimental) Describes the conditions for when to run the job.
1292
+ *
1293
+ * Defaults to 'on_success'.
1294
+ * The value can only be 'always' or 'never' when used with workflow.
1295
+ *
1296
+ * @see https://docs.gitlab.com/ee/ci/yaml/#workflowrules
1297
+ * @experimental
1298
+ */
1299
+ export declare enum WorkflowWhen {
1300
+ /**
1301
+ * @experimental
1302
+ */
1303
+ ALWAYS = "always",
1304
+ /**
1305
+ * @experimental
1306
+ */
1307
+ NEVER = "never"
1308
+ }