@catladder/pipeline 1.110.2 → 1.110.3

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 (50) hide show
  1. package/dist/build/custom/buildJob.js +4 -2
  2. package/dist/build/node/buildJob.js +4 -2
  3. package/dist/build/rails/build.js +13 -2
  4. package/dist/build/sbom.d.ts +5 -0
  5. package/dist/build/sbom.js +29 -0
  6. package/dist/bundles/catladder-gitlab/index.js +3 -3
  7. package/dist/constants.js +1 -1
  8. package/dist/deploy/base.js +38 -2
  9. package/dist/deploy/cloudRun/deployJob.js +5 -4
  10. package/dist/deploy/custom/deployJob.js +3 -2
  11. package/dist/deploy/kubernetes/deployJob.js +3 -2
  12. package/dist/deploy/sbom.d.ts +4 -0
  13. package/dist/deploy/sbom.js +17 -0
  14. package/dist/pipeline/createJobsForComponent.js +1 -3
  15. package/dist/pipeline/gitlab/createGitlabJobs.js +5 -2
  16. package/dist/tsconfig.tsbuildinfo +1 -1
  17. package/examples/__snapshots__/cloud-run-memory-limit.ts.snap +40 -96
  18. package/examples/__snapshots__/cloud-run-no-cpu-throttling.ts.snap +40 -96
  19. package/examples/__snapshots__/cloud-run-non-public.ts.snap +40 -96
  20. package/examples/__snapshots__/cloud-run-with-sql-reuse-db.ts.snap +80 -192
  21. package/examples/__snapshots__/cloud-run-with-sql.ts.snap +80 -192
  22. package/examples/__snapshots__/custom-build-job-with-tests.ts.snap +40 -96
  23. package/examples/__snapshots__/custom-build-job.ts.snap +40 -96
  24. package/examples/__snapshots__/custom-deploy.ts.snap +40 -96
  25. package/examples/__snapshots__/custom-envs.ts.snap +6 -126
  26. package/examples/__snapshots__/custom-sbom-java.ts.snap +40 -96
  27. package/examples/__snapshots__/kubernetes-application-customization.ts.snap +40 -96
  28. package/examples/__snapshots__/kubernetes-with-cloud-sql-legacy.ts.snap +40 -96
  29. package/examples/__snapshots__/kubernetes-with-cloud-sql.ts.snap +40 -96
  30. package/examples/__snapshots__/kubernetes-with-jobs.ts.snap +80 -192
  31. package/examples/__snapshots__/kubernetes-with-mongodb.ts.snap +40 -96
  32. package/examples/__snapshots__/native-app.ts.snap +72 -192
  33. package/examples/__snapshots__/node-build-with-custom-image.ts.snap +40 -96
  34. package/examples/__snapshots__/rails-k8s-with-worker.ts.snap +40 -96
  35. package/examples/__snapshots__/wait-for-other-deploy.ts.snap +64 -192
  36. package/package.json +1 -1
  37. package/src/build/custom/buildJob.ts +3 -0
  38. package/src/build/node/buildJob.ts +3 -0
  39. package/src/build/rails/build.ts +3 -0
  40. package/src/build/sbom.ts +43 -0
  41. package/src/deploy/base.ts +14 -7
  42. package/src/deploy/cloudRun/deployJob.ts +6 -0
  43. package/src/deploy/custom/deployJob.ts +9 -1
  44. package/src/deploy/kubernetes/deployJob.ts +10 -1
  45. package/src/deploy/sbom.ts +24 -0
  46. package/src/pipeline/createJobsForComponent.ts +1 -3
  47. package/src/pipeline/gitlab/createGitlabJobs.ts +6 -2
  48. package/dist/verify/reporting.d.ts +0 -3
  49. package/dist/verify/reporting.js +0 -48
  50. package/src/verify/reporting.ts +0 -69
@@ -216,6 +216,10 @@ COPY --chown=node:node .yarn /app/.yarn",
216
216
  "artifacts": false,
217
217
  "job": "www 🧪 test",
218
218
  },
