@catladder/pipeline 1.111.4 → 1.112.1

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 (66) hide show
  1. package/dist/build/base/createAppBuildJob.d.ts +8 -0
  2. package/dist/build/base/{createBuildJob.js → createAppBuildJob.js} +3 -3
  3. package/dist/build/base/index.d.ts +8 -0
  4. package/dist/build/base/index.js +57 -0
  5. package/dist/build/custom/buildJob.js +19 -22
  6. package/dist/build/docker.d.ts +2 -4
  7. package/dist/build/docker.js +4 -39
  8. package/dist/build/node/buildJob.js +30 -32
  9. package/dist/build/node/meteor.js +19 -21
  10. package/dist/build/rails/build.js +12 -19
  11. package/dist/build/types.d.ts +4 -3
  12. package/dist/bundles/catladder-gitlab/index.js +1 -1
  13. package/dist/constants.js +1 -1
  14. package/dist/deploy/base/deploy.d.ts +3 -2
  15. package/dist/deploy/base/deploy.js +9 -4
  16. package/dist/deploy/base/index.d.ts +10 -3
  17. package/dist/deploy/base/index.js +37 -16
  18. package/dist/deploy/base/rollback.d.ts +3 -2
  19. package/dist/deploy/base/rollback.js +8 -6
  20. package/dist/deploy/base/stop.d.ts +3 -2
  21. package/dist/deploy/base/stop.js +8 -6
  22. package/dist/deploy/cloudRun/deployJob.js +28 -26
  23. package/dist/deploy/custom/deployJob.js +14 -11
  24. package/dist/deploy/dockerTag/deployJob.js +15 -5
  25. package/dist/deploy/kubernetes/deployJob.js +14 -26
  26. package/dist/deploy/kubernetes/mongodb.d.ts +1 -1
  27. package/dist/deploy/kubernetes/mongodb.js +8 -7
  28. package/dist/deploy/types/index.d.ts +1 -1
  29. package/dist/pipeline/gitlab/createGitlabJobs.d.ts +1 -0
  30. package/dist/pipeline/gitlab/createGitlabJobs.js +4 -1
  31. package/dist/tsconfig.tsbuildinfo +1 -1
  32. package/dist/types/gitlab-ci-yml.d.ts +769 -0
  33. package/dist/types/gitlab-ci-yml.js +9 -0
  34. package/dist/types/gitlab-types.d.ts +12 -85
  35. package/dist/types/jobs.d.ts +3 -3
  36. package/examples/__snapshots__/kubernetes-application-customization.ts.snap +0 -36
  37. package/examples/__snapshots__/kubernetes-with-cloud-sql-legacy.ts.snap +0 -36
  38. package/examples/__snapshots__/kubernetes-with-cloud-sql.ts.snap +0 -36
  39. package/examples/__snapshots__/kubernetes-with-jobs.ts.snap +0 -72
  40. package/examples/__snapshots__/kubernetes-with-mongodb.ts.snap +0 -36
  41. package/examples/__snapshots__/meteor-kubernetes.ts.snap +0 -36
  42. package/examples/__snapshots__/rails-k8s-with-worker.ts.snap +0 -36
  43. package/package.json +4 -2
  44. package/scripts/generate-gitlab-ci-types.ts +51 -0
  45. package/src/build/base/{createBuildJob.ts → createAppBuildJob.ts} +3 -2
  46. package/src/build/base/index.ts +35 -0
  47. package/src/build/custom/buildJob.ts +32 -45
  48. package/src/build/docker.ts +14 -17
  49. package/src/build/node/buildJob.ts +50 -61
  50. package/src/build/node/meteor.ts +31 -36
  51. package/src/build/rails/build.ts +8 -10
  52. package/src/build/types.ts +4 -8
  53. package/src/deploy/base/deploy.ts +16 -2
  54. package/src/deploy/base/index.ts +22 -3
  55. package/src/deploy/base/rollback.ts +13 -2
  56. package/src/deploy/base/stop.ts +13 -4
  57. package/src/deploy/cloudRun/deployJob.ts +13 -15
  58. package/src/deploy/custom/deployJob.ts +17 -20
  59. package/src/deploy/dockerTag/deployJob.ts +6 -7
  60. package/src/deploy/kubernetes/deployJob.ts +17 -34
  61. package/src/deploy/kubernetes/mongodb.ts +3 -2
  62. package/src/pipeline/gitlab/createGitlabJobs.ts +3 -0
  63. package/src/types/gitlab-ci-yml.ts +892 -0
  64. package/src/types/gitlab-types.ts +49 -86
  65. package/src/types/jobs.ts +3 -4
  66. package/dist/build/base/createBuildJob.d.ts +0 -7
