@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
@@ -319,6 +319,10 @@ COPY --chown=node:node .yarn /app/.yarn",
319
319
  "artifacts": false,
320
320
  "job": "api 🧪 test",
321
321
  },
322
+ {
323
+ "artifacts": true,
324
+ "job": "api 🧾 sbom | dev ",
325
+ },
322
326
  {
323
327
  "artifacts": false,
324
328
  "job": "api 🛡 audit",
@@ -343,6 +347,8 @@ COPY --chown=node:node .yarn /app/.yarn",
343
347
  "kubectl config use-context "kube-pan-test-app-dev-api"",
344
348
  "kubernetesCreateSecret",
345
349
  "kubernetesDeploy",
350
+ "echo Uploading SBOM to Dependency Track",
351
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "https://api.dev.test-app.pan.panter.cloud" "__sbom.json" vex.json || true",
346
352
  "echo deployment successful 😻",
347
353
  ],
348
354
  "stage": "deploy dev",
@@ -451,6 +457,8 @@ cronjobs:
451
457
  "kubectl config set-context "kube-pan-test-app-dev-api" --cluster="kube-pan-test-app-dev-api" --user="kube-pan-test-app-dev-api" --namespace="pan-test-app-dev"",
452
458
  "kubectl config use-context "kube-pan-test-app-dev-api"",
453
459
  "kubernetesDelete",
460
+ "echo Disabling component in Dependency Track",
461
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/api" "https://api.dev.test-app.pan.panter.cloud" || true",
454
462
  ],
455
463
  "stage": "stop dev",
456
464
  "variables": {
@@ -585,26 +593,6 @@ cronjobs:
585
593
  "KUBERNETES_MEMORY_REQUEST": "2Gi",
586
594
  },
587
595
  },
588
- "api 🧾 sbom upload | dev ": {
589
- "allow_failure": true,
590
- "image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
591
- "interruptible": true,
592
- "needs": [
593
- "api 🧾 sbom | dev ",
594
- ],
595
- "retry": {
596
- "max": 2,
597
- "when": [
598
- "runner_system_failure",
599
- "stuck_or_timeout_failure",
600
- ],
601
- },
602
- "script": [
603
- "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "dev" "__sbom.json" vex.json",
604
- ],
605
- "stage": "verify",
606
- "variables": {},
607
- },
608
596
  "api 🧾 sbom | dev ": {
609
597
  "allow_failure": true,
610
598
  "artifacts": {
@@ -614,9 +602,7 @@ cronjobs:
614
602
  },
615
603
  "image": "aquasec/trivy:0.38.3",
616
604
  "interruptible": true,
617
- "needs": [
618
- "api 🚀 Deploy | dev ",
619
- ],
605
+ "needs": [],
620
606
  "retry": {
621
607
  "max": 2,
622
608
  "when": [
@@ -627,7 +613,7 @@ cronjobs:
627
613
  "script": [
628
614
  "trivy fs --quiet --format cyclonedx --output "__sbom.json" api",
629
615
  ],
630
- "stage": "verify",
616
+ "stage": "build",
631
617
  "variables": {},
632
618
  },
633
619
  "www ↩️ Rollback ⚠️ | dev ": {
@@ -937,6 +923,10 @@ COPY --chown=node:node .yarn /app/.yarn",
937
923
  "artifacts": false,
938
924
  "job": "www 🧪 test",
939
925
  },
926
+ {
927
+ "artifacts": true,
928
+ "job": "www 🧾 sbom | dev ",
929
+ },
940
930
  {
941
931
  "artifacts": false,
942
932
  "job": "www 🛡 audit",
@@ -961,6 +951,8 @@ COPY --chown=node:node .yarn /app/.yarn",
961
951
  "kubectl config use-context "kube-pan-test-app-dev-www"",
962
952
  "kubernetesCreateSecret",
963
953
  "kubernetesDeploy",
954
+ "echo Uploading SBOM to Dependency Track",
955
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "https://www.dev.test-app.pan.panter.cloud" "__sbom.json" vex.json || true",
964
956
  "echo deployment successful 😻",
965
957
  ],
966
958
  "stage": "deploy dev",
@@ -1062,6 +1054,8 @@ application:
1062
1054
  "kubectl config set-context "kube-pan-test-app-dev-www" --cluster="kube-pan-test-app-dev-www" --user="kube-pan-test-app-dev-www" --namespace="pan-test-app-dev"",
1063
1055
  "kubectl config use-context "kube-pan-test-app-dev-www"",
1064
1056
  "kubernetesDelete",
1057
+ "echo Disabling component in Dependency Track",
1058
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/www" "https://www.dev.test-app.pan.panter.cloud" || true",
1065
1059
  ],
1066
1060
  "stage": "stop dev",
1067
1061
  "variables": {
@@ -1189,26 +1183,6 @@ application:
1189
1183
  "KUBERNETES_MEMORY_REQUEST": "2Gi",
1190
1184
  },
1191
1185
  },
