@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
@@ -324,6 +324,10 @@ COPY --chown=node:node .yarn /app/.yarn",
324
324
  "artifacts": false,
325
325
  "job": "api 🧪 test",
326
326
  },
327
+ {
328
+ "artifacts": true,
329
+ "job": "api 🧾 sbom | dev ",
330
+ },
327
331
  {
328
332
  "artifacts": false,
329
333
  "job": "api 🛡 audit",
@@ -348,6 +352,8 @@ COPY --chown=node:node .yarn /app/.yarn",
348
352
  "kubectl config use-context "kube-pan-test-app-dev-api"",
349
353
  "kubernetesCreateSecret",
350
354
  "kubernetesDeploy",
355
+ "echo Uploading SBOM to Dependency Track",
356
+ "/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",
351
357
  "echo deployment successful 😻",
352
358
  ],
353
359
  "stage": "deploy dev",
@@ -459,6 +465,8 @@ cloudsql:
459
465
  "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"",
460
466
  "kubectl config use-context "kube-pan-test-app-dev-api"",
461
467
  "kubernetesDelete",
468
+ "echo Disabling component in Dependency Track",
469
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/api" "https://api.dev.test-app.pan.panter.cloud" || true",
462
470
  ],
463
471
  "stage": "stop dev",
464
472
  "variables": {
@@ -596,26 +604,6 @@ cloudsql:
596
604
  "KUBERNETES_MEMORY_REQUEST": "2Gi",
597
605
  },
598
606
  },
599
- "api 🧾 sbom upload | dev ": {
600
- "allow_failure": true,
601
- "image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
602
- "interruptible": true,
603
- "needs": [
604
- "api 🧾 sbom | dev ",
605
- ],
606
- "retry": {
607
- "max": 2,
608
- "when": [
609
- "runner_system_failure",
610
- "stuck_or_timeout_failure",
611
- ],
612
- },
613
- "script": [
614
- "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "dev" "__sbom.json" vex.json",
615
- ],
616
- "stage": "verify",
617
- "variables": {},
618
- },
619
607
  "api 🧾 sbom | dev ": {
620
608
  "allow_failure": true,
621
609
  "artifacts": {
@@ -625,9 +613,7 @@ cloudsql:
625
613
  },
626
614
  "image": "aquasec/trivy:0.38.3",
627
615
  "interruptible": true,
628
- "needs": [
629
- "api 🚀 Deploy | dev ",
630
- ],
616
+ "needs": [],
631
617
  "retry": {
632
618
  "max": 2,
633
619
  "when": [
@@ -638,7 +624,7 @@ cloudsql:
638
624
  "script": [
639
625
  "trivy fs --quiet --format cyclonedx --output "__sbom.json" api",
640
626
  ],
641
- "stage": "verify",
627
+ "stage": "build",
642
628
  "variables": {},
643
629
  },
644
630
  },
@@ -1032,6 +1018,10 @@ COPY --chown=node:node .yarn /app/.yarn",
1032
1018
  "artifacts": false,
1033
1019
  "job": "api 🧪 test",
1034
1020
  },
1021
+ {
1022
+ "artifacts": true,
1023
+ "job": "api 🧾 sbom | review ",
1024
+ },
1035
1025
  {
1036
1026
  "artifacts": false,
1037
1027
  "job": "api 🛡 audit",
@@ -1056,6 +1046,8 @@ COPY --chown=node:node .yarn /app/.yarn",
1056
1046
  "kubectl config use-context "kube-pan-test-app-review-mr1234-api"",
1057
1047
  "kubernetesCreateSecret",
1058
1048
  "kubernetesDeploy",
1049
+ "echo Uploading SBOM to Dependency Track",
1050
+ "/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",
1059
1051
  "echo deployment successful 😻",
1060
1052
  ],
1061
1053
  "stage": "deploy review",
@@ -1167,6 +1159,8 @@ cloudsql:
1167
1159
  "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"",
1168
1160
  "kubectl config use-context "kube-pan-test-app-review-mr1234-api"",