219
+ {
220
+ "artifacts": true,
221
+ "job": "www 🧾 sbom | dev ",
222
+ },
219
223
  {
220
224
  "artifacts": false,
221
225
  "job": "www 🛡 audit",
@@ -236,6 +240,8 @@ COPY --chown=node:node .yarn /app/.yarn",
236
240
  "script": [
237
241
  "cd www",
238
242
  "echo 'would deploy'",
243
+ "echo Uploading SBOM to Dependency Track",
244
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "https://unknown-host.example.com" "__sbom.json" vex.json || true",
239
245
  ],
240
246
  "stage": "deploy dev",
241
247
  "variables": {
@@ -290,6 +296,8 @@ COPY --chown=node:node .yarn /app/.yarn",
290
296
  ],
291
297
  "script": [
292
298
  "echo 'would stop'",
299
+ "echo Disabling component in Dependency Track",
300
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/www" "https://unknown-host.example.com" || true",
293
301
  ],
294
302
  "stage": "stop dev",
295
303
  "variables": {
@@ -369,26 +377,6 @@ COPY --chown=node:node .yarn /app/.yarn",
369
377
  "KUBERNETES_MEMORY_REQUEST": "2Gi",
370
378
  },
371
379
  },
372
- "www 🧾 sbom upload | dev ": {
373
- "allow_failure": true,
374
- "image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
375
- "interruptible": true,
376
- "needs": [
377
- "www 🧾 sbom | dev ",
378
- ],
379
- "retry": {
380
- "max": 2,
381
- "when": [
382
- "runner_system_failure",
383
- "stuck_or_timeout_failure",
384
- ],
385
- },
386
- "script": [
387
- "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "dev" "__sbom.json" vex.json",
388
- ],
389
- "stage": "verify",
390
- "variables": {},
391
- },
392
380
  "www 🧾 sbom | dev ": {
393
381
  "allow_failure": true,
394
382
  "artifacts": {
@@ -398,9 +386,7 @@ COPY --chown=node:node .yarn /app/.yarn",
398
386
  },
399
387
  "image": "aquasec/trivy:0.38.3",
400
388
  "interruptible": true,
401
- "needs": [
402
- "www 🚀 Deploy | dev ",
403
- ],
389
+ "needs": [],
404
390
  "retry": {
405
391
  "max": 2,
406
392
  "when": [
@@ -411,7 +397,7 @@ COPY --chown=node:node .yarn /app/.yarn",
411
397
  "script": [
412
398
  "trivy fs --quiet --format cyclonedx --output "__sbom.json" www",
413
399
  ],
414
- "stage": "verify",
400
+ "stage": "build",
415
401
  "variables": {},
416
402
  },
417
403
  },
@@ -697,6 +683,10 @@ COPY --chown=node:node .yarn /app/.yarn",
697
683
  "artifacts": false,
698
684
  "job": "www 🧪 test",
699
685
  },
686
+ {
687
+ "artifacts": true,
688
+ "job": "www 🧾 sbom | review ",
689
+ },
700
690
  {
701
691
  "artifacts": false,
702
692
  "job": "www 🛡 audit",
@@ -717,6 +707,8 @@ COPY --chown=node:node .yarn /app/.yarn",
717
707
  "script": [
718
708
  "cd www",
719
709
  "echo 'would deploy'",
710
+ "echo Uploading SBOM to Dependency Track",
711
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "https://unknown-host.example.com" "__sbom.json" vex.json || true",
720
712
  ],
721
713
  "stage": "deploy review",
722
714
  "variables": {
@@ -771,6 +763,8 @@ COPY --chown=node:node .yarn /app/.yarn",
771
763
  ],
772
764
  "script": [
773
765
  "echo 'would stop'",
766
+ "echo Disabling component in Dependency Track",
767
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/www" "https://unknown-host.example.com" || true",
774
768
  ],
775
769
  "stage": "stop review",
776
770
  "variables": {
@@ -850,26 +844,6 @@ COPY --chown=node:node .yarn /app/.yarn",
850
844
  "KUBERNETES_MEMORY_REQUEST": "2Gi",
851
845
  },
852
846
  },