1192
- "www 🧾 sbom upload | dev ": {
1193
- "allow_failure": true,
1194
- "image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
1195
- "interruptible": true,
1196
- "needs": [
1197
- "www 🧾 sbom | dev ",
1198
- ],
1199
- "retry": {
1200
- "max": 2,
1201
- "when": [
1202
- "runner_system_failure",
1203
- "stuck_or_timeout_failure",
1204
- ],
1205
- },
1206
- "script": [
1207
- "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "dev" "__sbom.json" vex.json",
1208
- ],
1209
- "stage": "verify",
1210
- "variables": {},
1211
- },
1212
1186
  "www 🧾 sbom | dev ": {
1213
1187
  "allow_failure": true,
1214
1188
  "artifacts": {
@@ -1218,9 +1192,7 @@ application:
1218
1192
  },
1219
1193
  "image": "aquasec/trivy:0.38.3",
1220
1194
  "interruptible": true,
1221
- "needs": [
1222
- "www 🚀 Deploy | dev ",
1223
- ],
1195
+ "needs": [],
1224
1196
  "retry": {
1225
1197
  "max": 2,
1226
1198
  "when": [
@@ -1231,7 +1203,7 @@ application:
1231
1203
  "script": [
1232
1204
  "trivy fs --quiet --format cyclonedx --output "__sbom.json" www",
1233
1205
  ],
1234
- "stage": "verify",
1206
+ "stage": "build",
1235
1207
  "variables": {},
1236
1208
  },
1237
1209
  },
@@ -1617,6 +1589,10 @@ COPY --chown=node:node .yarn /app/.yarn",
1617
1589
  "artifacts": false,
1618
1590
  "job": "api 🧪 test",
1619
1591
  },
1592
+ {
1593
+ "artifacts": true,
1594
+ "job": "api 🧾 sbom | review ",
1595
+ },
1620
1596
  {
1621
1597
  "artifacts": false,
1622
1598
  "job": "api 🛡 audit",
@@ -1641,6 +1617,8 @@ COPY --chown=node:node .yarn /app/.yarn",
1641
1617
  "kubectl config use-context "kube-pan-test-app-review-mr1234-api"",
1642
1618
  "kubernetesCreateSecret",
1643
1619
  "kubernetesDeploy",
1620
+ "echo Uploading SBOM to Dependency Track",
1621
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "https://api.mr1234.review.test-app.pan.panter.cloud" "__sbom.json" vex.json || true",
1644
1622
  "echo deployment successful 😻",
1645
1623
  ],
1646
1624
  "stage": "deploy review",
@@ -1746,6 +1724,8 @@ cronjobs: {}
1746
1724
  "kubectl config set-context "kube-pan-test-app-review-mr1234-api" --cluster="kube-pan-test-app-review-mr1234-api" --user="kube-pan-test-app-review-mr1234-api" --namespace="pan-test-app-review"",
1747
1725
  "kubectl config use-context "kube-pan-test-app-review-mr1234-api"",
1748
1726
  "kubernetesDelete",
1727
+ "echo Disabling component in Dependency Track",
1728
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/api" "https://api.mr1234.review.test-app.pan.panter.cloud" || true",
1749
1729
  ],
1750
1730
  "stage": "stop review",
1751
1731
  "variables": {
@@ -1877,26 +1857,6 @@ cronjobs: {}
1877
1857
  "KUBERNETES_MEMORY_REQUEST": "2Gi",
1878
1858
  },
1879
1859
  },