1169
1161
  "kubernetesDelete",
1162
+ "echo Disabling component in Dependency Track",
1163
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/api" "https://api.mr1234.review.test-app.pan.panter.cloud" || true",
1170
1164
  ],
1171
1165
  "stage": "stop review",
1172
1166
  "variables": {
@@ -1304,26 +1298,6 @@ cloudsql:
1304
1298
  "KUBERNETES_MEMORY_REQUEST": "2Gi",
1305
1299
  },
1306
1300
  },
1307
- "api 🧾 sbom upload | review ": {
1308
- "allow_failure": true,
1309
- "image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
1310
- "interruptible": true,
1311
- "needs": [
1312
- "api 🧾 sbom | review ",
1313
- ],
1314
- "retry": {
1315
- "max": 2,
1316
- "when": [
1317
- "runner_system_failure",
1318
- "stuck_or_timeout_failure",
1319
- ],
1320
- },
1321
- "script": [
1322
- "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "review" "__sbom.json" vex.json",
1323
- ],
1324
- "stage": "verify",
1325
- "variables": {},
1326
- },
1327
1301
  "api 🧾 sbom | review ": {
1328
1302
  "allow_failure": true,
1329
1303
  "artifacts": {
@@ -1333,9 +1307,7 @@ cloudsql:
1333
1307
  },
1334
1308
  "image": "aquasec/trivy:0.38.3",
1335
1309
  "interruptible": true,
1336
- "needs": [
1337
- "api 🚀 Deploy | review ",
1338
- ],
1310
+ "needs": [],
1339
1311
  "retry": {
1340
1312
  "max": 2,
1341
1313
  "when": [
@@ -1346,7 +1318,7 @@ cloudsql:
1346
1318
  "script": [
1347
1319
  "trivy fs --quiet --format cyclonedx --output "__sbom.json" api",
1348
1320
  ],
1349
- "stage": "verify",
1321
+ "stage": "build",
1350
1322
  "variables": {},
1351
1323
  },
1352
1324
  },
@@ -1935,6 +1907,10 @@ COPY --chown=node:node .yarn /app/.yarn",
1935
1907
  "artifacts": false,
1936
1908
  "job": "api 🔨 docker | prod ",
1937
1909
  },
1910
+ {
1911
+ "artifacts": true,
1912
+ "job": "api 🧾 sbom | prod ",
1913
+ },
1938
1914
  ],
1939
1915
  "retry": {
1940
1916
  "max": 2,
@@ -1955,6 +1931,8 @@ COPY --chown=node:node .yarn /app/.yarn",
1955
1931
  "kubectl config use-context "kube-pan-test-app-prod-api"",
1956
1932
  "kubernetesCreateSecret",
1957
1933
  "kubernetesDeploy",
1934
+ "echo Uploading SBOM to Dependency Track",
1935
+ "/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",
1958
1936
  "echo deployment successful 😻",
1959
1937
  ],
1960
1938
  "stage": "deploy prod",
@@ -2052,6 +2030,10 @@ cloudsql:
2052
2030
  "artifacts": false,
2053
2031
  "job": "api 🔨 docker | stage ",
2054
2032
  },
2033
+ {
2034
+ "artifacts": true,
2035
+ "job": "api 🧾 sbom | stage ",
2036
+ },
2055
2037
  ],
2056
2038
  "retry": {
2057
2039
  "max": 2,
@@ -2072,6 +2054,8 @@ cloudsql:
2072
2054
  "kubectl config use-context "kube-pan-test-app-stage-api"",
2073
2055
  "kubernetesCreateSecret",
2074
2056
  "kubernetesDeploy",
2057
+ "echo Uploading SBOM to Dependency Track",
2058
+ "/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",
2075
2059
  "echo deployment successful 😻",
2076
2060
  ],
2077
2061
  "stage": "deploy stage",
@@ -2183,6 +2167,8 @@ cloudsql:
2183
2167
  "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"",