853
- "www 🧾 sbom upload | review ": {
854
- "allow_failure": true,
855
- "image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
856
- "interruptible": true,
857
- "needs": [
858
- "www 🧾 sbom | review ",
859
- ],
860
- "retry": {
861
- "max": 2,
862
- "when": [
863
- "runner_system_failure",
864
- "stuck_or_timeout_failure",
865
- ],
866
- },
867
- "script": [
868
- "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "review" "__sbom.json" vex.json",
869
- ],
870
- "stage": "verify",
871
- "variables": {},
872
- },
873
847
  "www 🧾 sbom | review ": {
874
848
  "allow_failure": true,
875
849
  "artifacts": {
@@ -879,9 +853,7 @@ COPY --chown=node:node .yarn /app/.yarn",
879
853
  },
880
854
  "image": "aquasec/trivy:0.38.3",
881
855
  "interruptible": true,
882
- "needs": [
883
- "www 🚀 Deploy | review ",
884
- ],
856
+ "needs": [],
885
857
  "retry": {
886
858
  "max": 2,
887
859
  "when": [
@@ -892,7 +864,7 @@ COPY --chown=node:node .yarn /app/.yarn",
892
864
  "script": [
893
865
  "trivy fs --quiet --format cyclonedx --output "__sbom.json" www",
894
866
  ],
895
- "stage": "verify",
867
+ "stage": "build",
896
868
  "variables": {},
897
869
  },
898
870
  },
@@ -1267,6 +1239,10 @@ COPY --chown=node:node .yarn /app/.yarn",
1267
1239
  "artifacts": false,
1268
1240
  "job": "www 🔨 docker | prod ",
1269
1241
  },
1242
+ {
1243
+ "artifacts": true,
1244
+ "job": "www 🧾 sbom | prod ",
1245
+ },
1270
1246
  ],
1271
1247
  "retry": {
1272
1248
  "max": 2,
@@ -1283,6 +1259,8 @@ COPY --chown=node:node .yarn /app/.yarn",
1283
1259
  "script": [
1284
1260
  "cd www",
1285
1261
  "echo 'would deploy'",
1262
+ "echo Uploading SBOM to Dependency Track",
1263
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "https://unknown-host.example.com" "__sbom.json" vex.json || true",
1286
1264
  ],
1287
1265
  "stage": "deploy prod",
1288
1266
  "variables": {
@@ -1328,6 +1306,10 @@ COPY --chown=node:node .yarn /app/.yarn",
1328
1306
  "artifacts": false,
1329
1307
  "job": "www 🔨 docker | stage ",
1330
1308
  },
1309
+ {
1310
+ "artifacts": true,
1311
+ "job": "www 🧾 sbom | stage ",
1312
+ },
1331
1313
  ],
1332
1314
  "retry": {
1333
1315
  "max": 2,
@@ -1344,6 +1326,8 @@ COPY --chown=node:node .yarn /app/.yarn",
1344
1326
  "script": [
1345
1327
  "cd www",
1346
1328
  "echo 'would deploy'",
1329
+ "echo Uploading SBOM to Dependency Track",
1330
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "https://unknown-host.example.com" "__sbom.json" vex.json || true",
1347
1331
  ],
1348
1332
  "stage": "deploy stage",
1349
1333
  "variables": {
@@ -1398,6 +1382,8 @@ COPY --chown=node:node .yarn /app/.yarn",
1398
1382
  ],
1399
1383
  "script": [
1400
1384
  "echo 'would stop'",
1385
+ "echo Disabling component in Dependency Track",
1386
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/www" "https://unknown-host.example.com" || true",
1401
1387
  ],
1402
1388
  "stage": "stop prod",
1403
1389
  "variables": {
@@ -1438,6 +1424,8 @@ COPY --chown=node:node .yarn /app/.yarn",
1438
1424
  ],
1439
1425
  "script": [
1440
1426
  "echo 'would stop'",
1427
+ "echo Disabling component in Dependency Track",
1428
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/www" "https://unknown-host.example.com" || true",
1441
1429
  ],
1442
1430
  "stage": "stop stage",
1443
1431
  "variables": {
@@ -1449,46 +1437,6 @@ COPY --chown=node:node .yarn /app/.yarn",
1449
1437
  "KUBERNETES_MEMORY_REQUEST": "200Mi",
1450
1438
  },
1451
1439
  },