1880
- "api 🧾 sbom upload | review ": {
1881
- "allow_failure": true,
1882
- "image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
1883
- "interruptible": true,
1884
- "needs": [
1885
- "api 🧾 sbom | review ",
1886
- ],
1887
- "retry": {
1888
- "max": 2,
1889
- "when": [
1890
- "runner_system_failure",
1891
- "stuck_or_timeout_failure",
1892
- ],
1893
- },
1894
- "script": [
1895
- "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "review" "__sbom.json" vex.json",
1896
- ],
1897
- "stage": "verify",
1898
- "variables": {},
1899
- },
1900
1860
  "api 🧾 sbom | review ": {
1901
1861
  "allow_failure": true,
1902
1862
  "artifacts": {
@@ -1906,9 +1866,7 @@ cronjobs: {}
1906
1866
  },
1907
1867
  "image": "aquasec/trivy:0.38.3",
1908
1868
  "interruptible": true,
1909
- "needs": [
1910
- "api 🚀 Deploy | review ",
1911
- ],
1869
+ "needs": [],
1912
1870
  "retry": {
1913
1871
  "max": 2,
1914
1872
  "when": [
@@ -1919,7 +1877,7 @@ cronjobs: {}
1919
1877
  "script": [
1920
1878
  "trivy fs --quiet --format cyclonedx --output "__sbom.json" api",
1921
1879
  ],
1922
- "stage": "verify",
1880
+ "stage": "build",
1923
1881
  "variables": {},
1924
1882
  },
1925
1883
  "www ↩️ Rollback ⚠️ | review ": {
@@ -2229,6 +2187,10 @@ COPY --chown=node:node .yarn /app/.yarn",
2229
2187
  "artifacts": false,
2230
2188
  "job": "www 🧪 test",
2231
2189
  },
2190
+ {
2191
+ "artifacts": true,
2192
+ "job": "www 🧾 sbom | review ",
2193
+ },
2232
2194
  {
2233
2195
  "artifacts": false,
2234
2196
  "job": "www 🛡 audit",
@@ -2253,6 +2215,8 @@ COPY --chown=node:node .yarn /app/.yarn",
2253
2215
  "kubectl config use-context "kube-pan-test-app-review-mr1234-www"",
2254
2216
  "kubernetesCreateSecret",
2255
2217
  "kubernetesDeploy",
2218
+ "echo Uploading SBOM to Dependency Track",
2219
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "https://www.mr1234.review.test-app.pan.panter.cloud" "__sbom.json" vex.json || true",
2256
2220
  "echo deployment successful 😻",
2257
2221
  ],
2258
2222
  "stage": "deploy review",
@@ -2354,6 +2318,8 @@ application:
2354
2318
  "kubectl config set-context "kube-pan-test-app-review-mr1234-www" --cluster="kube-pan-test-app-review-mr1234-www" --user="kube-pan-test-app-review-mr1234-www" --namespace="pan-test-app-review"",
2355
2319
  "kubectl config use-context "kube-pan-test-app-review-mr1234-www"",
2356
2320
  "kubernetesDelete",
2321
+ "echo Disabling component in Dependency Track",
2322
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/www" "https://www.mr1234.review.test-app.pan.panter.cloud" || true",
2357
2323
  ],
2358
2324
  "stage": "stop review",
2359
2325
  "variables": {
@@ -2481,26 +2447,6 @@ application:
2481
2447
  "KUBERNETES_MEMORY_REQUEST": "2Gi",
2482
2448
  },
2483
2449
  },
2484
- "www 🧾 sbom upload | review ": {
2485
- "allow_failure": true,
2486
- "image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
2487
- "interruptible": true,
2488
- "needs": [
2489
- "www 🧾 sbom | review ",
2490
- ],
2491
- "retry": {
2492
- "max": 2,
2493
- "when": [
2494
- "runner_system_failure",
2495
- "stuck_or_timeout_failure",
2496
- ],
2497
- },
2498
- "script": [
2499
- "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "review" "__sbom.json" vex.json",
2500
- ],
2501
- "stage": "verify",
2502
- "variables": {},
2503
- },
2504
2450
  "www 🧾 sbom | review ": {
2505
2451
  "allow_failure": true,
2506
2452
  "artifacts": {
@@ -2510,9 +2456,7 @@ application:
2510
2456
  },
2511
2457
  "image": "aquasec/trivy:0.38.3",
2512
2458
  "interruptible": true,
2513
- "needs": [
2514
- "www 🚀 Deploy | review ",
2515
- ],
2459
+ "needs": [],
2516
2460
  "retry": {
2517
2461
  "max": 2,
2518
2462
  "when": [
@@ -2523,7 +2467,7 @@ application:
2523
2467
  "script": [
2524
2468
  "trivy fs --quiet --format cyclonedx --output "__sbom.json" www",
2525
2469
  ],
2526
- "stage": "verify",
2470
+ "stage": "build",
2527
2471
  "variables": {},
2528
2472
  },
2529
2473
  },
@@ -3102,6 +3046,10 @@ COPY --chown=node:node .yarn /app/.yarn",
3102
3046
  "artifacts": false,
3103
3047
  "job": "api 🔨 docker | prod ",
3104
3048
  },