2184
2168
  "kubectl config use-context "kube-pan-test-app-prod-api"",
2185
2169
  "kubernetesDelete",
2170
+ "echo Disabling component in Dependency Track",
2171
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/api" "https://api.prod.test-app.pan.panter.cloud" || true",
2186
2172
  ],
2187
2173
  "stage": "stop prod",
2188
2174
  "variables": {
@@ -2288,6 +2274,8 @@ cloudsql:
2288
2274
  "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"",
2289
2275
  "kubectl config use-context "kube-pan-test-app-stage-api"",
2290
2276
  "kubernetesDelete",
2277
+ "echo Disabling component in Dependency Track",
2278
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/api" "https://api.stage.test-app.pan.panter.cloud" || true",
2291
2279
  ],
2292
2280
  "stage": "stop stage",
2293
2281
  "variables": {
@@ -2357,46 +2345,6 @@ cloudsql:
2357
2345
  "cloudsqlProxyCredentials": "$CL_stage_api_cloudsqlProxyCredentials",
2358
2346
  },
2359
2347
  },
2360
- "api 🧾 sbom upload | prod ": {
2361
- "allow_failure": true,
2362
- "image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
2363
- "interruptible": true,
2364
- "needs": [
2365
- "api 🧾 sbom | prod ",
2366
- ],
2367
- "retry": {
2368
- "max": 2,
2369
- "when": [
2370
- "runner_system_failure",
2371
- "stuck_or_timeout_failure",
2372
- ],
2373
- },
2374
- "script": [
2375
- "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "prod" "__sbom.json" vex.json",
2376
- ],
2377
- "stage": "verify",
2378
- "variables": {},
2379
- },
2380
- "api 🧾 sbom upload | stage ": {
2381
- "allow_failure": true,
2382
- "image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
2383
- "interruptible": true,
2384
- "needs": [
2385
- "api 🧾 sbom | stage ",
2386
- ],
2387
- "retry": {
2388
- "max": 2,
2389
- "when": [
2390
- "runner_system_failure",
2391
- "stuck_or_timeout_failure",
2392
- ],
2393
- },
2394
- "script": [
2395
- "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "stage" "__sbom.json" vex.json",
2396
- ],
2397
- "stage": "verify",
2398
- "variables": {},
2399
- },
2400
2348
  "api 🧾 sbom | prod ": {
2401
2349
  "allow_failure": true,
2402
2350
  "artifacts": {
@@ -2406,9 +2354,7 @@ cloudsql:
2406
2354
  },
2407
2355
  "image": "aquasec/trivy:0.38.3",
2408
2356
  "interruptible": true,
2409
- "needs": [
2410
- "api 🚀 Deploy | prod ",
2411
- ],
2357
+ "needs": [],
2412
2358
  "retry": {
2413
2359
  "max": 2,
2414
2360
  "when": [
@@ -2419,7 +2365,7 @@ cloudsql:
2419
2365
  "script": [
2420
2366
  "trivy fs --quiet --format cyclonedx --output "__sbom.json" api",
2421
2367
  ],
2422
- "stage": "verify",
2368
+ "stage": "build",
2423
2369
  "variables": {},
2424
2370
  },
2425
2371
  "api 🧾 sbom | stage ": {
@@ -2431,9 +2377,7 @@ cloudsql:
2431
2377
  },
2432
2378
  "image": "aquasec/trivy:0.38.3",
2433
2379
  "interruptible": true,
2434
- "needs": [
2435
- "api 🚀 Deploy | stage ",
2436
- ],
2380
+ "needs": [],
2437
2381
  "retry": {
2438
2382
  "max": 2,
2439
2383
  "when": [
@@ -2444,7 +2388,7 @@ cloudsql:
2444
2388
  "script": [
2445
2389
  "trivy fs --quiet --format cyclonedx --output "__sbom.json" api",
2446
2390
  ],
2447
- "stage": "verify",
2391
+ "stage": "build",
2448
2392
  "variables": {},
2449
2393
  },
2450
2394
  },
@@ -325,6 +325,10 @@ COPY --chown=node:node .yarn /app/.yarn",
325
325
  "artifacts": false,
326
326
  "job": "api 🧪 test",
327
327
  },
328
+ {
329
+ "artifacts": true,
330
+ "job": "api 🧾 sbom | dev ",
331
+ },
328
332
  {
329
333
  "artifacts": false,
330
334
  "job": "api 🛡 audit",
@@ -349,6 +353,8 @@ COPY --chown=node:node .yarn /app/.yarn",
349
353
  "kubectl config use-context "kube-pan-test-app-dev-api"",
350
354
  "kubernetesCreateSecret",
351
355
  "kubernetesDeploy",
356
+ "echo Uploading SBOM to Dependency Track",
357
+ "/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",
352
358
  "echo deployment successful 😻",
353
359
  ],
354
360
  "stage": "deploy dev",
@@ -461,6 +467,8 @@ cloudsql:
461
467
  "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"",
462
468
  "kubectl config use-context "kube-pan-test-app-dev-api"",
463
469
  "kubernetesDelete",
470
+ "echo Disabling component in Dependency Track",
471
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/api" "https://api.dev.test-app.pan.panter.cloud" || true",
464
472
  ],