@@ -8,9 +8,6 @@ exports[`matches snapshot 1`] = `
8
8
  "api ↩️ Rollback ⚠️ | dev ": {
9
9
  "environment": {
10
10
  "action": "access",
11
- "kubernetes": {
12
- "namespace": "pan-test-app-dev",
13
- },
14
11
  "name": "dev/api",
15
12
  "url": "https://api.dev.test-app.pan.panter.cloud",
16
13
  },
@@ -293,9 +290,6 @@ COPY --chown=node:node .yarn /app/.yarn",
293
290
  "allow_failure": false,
294
291
  "environment": {
295
292
  "auto_stop_in": "4 weeks",
296
- "kubernetes": {
297
- "namespace": "pan-test-app-dev",
298
- },
299
293
  "name": "dev/api",
300
294
  "on_stop": "api 🛑 Stop ⚠️ | dev ",
301
295
  "url": "https://api.dev.test-app.pan.panter.cloud",
@@ -424,9 +418,6 @@ cronjobs:
424
418
  "api 🛑 Stop ⚠️ | dev ": {
425
419
  "environment": {
426
420
  "action": "stop",
427
- "kubernetes": {
428
- "namespace": "pan-test-app-dev",
429
- },
430
421
  "name": "dev/api",
431
422
  "url": "https://api.dev.test-app.pan.panter.cloud",
432
423
  },
@@ -619,9 +610,6 @@ cronjobs:
619
610
  "www ↩️ Rollback ⚠️ | dev ": {
620
611
  "environment": {
621
612
  "action": "access",
622
- "kubernetes": {
623
- "namespace": "pan-test-app-dev",
624
- },
625
613
  "name": "dev/www",
626
614
  "url": "https://www.dev.test-app.pan.panter.cloud",
627
615
  },
@@ -897,9 +885,6 @@ COPY --chown=node:node .yarn /app/.yarn",
897
885
  "allow_failure": false,
898
886
  "environment": {
899
887
  "auto_stop_in": "4 weeks",
900
- "kubernetes": {
901
- "namespace": "pan-test-app-dev",
902
- },
903
888
  "name": "dev/www",
904
889
  "on_stop": "www 🛑 Stop ⚠️ | dev ",
905
890
  "url": "https://www.dev.test-app.pan.panter.cloud",
@@ -1021,9 +1006,6 @@ application:
1021
1006
  "www 🛑 Stop ⚠️ | dev ": {
1022
1007
  "environment": {
1023
1008
  "action": "stop",
1024
- "kubernetes": {
1025
- "namespace": "pan-test-app-dev",
1026
- },
1027
1009
  "name": "dev/www",
1028
1010
  "url": "https://www.dev.test-app.pan.panter.cloud",
1029
1011
  },
@@ -1281,9 +1263,6 @@ application:
1281
1263
  "api ↩️ Rollback ⚠️ | review ": {
1282
1264
  "environment": {
1283
1265
  "action": "access",
1284
- "kubernetes": {
1285
- "namespace": "pan-test-app-review",
1286
- },
1287
1266
  "name": "review/some-commit/api",
1288
1267
  "url": "https://api.mr1234.review.test-app.pan.panter.cloud",
1289
1268
  },
@@ -1563,9 +1542,6 @@ COPY --chown=node:node .yarn /app/.yarn",
1563
1542
  "allow_failure": false,
1564
1543
  "environment": {
1565
1544
  "auto_stop_in": "2 week",
1566
- "kubernetes": {
1567
- "namespace": "pan-test-app-review",
1568
- },
1569
1545
  "name": "review/some-commit/api",
1570
1546
  "on_stop": "api 🛑 Stop ⚠️ | review ",
1571
1547
  "url": "https://api.mr1234.review.test-app.pan.panter.cloud",
@@ -1691,9 +1667,6 @@ cronjobs: {}
1691
1667
  "api 🛑 Stop ⚠️ | review ": {
1692
1668
  "environment": {
1693
1669
  "action": "stop",
1694
- "kubernetes": {
1695
- "namespace": "pan-test-app-review",
1696
- },
1697
1670
  "name": "review/some-commit/api",
1698
1671
  "url": "https://api.mr1234.review.test-app.pan.panter.cloud",
1699
1672
  },
@@ -1883,9 +1856,6 @@ cronjobs: {}
1883
1856
  "www ↩️ Rollback ⚠️ | review ": {
1884
1857
  "environment": {
1885
1858
  "action": "access",
1886
- "kubernetes": {
1887
- "namespace": "pan-test-app-review",
1888
- },
1889
1859
  "name": "review/some-commit/www",
1890
1860
  "url": "https://www.mr1234.review.test-app.pan.panter.cloud",
1891
1861
  },
@@ -2161,9 +2131,6 @@ COPY --chown=node:node .yarn /app/.yarn",
2161
2131
  "allow_failure": false,
2162
2132
  "environment": {
2163
2133
  "auto_stop_in": "2 week",
2164
- "kubernetes": {
2165
- "namespace": "pan-test-app-review",
2166
- },
2167
2134
  "name": "review/some-commit/www",
2168
2135
  "on_stop": "www 🛑 Stop ⚠️ | review ",
2169
2136
  "url": "https://www.mr1234.review.test-app.pan.panter.cloud",
@@ -2285,9 +2252,6 @@ application:
2285
2252
  "www 🛑 Stop ⚠️ | review ": {
2286
2253
  "environment": {
2287
2254
  "action": "stop",
2288
- "kubernetes": {
2289
- "namespace": "pan-test-app-review",
2290
- },
2291
2255
  "name": "review/some-commit/www",
2292
2256
  "url": "https://www.mr1234.review.test-app.pan.panter.cloud",
2293
2257
  },
@@ -2545,9 +2509,6 @@ application:
2545
2509
  "api ↩️ Rollback ⚠️ | prod ": {
2546
2510
  "environment": {
2547
2511
  "action": "access",
2548
- "kubernetes": {
2549
- "namespace": "pan-test-app-prod",
2550
- },
2551
2512
  "name": "prod/api",
2552
2513
  "url": "https://api.prod.test-app.pan.panter.cloud",
2553
2514
  },
@@ -2642,9 +2603,6 @@ cronjobs:
2642
2603
  "api ↩️ Rollback ⚠️ | stage ": {
2643
2604
  "environment": {
2644
2605
  "action": "access",
2645
- "kubernetes": {
2646
- "namespace": "pan-test-app-stage",
2647
- },
2648
2606
  "name": "stage/api",
2649
2607
  "url": "https://api.stage.test-app.pan.panter.cloud",
2650
2608
  },
@@ -3028,9 +2986,6 @@ COPY --chown=node:node .yarn /app/.yarn",
3028
2986
  "allow_failure": true,
3029
2987
  "environment": {
3030
2988
  "auto_stop_in": undefined,
3031
- "kubernetes": {
3032
- "namespace": "pan-test-app-prod",
3033
- },
3034
2989
  "name": "prod/api",
3035
2990
  "on_stop": "api 🛑 Stop ⚠️ | prod ",
3036
2991
  "url": "https://api.prod.test-app.pan.panter.cloud",
@@ -3148,9 +3103,6 @@ cronjobs:
3148
3103
  "allow_failure": false,
3149
3104
  "environment": {
3150
3105
  "auto_stop_in": undefined,
3151
- "kubernetes": {
3152
- "namespace": "pan-test-app-stage",
3153
- },
3154
3106
  "name": "stage/api",
3155
3107
  "on_stop": "api 🛑 Stop ⚠️ | stage ",
3156
3108
  "url": "https://api.stage.test-app.pan.panter.cloud",
@@ -3267,9 +3219,6 @@ cronjobs:
3267
3219
  "api 🛑 Stop ⚠️ | prod ": {
3268
3220
  "environment": {
3269
3221
  "action": "stop",
3270
- "kubernetes": {
3271
- "namespace": "pan-test-app-prod",
3272
- },
3273
3222
  "name": "prod/api",
3274
3223
  "url": "https://api.prod.test-app.pan.panter.cloud",
3275
3224
  },
@@ -3371,9 +3320,6 @@ cronjobs:
3371
3320
  "api 🛑 Stop ⚠️ | stage ": {
3372
3321
  "environment": {
3373
3322
  "action": "stop",
3374
- "kubernetes": {
3375
- "namespace": "pan-test-app-stage",
3376
- },
3377
3323
  "name": "stage/api",
3378
3324
  "url": "https://api.stage.test-app.pan.panter.cloud",
3379
3325
  },
@@ -3521,9 +3467,6 @@ cronjobs:
3521
3467
  "www ↩️ Rollback ⚠️ | prod ": {
3522
3468
  "environment": {
3523
3469
  "action": "access",
3524
- "kubernetes": {
3525
- "namespace": "pan-test-app-prod",
3526
- },
3527
3470
  "name": "prod/www",
3528
3471
  "url": "https://www.prod.test-app.pan.panter.cloud",
3529
3472
  },
@@ -3611,9 +3554,6 @@ application:
3611
3554
  "www ↩️ Rollback ⚠️ | stage ": {
3612
3555
  "environment": {
3613
3556
  "action": "access",
3614
- "kubernetes": {
3615
- "namespace": "pan-test-app-stage",
3616
- },
3617
3557
  "name": "stage/www",
3618
3558
  "url": "https://www.stage.test-app.pan.panter.cloud",
3619
3559
  },
@@ -3990,9 +3930,6 @@ COPY --chown=node:node .yarn /app/.yarn",
3990
3930
  "allow_failure": true,
3991
3931
  "environment": {
3992
3932
  "auto_stop_in": undefined,
3993
- "kubernetes": {
3994
- "namespace": "pan-test-app-prod",
3995
- },
3996
3933
  "name": "prod/www",
3997
3934
  "on_stop": "www 🛑 Stop ⚠️ | prod ",
3998
3935
  "url": "https://www.prod.test-app.pan.panter.cloud",
@@ -4103,9 +4040,6 @@ application:
4103
4040
  "allow_failure": false,
4104
4041
  "environment": {
4105
4042
  "auto_stop_in": undefined,
4106
- "kubernetes": {
4107
- "namespace": "pan-test-app-stage",
4108
- },
4109
4043
  "name": "stage/www",
4110
4044
  "on_stop": "www 🛑 Stop ⚠️ | stage ",
4111
4045
  "url": "https://www.stage.test-app.pan.panter.cloud",
@@ -4215,9 +4149,6 @@ application:
4215
4149
  "www 🛑 Stop ⚠️ | prod ": {
4216
4150
  "environment": {
4217
4151
  "action": "stop",
4218
- "kubernetes": {
4219
- "namespace": "pan-test-app-prod",
4220
- },
4221
4152
  "name": "prod/www",
4222
4153
  "url": "https://www.prod.test-app.pan.panter.cloud",
4223
4154
  },
@@ -4312,9 +4243,6 @@ application:
4312
4243
  "www 🛑 Stop ⚠️ | stage ": {
4313
4244
  "environment": {
4314
4245
  "action": "stop",
4315
- "kubernetes": {
4316
- "namespace": "pan-test-app-stage",
4317
- },
4318
4246
  "name": "stage/www",
4319
4247
  "url": "https://www.stage.test-app.pan.panter.cloud",
4320
4248
  },
@@ -8,9 +8,6 @@ exports[`matches snapshot 1`] = `
8
8
  "api ↩️ Rollback ⚠️ | dev ": {
9
9
  "environment": {
10
10
  "action": "access",
11
- "kubernetes": {
12
- "namespace": "pan-test-app-dev",
13
- },
14
11
  "name": "dev/api",
15
12
  "url": "https://api.dev.test-app.pan.panter.cloud",
16
13
  },
@@ -315,9 +312,6 @@ COPY --chown=node:node .yarn /app/.yarn",
315
312
  "allow_failure": false,
316
313
  "environment": {
317
314
  "auto_stop_in": "4 weeks",
318
- "kubernetes": {
319
- "namespace": "pan-test-app-dev",
320
- },
321
315
  "name": "dev/api",
322
316
  "on_stop": "api 🛑 Stop ⚠️ | dev ",
323
317
  "url": "https://api.dev.test-app.pan.panter.cloud",
@@ -466,9 +460,6 @@ mongodb:
466
460
  "api 🛑 Stop ⚠️ | dev ": {
467
461
  "environment": {
468
462
  "action": "stop",
469
- "kubernetes": {
470
- "namespace": "pan-test-app-dev",
471
- },
472
463
  "name": "dev/api",
473
464
  "url": "https://api.dev.test-app.pan.panter.cloud",
474
465
  },
@@ -753,9 +744,6 @@ mongodb:
753
744
  "api ↩️ Rollback ⚠️ | review ": {
754
745
  "environment": {
755
746
  "action": "access",
756
- "kubernetes": {
757
- "namespace": "pan-test-app-review",
758
- },
759
747
  "name": "review/some-commit/api",
760
748
  "url": "https://api.mr1234.review.test-app.pan.panter.cloud",
761
749
  },
@@ -1060,9 +1048,6 @@ COPY --chown=node:node .yarn /app/.yarn",
1060
1048
  "allow_failure": false,
1061
1049
  "environment": {
1062
1050
  "auto_stop_in": "2 week",
1063
- "kubernetes": {
1064
- "namespace": "pan-test-app-review",
1065
- },
1066
1051
  "name": "review/some-commit/api",
1067
1052
  "on_stop": "api 🛑 Stop ⚠️ | review ",
1068
1053
  "url": "https://api.mr1234.review.test-app.pan.panter.cloud",
@@ -1211,9 +1196,6 @@ mongodb:
1211
1196
  "api 🛑 Stop ⚠️ | review ": {
1212
1197
  "environment": {
1213
1198
  "action": "stop",
1214
- "kubernetes": {
1215
- "namespace": "pan-test-app-review",
1216
- },
1217
1199
  "name": "review/some-commit/api",
1218
1200
  "url": "https://api.mr1234.review.test-app.pan.panter.cloud",
1219
1201
  },
@@ -1498,9 +1480,6 @@ mongodb:
1498
1480
  "api ↩️ Rollback ⚠️ | prod ": {
1499
1481
  "environment": {
1500
1482
  "action": "access",
1501
- "kubernetes": {
1502
- "namespace": "pan-test-app-prod",
1503
- },
1504
1483
  "name": "prod/api",
1505
1484
  "url": "https://api.prod.test-app.pan.panter.cloud",
1506
1485
  },
@@ -1615,9 +1594,6 @@ mongodb:
1615
1594
  "api ↩️ Rollback ⚠️ | stage ": {
1616
1595
  "environment": {
1617
1596
  "action": "access",
1618
- "kubernetes": {
1619
- "namespace": "pan-test-app-stage",
1620
- },
1621
1597
  "name": "stage/api",
1622
1598
  "url": "https://api.stage.test-app.pan.panter.cloud",
1623
1599
  },
@@ -2025,9 +2001,6 @@ COPY --chown=node:node .yarn /app/.yarn",
2025
2001
  "allow_failure": true,
2026
2002
  "environment": {
2027
2003
  "auto_stop_in": undefined,
2028
- "kubernetes": {
2029
- "namespace": "pan-test-app-prod",
2030
- },
2031
2004
  "name": "prod/api",
2032
2005
  "on_stop": "api 🛑 Stop ⚠️ | prod ",
2033
2006
  "url": "https://api.prod.test-app.pan.panter.cloud",
@@ -2165,9 +2138,6 @@ mongodb:
2165
2138
  "allow_failure": false,
2166
2139
  "environment": {
2167
2140
  "auto_stop_in": undefined,
2168
- "kubernetes": {
2169
- "namespace": "pan-test-app-stage",
2170
- },
2171
2141
  "name": "stage/api",
2172
2142
  "on_stop": "api 🛑 Stop ⚠️ | stage ",
2173
2143
  "url": "https://api.stage.test-app.pan.panter.cloud",
@@ -2304,9 +2274,6 @@ mongodb:
2304
2274
  "api 🛑 Stop ⚠️ | prod ": {
2305
2275
  "environment": {
2306
2276
  "action": "stop",
2307
- "kubernetes": {
2308
- "namespace": "pan-test-app-prod",
2309
- },
2310
2277
  "name": "prod/api",
2311
2278
  "url": "https://api.prod.test-app.pan.panter.cloud",
2312
2279
  },
@@ -2428,9 +2395,6 @@ mongodb:
2428
2395
  "api 🛑 Stop ⚠️ | stage ": {
2429
2396
  "environment": {
2430
2397
  "action": "stop",
2431
- "kubernetes": {
2432
- "namespace": "pan-test-app-stage",
2433
- },
2434
2398
  "name": "stage/api",
2435
2399
  "url": "https://api.stage.test-app.pan.panter.cloud",
2436
2400
  },
@@ -8,9 +8,6 @@ exports[`matches snapshot 1`] = `
8
8
  "web ↩️ Rollback ⚠️ | dev ": {
9
9
  "environment": {
10
10
  "action": "access",
11
- "kubernetes": {
12
- "namespace": "pan-my-app-dev",
13
- },
14
11
  "name": "dev/web",
15
12
  "url": "https://web.dev.my-app.pan.panter.cloud",
16
13
  },
@@ -299,9 +296,6 @@ mongodb:
299
296
  "allow_failure": false,
300
297
  "environment": {
301
298
  "auto_stop_in": "4 weeks",
302
- "kubernetes": {
303
- "namespace": "pan-my-app-dev",
304
- },
305
299
  "name": "dev/web",
306
300
  "on_stop": "web 🛑 Stop ⚠️ | dev ",
307
301
  "url": "https://web.dev.my-app.pan.panter.cloud",
@@ -444,9 +438,6 @@ mongodb:
444
438
  "web 🛑 Stop ⚠️ | dev ": {
445
439
  "environment": {
446
440
  "action": "stop",
447
- "kubernetes": {
448
- "namespace": "pan-my-app-dev",
449
- },
450
441
  "name": "dev/web",
451
442
  "url": "https://web.dev.my-app.pan.panter.cloud",
452
443
  },
@@ -725,9 +716,6 @@ mongodb:
725
716
  "web ↩️ Rollback ⚠️ | review ": {
726
717
  "environment": {
727
718
  "action": "access",
728
- "kubernetes": {
729
- "namespace": "pan-my-app-review",
730
- },
731
719
  "name": "review/some-commit/web",
732
720
  "url": "https://web.mr1234.review.my-app.pan.panter.cloud",
733
721
  },
@@ -1016,9 +1004,6 @@ mongodb:
1016
1004
  "allow_failure": false,
1017
1005
  "environment": {
1018
1006
  "auto_stop_in": "2 week",
1019
- "kubernetes": {
1020
- "namespace": "pan-my-app-review",
1021
- },
1022
1007
  "name": "review/some-commit/web",
1023
1008
  "on_stop": "web 🛑 Stop ⚠️ | review ",
1024
1009
  "url": "https://web.mr1234.review.my-app.pan.panter.cloud",
@@ -1161,9 +1146,6 @@ mongodb:
1161
1146
  "web 🛑 Stop ⚠️ | review ": {
1162
1147
  "environment": {
1163
1148
  "action": "stop",
1164
- "kubernetes": {
1165
- "namespace": "pan-my-app-review",
1166
- },
1167
1149
  "name": "review/some-commit/web",
1168
1150
  "url": "https://web.mr1234.review.my-app.pan.panter.cloud",
1169
1151
  },
@@ -1442,9 +1424,6 @@ mongodb:
1442
1424
  "web ↩️ Rollback ⚠️ | prod ": {
1443
1425
  "environment": {
1444
1426
  "action": "access",
1445
- "kubernetes": {
1446
- "namespace": "pan-my-app-prod",
1447
- },
1448
1427
  "name": "prod/web",
1449
1428
  "url": "https://www.example.com",
1450
1429
  },
@@ -1565,9 +1544,6 @@ mongodb:
1565
1544
  "web ↩️ Rollback ⚠️ | stage ": {
1566
1545
  "environment": {
1567
1546
  "action": "access",
1568
- "kubernetes": {
1569
- "namespace": "pan-my-app-stage",
1570
- },
1571
1547
  "name": "stage/web",
1572
1548
  "url": "https://web.stage.my-app.pan.panter.cloud",
1573
1549
  },
@@ -1950,9 +1926,6 @@ mongodb:
1950
1926
  "allow_failure": true,
1951
1927
  "environment": {
1952
1928
  "auto_stop_in": undefined,
1953
- "kubernetes": {
1954
- "namespace": "pan-my-app-prod",
1955
- },
1956
1929
  "name": "prod/web",
1957
1930
  "on_stop": "web 🛑 Stop ⚠️ | prod ",
1958
1931
  "url": "https://www.example.com",
@@ -2096,9 +2069,6 @@ mongodb:
2096
2069
  "allow_failure": false,
2097
2070
  "environment": {
2098
2071
  "auto_stop_in": undefined,
2099
- "kubernetes": {
2100
- "namespace": "pan-my-app-stage",
2101
- },
2102
2072
  "name": "stage/web",
2103
2073
  "on_stop": "web 🛑 Stop ⚠️ | stage ",
2104
2074
  "url": "https://web.stage.my-app.pan.panter.cloud",
@@ -2229,9 +2199,6 @@ mongodb:
2229
2199
  "web 🛑 Stop ⚠️ | prod ": {
2230
2200
  "environment": {
2231
2201
  "action": "stop",
2232
- "kubernetes": {
2233
- "namespace": "pan-my-app-prod",
2234
- },
2235
2202
  "name": "prod/web",
2236
2203
  "url": "https://www.example.com",
2237
2204
  },
@@ -2359,9 +2326,6 @@ mongodb:
2359
2326
  "web 🛑 Stop ⚠️ | stage ": {
2360
2327
  "environment": {
2361
2328
  "action": "stop",
2362
- "kubernetes": {
2363
- "namespace": "pan-my-app-stage",
2364
- },
2365
2329
  "name": "stage/web",
2366
2330
  "url": "https://web.stage.my-app.pan.panter.cloud",
2367
2331
  },
@@ -8,9 +8,6 @@ exports[`matches snapshot 1`] = `
8
8
  "app ↩️ Rollback ⚠️ | dev ": {
9
9
  "environment": {
10
10
  "action": "access",
11
- "kubernetes": {
12
- "namespace": "pan-test-app-dev",
13
- },
14
11
  "name": "dev/app",
15
12
  "url": "https://app.dev.test-app.pan.panter.cloud",
16
13
  },
@@ -199,9 +196,6 @@ jobs:
199
196
  "allow_failure": false,
200
197
  "environment": {
201
198
  "auto_stop_in": "4 weeks",
202
- "kubernetes": {
203
- "namespace": "pan-test-app-dev",
204
- },
205
199
  "name": "dev/app",
206
200
  "on_stop": "app 🛑 Stop ⚠️ | dev ",
207
201
  "url": "https://app.dev.test-app.pan.panter.cloud",
@@ -339,9 +333,6 @@ jobs:
339
333
  "app 🛑 Stop ⚠️ | dev ": {
340
334
  "environment": {
341
335
  "action": "stop",
342
- "kubernetes": {
343
- "namespace": "pan-test-app-dev",
344
- },
345
336
  "name": "dev/app",
346
337
  "url": "https://app.dev.test-app.pan.panter.cloud",
347
338
  },
@@ -602,9 +593,6 @@ jobs:
602
593
  "app ↩️ Rollback ⚠️ | review ": {
603
594
  "environment": {
604
595
  "action": "access",
605
- "kubernetes": {
606
- "namespace": "pan-test-app-review",
607
- },
608
596
  "name": "review/some-commit/app",
609
597
  "url": "https://app.mr1234.review.test-app.pan.panter.cloud",
610
598
  },
@@ -796,9 +784,6 @@ jobs:
796
784
  "allow_failure": false,
797
785
  "environment": {
798
786
  "auto_stop_in": "2 week",
799
- "kubernetes": {
800
- "namespace": "pan-test-app-review",
801
- },
802
787
  "name": "review/some-commit/app",
803
788
  "on_stop": "app 🛑 Stop ⚠️ | review ",
804
789
  "url": "https://app.mr1234.review.test-app.pan.panter.cloud",
@@ -939,9 +924,6 @@ jobs:
939
924
  "app 🛑 Stop ⚠️ | review ": {
940
925
  "environment": {
941
926
  "action": "stop",
942
- "kubernetes": {
943
- "namespace": "pan-test-app-review",
944
- },
945
927
  "name": "review/some-commit/app",
946
928
  "url": "https://app.mr1234.review.test-app.pan.panter.cloud",
947
929
  },
@@ -1205,9 +1187,6 @@ jobs:
1205
1187
  "app ↩️ Rollback ⚠️ | prod ": {
1206
1188
  "environment": {
1207
1189
  "action": "access",
1208
- "kubernetes": {
1209
- "namespace": "pan-test-app-prod",
1210
- },
1211
1190
  "name": "prod/app",
1212
1191
  "url": "https://my-fancy-website.com",
1213
1192
  },
@@ -1315,9 +1294,6 @@ jobs:
1315
1294
  "app ↩️ Rollback ⚠️ | stage ": {
1316
1295
  "environment": {
1317
1296
  "action": "access",
1318
- "kubernetes": {
1319
- "namespace": "pan-test-app-stage",
1320
- },
1321
1297
  "name": "stage/app",
1322
1298
  "url": "https://app.stage.test-app.pan.panter.cloud",
1323
1299
  },
@@ -1524,9 +1500,6 @@ jobs:
1524
1500
  "allow_failure": true,
1525
1501
  "environment": {
1526
1502
  "auto_stop_in": undefined,
1527
- "kubernetes": {
1528
- "namespace": "pan-test-app-prod",
1529
- },
1530
1503
  "name": "prod/app",
1531
1504
  "on_stop": "app 🛑 Stop ⚠️ | prod ",
1532
1505
  "url": "https://my-fancy-website.com",
@@ -1653,9 +1626,6 @@ jobs:
1653
1626
  "allow_failure": false,
1654
1627
  "environment": {
1655
1628
  "auto_stop_in": undefined,
1656
- "kubernetes": {
1657
- "namespace": "pan-test-app-stage",
1658
- },
1659
1629
  "name": "stage/app",
1660
1630
  "on_stop": "app 🛑 Stop ⚠️ | stage ",
1661
1631
  "url": "https://app.stage.test-app.pan.panter.cloud",
@@ -1781,9 +1751,6 @@ jobs:
1781
1751
  "app 🛑 Stop ⚠️ | prod ": {
1782
1752
  "environment": {
1783
1753
  "action": "stop",
1784
- "kubernetes": {
1785
- "namespace": "pan-test-app-prod",
1786
- },
1787
1754
  "name": "prod/app",
1788
1755
  "url": "https://my-fancy-website.com",
1789
1756
  },
@@ -1898,9 +1865,6 @@ jobs:
1898
1865
  "app 🛑 Stop ⚠️ | stage ": {
1899
1866
  "environment": {
1900
1867
  "action": "stop",
1901
- "kubernetes": {
1902
- "namespace": "pan-test-app-stage",
1903
- },
1904
1868
  "name": "stage/app",
1905
1869
  "url": "https://app.stage.test-app.pan.panter.cloud",
1906
1870
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@catladder/pipeline",
3
- "version": "1.111.4",
3
+ "version": "1.112.1",
4
4
  "scripts": {
5
5
  "build:tsc": "yarn tsc",
6
6
  "build": "yarn build:compile && yarn build:inline-variables && yarn build:bundle",
@@ -9,7 +9,8 @@
9
9
  "build:inline-variables": "yarn babel --keep-file-extension --extensions \".ts,.js\" --config-file ./babel-inline.json dist --out-dir dist",
10
10
  "build:watch": "yarn tsc -w",
11
11
  "lint": "eslint \"src/**/*.ts\"",
12
- "lint:fix": "eslint \"src/**/*.ts\" --fix"
12
+ "lint:fix": "eslint \"src/**/*.ts\" --fix",
13
+ "generate:gitlab-ci-yml-types": "ts-node ./scripts/generate-gitlab-ci-types.ts"
13
14
  },
14
15
  "types": "dist/index.d.ts",
15
16
  "main": "dist/index.js",
@@ -31,6 +32,7 @@
31
32
  "child-process-promise": "^2.2.1",
32
33
  "eslint": "^8.7.0",
33
34
  "js-yaml": "^4.1.0",
35
+ "json-schema-to-typescript": "^13.0.2",
34
36
  "lodash": "^4.17.21",
35
37
  "memoizee": "^0.4.15",
36
38
  "path-equal": "1.1.3",
@@ -0,0 +1,51 @@
1
+ import { compile } from "json-schema-to-typescript";
2
+ import { resolve, join } from "path";
3
+ import { existsSync } from "fs";
4
+ import { rm, writeFile } from "fs/promises";
5
+
6
+ const rootPath = resolve(__dirname, "..");
7
+ const typeOutputPath = join(rootPath, "src/types/gitlab-ci-yml.ts");
8
+
9
+ export const generateFromCurrentSchema = async () => {
10
+ const response = await fetch(
11
+ "https://gitlab.com/gitlab-org/gitlab/-/raw/master/app/assets/javascripts/editor/schema/ci.json"
12
+ );
13
+ const gitLabCiJsonSchema = await response.json();
14
+ const schema = await compile(gitLabCiJsonSchema, "GitlabCiYml", {
15
+ additionalProperties: true,
16
+ enableConstEnums: true,
17
+ declareExternallyReferenced: true,
18
+ unreachableDefinitions: true,
19
+ strictIndexSignatures: true,
20
+ unknownAny: false,
21
+ ignoreMinAndMaxItems: true,
22
+ format: true,
23
+ style: {
24
+ bracketSpacing: true,
25
+ printWidth: 100,
26
+ semi: true,
27
+ tabWidth: 2,
28
+ useTabs: false,
29
+ trailingComma: "es5",
30
+ endOfLine: "lf",
31
+ },
32
+ cwd: rootPath,
33
+ });
34
+ /**
35
+ * Remove part that failes with tsc error
36
+ * ```
37
+ * error TS2411: Property '$schema' of type 'string | undefined' is not assignable to 'string' index type 'JobTemplate1'.
38
+ * ```
39
+ */
40
+ const sanitizedSchenma = schema.replace(
41
+ // eslint-disable-next-line no-useless-escape
42
+ /export interface HttpsGitlabComGitlabCiYml \{\n[ a-zA-Z0-9?$:;\n_!"\{\}\/*@\[\],.|\(\)]*\[k\: string\]: Job;\n\}/m,
43
+ ""
44
+ );
45
+ if (existsSync(typeOutputPath)) {
46
+ await rm(typeOutputPath);
47
+ }
48
+ await writeFile(typeOutputPath, sanitizedSchenma, { encoding: "utf-8" });
49
+ };
50
+
51
+ generateFromCurrentSchema();
@@ -12,9 +12,10 @@ import {
12
12
  import { writeBuildInfo } from "./writeBuildInfo";
13
13
  import { writeDotEnv } from "./writeDotEnv";
14
14
 
15
- export const createBuildJob = (
15
+ export type AppBuildJobDefinition = Partial<CatladderJob>;
16
+ export const createAppBuildJob = (
16
17
  context: Context,
17
- { script, variables, ...def }: Partial<CatladderJob>
18
+ { script, variables, ...def }: AppBuildJobDefinition
18
19
  ): CatladderJob => {
19
20
  return merge(
20
21
  {