3049
+ {
3050
+ "artifacts": true,
3051
+ "job": "api 🧾 sbom | prod ",
3052
+ },
3105
3053
  ],
3106
3054
  "retry": {
3107
3055
  "max": 2,
@@ -3122,6 +3070,8 @@ COPY --chown=node:node .yarn /app/.yarn",
3122
3070
  "kubectl config use-context "kube-pan-test-app-prod-api"",
3123
3071
  "kubernetesCreateSecret",
3124
3072
  "kubernetesDeploy",
3073
+ "echo Uploading SBOM to Dependency Track",
3074
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "https://api.prod.test-app.pan.panter.cloud" "__sbom.json" vex.json || true",
3125
3075
  "echo deployment successful 😻",
3126
3076
  ],
3127
3077
  "stage": "deploy prod",
@@ -3216,6 +3166,10 @@ cronjobs:
3216
3166
  "artifacts": false,
3217
3167
  "job": "api 🔨 docker | stage ",
3218
3168
  },
3169
+ {
3170
+ "artifacts": true,
3171
+ "job": "api 🧾 sbom | stage ",
3172
+ },
3219
3173
  ],
3220
3174
  "retry": {
3221
3175
  "max": 2,
@@ -3236,6 +3190,8 @@ cronjobs:
3236
3190
  "kubectl config use-context "kube-pan-test-app-stage-api"",
3237
3191
  "kubernetesCreateSecret",
3238
3192
  "kubernetesDeploy",
3193
+ "echo Uploading SBOM to Dependency Track",
3194
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "https://api.stage.test-app.pan.panter.cloud" "__sbom.json" vex.json || true",
3239
3195
  "echo deployment successful 😻",
3240
3196
  ],
3241
3197
  "stage": "deploy stage",
@@ -3344,6 +3300,8 @@ cronjobs:
3344
3300
  "kubectl config set-context "kube-pan-test-app-prod-api" --cluster="kube-pan-test-app-prod-api" --user="kube-pan-test-app-prod-api" --namespace="pan-test-app-prod"",
3345
3301
  "kubectl config use-context "kube-pan-test-app-prod-api"",
3346
3302
  "kubernetesDelete",
3303
+ "echo Disabling component in Dependency Track",
3304
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/api" "https://api.prod.test-app.pan.panter.cloud" || true",
3347
3305
  ],
3348
3306
  "stage": "stop prod",
3349
3307
  "variables": {
@@ -3446,6 +3404,8 @@ cronjobs:
3446
3404
  "kubectl config set-context "kube-pan-test-app-stage-api" --cluster="kube-pan-test-app-stage-api" --user="kube-pan-test-app-stage-api" --namespace="pan-test-app-stage"",
3447
3405
  "kubectl config use-context "kube-pan-test-app-stage-api"",
3448
3406
  "kubernetesDelete",
3407
+ "echo Disabling component in Dependency Track",
3408
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/api" "https://api.stage.test-app.pan.panter.cloud" || true",
3449
3409
  ],
3450
3410
  "stage": "stop stage",
3451
3411
  "variables": {
@@ -3512,46 +3472,6 @@ cronjobs:
3512
3472
  "_ALL_ENV_VAR_KEYS": "["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOST","ROOT_URL","KUBE_NAMESPACE","KUBE_APP_NAME","KUBE_APP_NAME_PREFIX","HOST_CANONICAL"]",
3513
3473
  },
3514
3474
  },