465
473
  "stage": "stop dev",
466
474
  "variables": {
@@ -599,26 +607,6 @@ cloudsql:
599
607
  "KUBERNETES_MEMORY_REQUEST": "2Gi",
600
608
  },
601
609
  },
602
- "api 🧾 sbom upload | dev ": {
603
- "allow_failure": true,
604
- "image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
605
- "interruptible": true,
606
- "needs": [
607
- "api 🧾 sbom | dev ",
608
- ],
609
- "retry": {
610
- "max": 2,
611
- "when": [
612
- "runner_system_failure",
613
- "stuck_or_timeout_failure",
614
- ],
615
- },
616
- "script": [
617
- "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "dev" "__sbom.json" vex.json",
618
- ],
619
- "stage": "verify",
620
- "variables": {},
621
- },
622
610
  "api 🧾 sbom | dev ": {
623
611
  "allow_failure": true,
624
612
  "artifacts": {
@@ -628,9 +616,7 @@ cloudsql:
628
616
  },
629
617
  "image": "aquasec/trivy:0.38.3",
630
618
  "interruptible": true,
631
- "needs": [
632
- "api 🚀 Deploy | dev ",
633
- ],
619
+ "needs": [],
634
620
  "retry": {
635
621
  "max": 2,
636
622
  "when": [
@@ -641,7 +627,7 @@ cloudsql:
641
627
  "script": [
642
628
  "trivy fs --quiet --format cyclonedx --output "__sbom.json" api",
643
629
  ],
644
- "stage": "verify",
630
+ "stage": "build",
645
631
  "variables": {},
646
632
  },
647
633
  },
@@ -1036,6 +1022,10 @@ COPY --chown=node:node .yarn /app/.yarn",
1036
1022
  "artifacts": false,
1037
1023
  "job": "api 🧪 test",
1038
1024
  },
1025
+ {
1026
+ "artifacts": true,
1027
+ "job": "api 🧾 sbom | review ",
1028
+ },
1039
1029
  {
1040
1030
  "artifacts": false,
1041
1031
  "job": "api 🛡 audit",
@@ -1060,6 +1050,8 @@ COPY --chown=node:node .yarn /app/.yarn",
1060
1050
  "kubectl config use-context "kube-pan-test-app-review-mr1234-api"",
1061
1051
  "kubernetesCreateSecret",
1062
1052
  "kubernetesDeploy",
1053
+ "echo Uploading SBOM to Dependency Track",
1054
+ "/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",
1063
1055
  "echo deployment successful 😻",
1064
1056
  ],
1065
1057
  "stage": "deploy review",
@@ -1172,6 +1164,8 @@ cloudsql:
1172
1164
  "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"",
1173
1165
  "kubectl config use-context "kube-pan-test-app-review-mr1234-api"",