1452
- "www 🧾 sbom upload | prod ": {
1453
- "allow_failure": true,
1454
- "image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
1455
- "interruptible": true,
1456
- "needs": [
1457
- "www 🧾 sbom | prod ",
1458
- ],
1459
- "retry": {
1460
- "max": 2,
1461
- "when": [
1462
- "runner_system_failure",
1463
- "stuck_or_timeout_failure",
1464
- ],
1465
- },
1466
- "script": [
1467
- "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "prod" "__sbom.json" vex.json",
1468
- ],
1469
- "stage": "verify",
1470
- "variables": {},
1471
- },
1472
- "www 🧾 sbom upload | stage ": {
1473
- "allow_failure": true,
1474
- "image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
1475
- "interruptible": true,
1476
- "needs": [
1477
- "www 🧾 sbom | stage ",
1478
- ],
1479
- "retry": {
1480
- "max": 2,
1481
- "when": [
1482
- "runner_system_failure",
1483
- "stuck_or_timeout_failure",
1484
- ],
1485
- },
1486
- "script": [
1487
- "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "stage" "__sbom.json" vex.json",
1488
- ],
1489
- "stage": "verify",
1490
- "variables": {},
1491
- },
1492
1440
  "www 🧾 sbom | prod ": {
1493
1441
  "allow_failure": true,
1494
1442
  "artifacts": {
@@ -1498,9 +1446,7 @@ COPY --chown=node:node .yarn /app/.yarn",
1498
1446
  },
1499
1447
  "image": "aquasec/trivy:0.38.3",
1500
1448
  "interruptible": true,
1501
- "needs": [
1502
- "www 🚀 Deploy | prod ",
1503
- ],
1449
+ "needs": [],
1504
1450
  "retry": {
1505
1451
  "max": 2,
1506
1452
  "when": [
@@ -1511,7 +1457,7 @@ COPY --chown=node:node .yarn /app/.yarn",
1511
1457
  "script": [
1512
1458
  "trivy fs --quiet --format cyclonedx --output "__sbom.json" www",
1513
1459
  ],
1514
- "stage": "verify",
1460
+ "stage": "build",
1515
1461
  "variables": {},
1516
1462
  },
1517
1463
  "www 🧾 sbom | stage ": {
@@ -1523,9 +1469,7 @@ COPY --chown=node:node .yarn /app/.yarn",
1523
1469
  },
1524
1470
  "image": "aquasec/trivy:0.38.3",
1525
1471
  "interruptible": true,
1526
- "needs": [
1527
- "www 🚀 Deploy | stage ",
1528
- ],
1472
+ "needs": [],
1529
1473
  "retry": {
1530
1474
  "max": 2,
1531
1475
  "when": [
@@ -1536,7 +1480,7 @@ COPY --chown=node:node .yarn /app/.yarn",
1536
1480
  "script": [
1537
1481
  "trivy fs --quiet --format cyclonedx --output "__sbom.json" www",
1538
1482
  ],
1539
- "stage": "verify",
1483
+ "stage": "build",
1540
1484
  "variables": {},
1541
1485
  },
1542
1486
  },
@@ -329,66 +329,6 @@ exports[`matches snapshot 1`] = `
329
329
  "KUBERNETES_MEMORY_REQUEST": "2Gi",
330
330
  },
331
331
  },
332
- "api 🧾 sbom upload | asdf ": {
333
- "allow_failure": true,
334
- "image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
335
- "interruptible": true,
336
- "needs": [
337
- "api 🧾 sbom | asdf ",
338
- ],
339
- "retry": {
340
- "max": 2,
341
- "when": [
342
- "runner_system_failure",
343
- "stuck_or_timeout_failure",
344
- ],
345
- },
346
- "script": [
347
- "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "asdf" "__sbom.json" vex.json",
348
- ],
349
- "stage": "verify",
350
- "variables": {},
351
- },
352
- "api 🧾 sbom upload | bla ": {
353
- "allow_failure": true,
354
- "image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
355
- "interruptible": true,
356
- "needs": [
357
- "api 🧾 sbom | bla ",
358
- ],
359
- "retry": {
360
- "max": 2,
361
- "when": [
362
- "runner_system_failure",
363
- "stuck_or_timeout_failure",
364
- ],
365
- },
366
- "script": [
367
- "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "bla" "__sbom.json" vex.json",
368
- ],
369
- "stage": "verify",
370
- "variables": {},
371
- },
372
- "api 🧾 sbom upload | dev ": {
373
- "allow_failure": true,
374
- "image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
375
- "interruptible": true,
376
- "needs": [
377
- "api 🧾 sbom | dev ",
378
- ],
379
- "retry": {
380
- "max": 2,
381
- "when": [
382
- "runner_system_failure",
383
- "stuck_or_timeout_failure",
384
- ],
385
- },
386
- "script": [
387
- "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "dev" "__sbom.json" vex.json",
388
- ],
389
- "stage": "verify",
390
- "variables": {},
391
- },
392
332
  "api 🧾 sbom | asdf ": {
393
333
  "allow_failure": true,
394
334
  "artifacts": {
@@ -409,7 +349,7 @@ exports[`matches snapshot 1`] = `
409
349
  "script": [
410
350
  "trivy fs --quiet --format cyclonedx --output "__sbom.json" api",
411
351
  ],
412
- "stage": "verify",
352
+ "stage": "build",
413
353
  "variables": {},
414
354
  },
415
355
  "api 🧾 sbom | bla ": {
@@ -432,7 +372,7 @@ exports[`matches snapshot 1`] = `
432
372
  "script": [
433
373
  "trivy fs --quiet --format cyclonedx --output "__sbom.json" api",
434
374
  ],
435
- "stage": "verify",
375
+ "stage": "build",
436
376
  "variables": {},
437
377
  },
438
378
  "api 🧾 sbom | dev ": {
@@ -455,7 +395,7 @@ exports[`matches snapshot 1`] = `
455
395
  "script": [
456
396
  "trivy fs --quiet --format cyclonedx --output "__sbom.json" api",
457
397
  ],
458
- "stage": "verify",
398
+ "stage": "build",
459
399
  "variables": {},
460
400
  },
461
401
  },