3515
- "api 🧾 sbom upload | prod ": {
3516
- "allow_failure": true,
3517
- "image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
3518
- "interruptible": true,
3519
- "needs": [
3520
- "api 🧾 sbom | prod ",
3521
- ],
3522
- "retry": {
3523
- "max": 2,
3524
- "when": [
3525
- "runner_system_failure",
3526
- "stuck_or_timeout_failure",
3527
- ],
3528
- },
3529
- "script": [
3530
- "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "prod" "__sbom.json" vex.json",
3531
- ],
3532
- "stage": "verify",
3533
- "variables": {},
3534
- },
3535
- "api 🧾 sbom upload | stage ": {
3536
- "allow_failure": true,
3537
- "image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
3538
- "interruptible": true,
3539
- "needs": [
3540
- "api 🧾 sbom | stage ",
3541
- ],
3542
- "retry": {
3543
- "max": 2,
3544
- "when": [
3545
- "runner_system_failure",
3546
- "stuck_or_timeout_failure",
3547
- ],
3548
- },
3549
- "script": [
3550
- "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "stage" "__sbom.json" vex.json",
3551
- ],
3552
- "stage": "verify",
3553
- "variables": {},
3554
- },
3555
3475
  "api 🧾 sbom | prod ": {
3556
3476
  "allow_failure": true,
3557
3477
  "artifacts": {
@@ -3561,9 +3481,7 @@ cronjobs:
3561
3481
  },
3562
3482
  "image": "aquasec/trivy:0.38.3",
3563
3483
  "interruptible": true,
3564
- "needs": [
3565
- "api 🚀 Deploy | prod ",
3566
- ],
3484
+ "needs": [],
3567
3485
  "retry": {
3568
3486
  "max": 2,
3569
3487
  "when": [
@@ -3574,7 +3492,7 @@ cronjobs:
3574
3492
  "script": [
3575
3493
  "trivy fs --quiet --format cyclonedx --output "__sbom.json" api",
3576
3494
  ],
3577
- "stage": "verify",
3495
+ "stage": "build",
3578
3496
  "variables": {},
3579
3497
  },
3580
3498
  "api 🧾 sbom | stage ": {
@@ -3586,9 +3504,7 @@ cronjobs:
3586
3504
  },
3587
3505
  "image": "aquasec/trivy:0.38.3",
3588
3506
  "interruptible": true,
3589
- "needs": [
3590
- "api 🚀 Deploy | stage ",
3591
- ],
3507
+ "needs": [],
3592
3508
  "retry": {
3593
3509
  "max": 2,
3594
3510
  "when": [
@@ -3599,7 +3515,7 @@ cronjobs:
3599
3515
  "script": [
3600
3516
  "trivy fs --quiet --format cyclonedx --output "__sbom.json" api",
3601
3517
  ],
3602
- "stage": "verify",
3518
+ "stage": "build",
3603
3519
  "variables": {},
3604
3520
  },
3605
3521
  "www ↩️ Rollback ⚠️ | prod ": {
@@ -4092,6 +4008,10 @@ COPY --chown=node:node .yarn /app/.yarn",
4092
4008
  "artifacts": false,
4093
4009
  "job": "www 🔨 docker | prod ",
4094
4010
  },
4011
+ {
4012
+ "artifacts": true,
4013
+ "job": "www 🧾 sbom | prod ",
4014
+ },
4095
4015
  ],
4096
4016
  "retry": {
4097
4017
  "max": 2,
@@ -4112,6 +4032,8 @@ COPY --chown=node:node .yarn /app/.yarn",
4112
4032
  "kubectl config use-context "kube-pan-test-app-prod-www"",
4113
4033
  "kubernetesCreateSecret",
4114
4034
  "kubernetesDeploy",
4035
+ "echo Uploading SBOM to Dependency Track",
4036
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "https://www.prod.test-app.pan.panter.cloud" "__sbom.json" vex.json || true",
4115
4037
  "echo deployment successful 😻",
4116
4038
  ],
4117
4039
  "stage": "deploy prod",
@@ -4199,6 +4121,10 @@ application:
4199
4121
  "artifacts": false,
4200
4122
  "job": "www 🔨 docker | stage ",
4201
4123
  },
4124
+ {
4125
+ "artifacts": true,
4126
+ "job": "www 🧾 sbom | stage ",
4127
+ },
4202
4128
  ],
4203
4129
  "retry": {
4204
4130
  "max": 2,
@@ -4219,6 +4145,8 @@ application:
4219
4145
  "kubectl config use-context "kube-pan-test-app-stage-www"",
4220
4146
  "kubernetesCreateSecret",
4221
4147
  "kubernetesDeploy",
4148
+ "echo Uploading SBOM to Dependency Track",
4149
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "https://www.stage.test-app.pan.panter.cloud" "__sbom.json" vex.json || true",
4222
4150
  "echo deployment successful 😻",
4223
4151
  ],
4224
4152
  "stage": "deploy stage",