1174
1166
  "kubernetesDelete",
1167
+ "echo Disabling component in Dependency Track",
1168
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/api" "https://api.mr1234.review.test-app.pan.panter.cloud" || true",
1175
1169
  ],
1176
1170
  "stage": "stop review",
1177
1171
  "variables": {
@@ -1310,26 +1304,6 @@ cloudsql:
1310
1304
  "KUBERNETES_MEMORY_REQUEST": "2Gi",
1311
1305
  },
1312
1306
  },
1313
- "api 🧾 sbom upload | review ": {
1314
- "allow_failure": true,
1315
- "image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
1316
- "interruptible": true,
1317
- "needs": [
1318
- "api 🧾 sbom | review ",
1319
- ],
1320
- "retry": {
1321
- "max": 2,
1322
- "when": [
1323
- "runner_system_failure",
1324
- "stuck_or_timeout_failure",
1325
- ],
1326
- },
1327
- "script": [
1328
- "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "review" "__sbom.json" vex.json",
1329
- ],
1330
- "stage": "verify",
1331
- "variables": {},
1332
- },
1333
1307
  "api 🧾 sbom | review ": {
1334
1308
  "allow_failure": true,
1335
1309
  "artifacts": {
@@ -1339,9 +1313,7 @@ cloudsql:
1339
1313
  },
1340
1314
  "image": "aquasec/trivy:0.38.3",
1341
1315
  "interruptible": true,
1342
- "needs": [
1343
- "api 🚀 Deploy | review ",
1344
- ],
1316
+ "needs": [],
1345
1317
  "retry": {
1346
1318
  "max": 2,
1347
1319
  "when": [
@@ -1352,7 +1324,7 @@ cloudsql:
1352
1324
  "script": [
1353
1325
  "trivy fs --quiet --format cyclonedx --output "__sbom.json" api",
1354
1326
  ],
1355
- "stage": "verify",
1327
+ "stage": "build",
1356
1328
  "variables": {},
1357
1329
  },
1358
1330
  },
@@ -1943,6 +1915,10 @@ COPY --chown=node:node .yarn /app/.yarn",
1943
1915
  "artifacts": false,
1944
1916
  "job": "api 🔨 docker | prod ",
1945
1917
  },
1918
+ {
1919
+ "artifacts": true,
1920
+ "job": "api 🧾 sbom | prod ",
1921
+ },
1946
1922
  ],
1947
1923
  "retry": {
1948
1924
  "max": 2,
@@ -1963,6 +1939,8 @@ COPY --chown=node:node .yarn /app/.yarn",
1963
1939
  "kubectl config use-context "kube-pan-test-app-prod-api"",
1964
1940
  "kubernetesCreateSecret",
1965
1941
  "kubernetesDeploy",
1942
+ "echo Uploading SBOM to Dependency Track",
1943
+ "/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",
1966
1944
  "echo deployment successful 😻",
1967
1945
  ],
1968
1946
  "stage": "deploy prod",
@@ -2061,6 +2039,10 @@ cloudsql:
2061
2039
  "artifacts": false,
2062
2040
  "job": "api 🔨 docker | stage ",
2063
2041
  },
2042
+ {
2043
+ "artifacts": true,
2044
+ "job": "api 🧾 sbom | stage ",
2045
+ },
2064
2046
  ],
2065
2047
  "retry": {
2066
2048
  "max": 2,
@@ -2081,6 +2063,8 @@ cloudsql:
2081
2063
  "kubectl config use-context "kube-pan-test-app-stage-api"",
2082
2064
  "kubernetesCreateSecret",
2083
2065
  "kubernetesDeploy",
2066
+ "echo Uploading SBOM to Dependency Track",
2067
+ "/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",
2084
2068
  "echo deployment successful 😻",
2085
2069
  ],
2086
2070
  "stage": "deploy stage",
@@ -2193,6 +2177,8 @@ cloudsql:
2193
2177
  "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"",