@@ -726,26 +666,6 @@ exports[`matches snapshot 1`] = `
726
666
  "KUBERNETES_MEMORY_REQUEST": "2Gi",
727
667
  },
728
668
  },
729
- "api 🧾 sbom upload | review ": {
730
- "allow_failure": true,
731
- "image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
732
- "interruptible": true,
733
- "needs": [
734
- "api 🧾 sbom | review ",
735
- ],
736
- "retry": {
737
- "max": 2,
738
- "when": [
739
- "runner_system_failure",
740
- "stuck_or_timeout_failure",
741
- ],
742
- },
743
- "script": [
744
- "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "review" "__sbom.json" vex.json",
745
- ],
746
- "stage": "verify",
747
- "variables": {},
748
- },
749
669
  "api 🧾 sbom | review ": {
750
670
  "allow_failure": true,
751
671
  "artifacts": {
@@ -766,7 +686,7 @@ exports[`matches snapshot 1`] = `
766
686
  "script": [
767
687
  "trivy fs --quiet --format cyclonedx --output "__sbom.json" api",
768
688
  ],
769
- "stage": "verify",
689
+ "stage": "build",
770
690
  "variables": {},
771
691
  },
772
692
  },
@@ -997,46 +917,6 @@ exports[`matches snapshot 1`] = `
997
917
  "_ALL_ENV_VAR_KEYS": "["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOST","ROOT_URL"]",
998
918
  },
999
919
  },
1000
- "api 🧾 sbom upload | prod ": {
1001
- "allow_failure": true,
1002
- "image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
1003
- "interruptible": true,
1004
- "needs": [
1005
- "api 🧾 sbom | prod ",
1006
- ],
1007
- "retry": {
1008
- "max": 2,
1009
- "when": [
1010
- "runner_system_failure",
1011
- "stuck_or_timeout_failure",
1012
- ],
1013
- },
1014
- "script": [
1015
- "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "prod" "__sbom.json" vex.json",
1016
- ],
1017
- "stage": "verify",
1018
- "variables": {},
1019
- },
1020
- "api 🧾 sbom upload | stage ": {
1021
- "allow_failure": true,
1022
- "image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
1023
- "interruptible": true,
1024
- "needs": [
1025
- "api 🧾 sbom | stage ",
1026
- ],
1027
- "retry": {
1028
- "max": 2,
1029
- "when": [
1030
- "runner_system_failure",
1031
- "stuck_or_timeout_failure",
1032
- ],
1033
- },
1034
- "script": [
1035
- "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "stage" "__sbom.json" vex.json",
1036
- ],
1037
- "stage": "verify",
1038
- "variables": {},
1039
- },
1040
920
  "api 🧾 sbom | prod ": {
1041
921
  "allow_failure": true,
1042
922
  "artifacts": {
@@ -1057,7 +937,7 @@ exports[`matches snapshot 1`] = `
1057
937
  "script": [
1058
938
  "trivy fs --quiet --format cyclonedx --output "__sbom.json" api",
1059
939
  ],
1060
- "stage": "verify",
940
+ "stage": "build",
1061
941
  "variables": {},
1062
942
  },
1063
943
  "api 🧾 sbom | stage ": {
@@ -1080,7 +960,7 @@ exports[`matches snapshot 1`] = `
1080
960
  "script": [
1081
961
  "trivy fs --quiet --format cyclonedx --output "__sbom.json" api",
1082
962
  ],
1083
- "stage": "verify",
963
+ "stage": "build",
1084
964
  "variables": {},
1085
965
  },
1086
966
  },