@@ -4320,6 +4248,8 @@ application:
4320
4248
  "kubectl config set-context "kube-pan-test-app-prod-www" --cluster="kube-pan-test-app-prod-www" --user="kube-pan-test-app-prod-www" --namespace="pan-test-app-prod"",
4321
4249
  "kubectl config use-context "kube-pan-test-app-prod-www"",
4322
4250
  "kubernetesDelete",
4251
+ "echo Disabling component in Dependency Track",
4252
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/www" "https://www.prod.test-app.pan.panter.cloud" || true",
4323
4253
  ],
4324
4254
  "stage": "stop prod",
4325
4255
  "variables": {
@@ -4415,6 +4345,8 @@ application:
4415
4345
  "kubectl config set-context "kube-pan-test-app-stage-www" --cluster="kube-pan-test-app-stage-www" --user="kube-pan-test-app-stage-www" --namespace="pan-test-app-stage"",
4416
4346
  "kubectl config use-context "kube-pan-test-app-stage-www"",
4417
4347
  "kubernetesDelete",
4348
+ "echo Disabling component in Dependency Track",
4349
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/www" "https://www.stage.test-app.pan.panter.cloud" || true",
4418
4350
  ],
4419
4351
  "stage": "stop stage",
4420
4352
  "variables": {
@@ -4474,46 +4406,6 @@ application:
4474
4406
  "_ALL_ENV_VAR_KEYS": "["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOST","ROOT_URL","KUBE_NAMESPACE","KUBE_APP_NAME","KUBE_APP_NAME_PREFIX","HOST_CANONICAL"]",
4475
4407
  },
4476
4408
  },
4477
- "www 🧾 sbom upload | prod ": {
4478
- "allow_failure": true,
4479
- "image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
4480
- "interruptible": true,
4481
- "needs": [
4482
- "www 🧾 sbom | prod ",
4483
- ],
4484
- "retry": {
4485
- "max": 2,
4486
- "when": [
4487
- "runner_system_failure",
4488
- "stuck_or_timeout_failure",
4489
- ],
4490
- },
4491
- "script": [
4492
- "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "prod" "__sbom.json" vex.json",
4493
- ],
4494
- "stage": "verify",
4495
- "variables": {},
4496
- },
4497
- "www 🧾 sbom upload | stage ": {
4498
- "allow_failure": true,
4499
- "image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
4500
- "interruptible": true,
4501
- "needs": [
4502
- "www 🧾 sbom | stage ",
4503
- ],
4504
- "retry": {
4505
- "max": 2,
4506
- "when": [
4507
- "runner_system_failure",
4508
- "stuck_or_timeout_failure",
4509
- ],
4510
- },
4511
- "script": [
4512
- "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "stage" "__sbom.json" vex.json",
4513
- ],
4514
- "stage": "verify",
4515
- "variables": {},
4516
- },
4517
4409
  "www 🧾 sbom | prod ": {
4518
4410
  "allow_failure": true,
4519
4411
  "artifacts": {
@@ -4523,9 +4415,7 @@ application:
4523
4415
  },
4524
4416
  "image": "aquasec/trivy:0.38.3",
4525
4417
  "interruptible": true,
4526
- "needs": [
4527
- "www 🚀 Deploy | prod ",
4528
- ],
4418
+ "needs": [],
4529
4419
  "retry": {
4530
4420
  "max": 2,
4531
4421
  "when": [
@@ -4536,7 +4426,7 @@ application:
4536
4426
  "script": [
4537
4427
  "trivy fs --quiet --format cyclonedx --output "__sbom.json" www",
4538
4428
  ],
4539
- "stage": "verify",
4429
+ "stage": "build",
4540
4430
  "variables": {},
4541
4431
  },
4542
4432
  "www 🧾 sbom | stage ": {
@@ -4548,9 +4438,7 @@ application:
4548
4438
  },
4549
4439
  "image": "aquasec/trivy:0.38.3",
4550
4440
  "interruptible": true,
4551
- "needs": [
4552
- "www 🚀 Deploy | stage ",
4553
- ],
4441
+ "needs": [],
4554
4442
  "retry": {
4555
4443
  "max": 2,
4556
4444
  "when": [
@@ -4561,7 +4449,7 @@ application:
4561
4449
  "script": [
4562
4450
  "trivy fs --quiet --format cyclonedx --output "__sbom.json" www",
4563
4451
  ],
4564
- "stage": "verify",
4452
+ "stage": "build",
4565
4453
  "variables": {},
4566
4454
  },
4567
4455
  },