2194
2178
  "kubectl config use-context "kube-pan-test-app-prod-api"",
2195
2179
  "kubernetesDelete",
2180
+ "echo Disabling component in Dependency Track",
2181
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/api" "https://api.prod.test-app.pan.panter.cloud" || true",
2196
2182
  ],
2197
2183
  "stage": "stop prod",
2198
2184
  "variables": {
@@ -2299,6 +2285,8 @@ cloudsql:
2299
2285
  "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"",
2300
2286
  "kubectl config use-context "kube-pan-test-app-stage-api"",
2301
2287
  "kubernetesDelete",
2288
+ "echo Disabling component in Dependency Track",
2289
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/api" "https://api.stage.test-app.pan.panter.cloud" || true",
2302
2290
  ],
2303
2291
  "stage": "stop stage",
2304
2292
  "variables": {
@@ -2369,46 +2357,6 @@ cloudsql:
2369
2357
  "cloudsqlProxyCredentials": "$CL_stage_api_cloudsqlProxyCredentials",
2370
2358
  },
2371
2359
  },
2372
- "api 🧾 sbom upload | prod ": {
2373
- "allow_failure": true,
2374
- "image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
2375
- "interruptible": true,
2376
- "needs": [
2377
- "api 🧾 sbom | prod ",
2378
- ],
2379
- "retry": {
2380
- "max": 2,
2381
- "when": [
2382
- "runner_system_failure",
2383
- "stuck_or_timeout_failure",
2384
- ],
2385
- },
2386
- "script": [
2387
- "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "prod" "__sbom.json" vex.json",
2388
- ],
2389
- "stage": "verify",
2390
- "variables": {},
2391
- },
2392
- "api 🧾 sbom upload | stage ": {
2393
- "allow_failure": true,
2394
- "image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
2395
- "interruptible": true,
2396
- "needs": [
2397
- "api 🧾 sbom | stage ",
2398
- ],
2399
- "retry": {
2400
- "max": 2,
2401
- "when": [
2402
- "runner_system_failure",
2403
- "stuck_or_timeout_failure",
2404
- ],
2405
- },
2406
- "script": [
2407
- "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "stage" "__sbom.json" vex.json",
2408
- ],
2409
- "stage": "verify",
2410
- "variables": {},
2411
- },
2412
2360
  "api 🧾 sbom | prod ": {
2413
2361
  "allow_failure": true,
2414
2362
  "artifacts": {
@@ -2418,9 +2366,7 @@ cloudsql:
2418
2366
  },
2419
2367
  "image": "aquasec/trivy:0.38.3",
2420
2368
  "interruptible": true,
2421
- "needs": [
2422
- "api 🚀 Deploy | prod ",
2423
- ],
2369
+ "needs": [],
2424
2370
  "retry": {
2425
2371
  "max": 2,
2426
2372
  "when": [
@@ -2431,7 +2377,7 @@ cloudsql:
2431
2377
  "script": [
2432
2378
  "trivy fs --quiet --format cyclonedx --output "__sbom.json" api",
2433
2379
  ],
2434
- "stage": "verify",
2380
+ "stage": "build",
2435
2381
  "variables": {},
2436
2382
  },
2437
2383
  "api 🧾 sbom | stage ": {
@@ -2443,9 +2389,7 @@ cloudsql:
2443
2389
  },
2444
2390
  "image": "aquasec/trivy:0.38.3",
2445
2391
  "interruptible": true,
2446
- "needs": [
2447
- "api 🚀 Deploy | stage ",
2448
- ],
2392
+ "needs": [],
2449
2393
  "retry": {
2450
2394
  "max": 2,
2451
2395
  "when": [
@@ -2456,7 +2400,7 @@ cloudsql:
2456
2400
  "script": [
2457
2401
  "trivy fs --quiet --format cyclonedx --output "__sbom.json" api",
2458
2402
  ],
2459
- "stage": "verify",
2403
+ "stage": "build",
2460
2404
  "variables": {},
2461
2405
  },
2462
2406
  },