@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
@@ -223,6 +223,10 @@ COPY --chown=node:node .yarn /app/.yarn",
223
223
  "artifacts": false,
224
224
  "job": "www 🧪 test",
225
225
  },
226
+ {
227
+ "artifacts": true,
228
+ "job": "www 🧾 sbom | dev ",
229
+ },
226
230
  {
227
231
  "artifacts": false,
228
232
  "job": "www 🛡 audit",
@@ -254,6 +258,8 @@ COPY --chown=node:node .yarn /app/.yarn",
254
258
  "echo "$ENV_VARS" > ____envvars.yaml",
255
259
  "gcloud run deploy pan-test-app-dev-www --command="yarn,start" --image=asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG --project=asdf --region=asia-east1 --labels=customer-name=pan,app-name=test-app,env-type=dev,env-name=dev,build-type=node --env-vars-file=____envvars.yaml --min-instances=0 --max-instances=100 --cpu-throttling --allow-unauthenticated --cpu-boost",
256
260
  "docker image rm asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG",
261
+ "echo Uploading SBOM to Dependency Track",
262
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "https://pan-test-app-dev-www-unknown-host.example.com" "__sbom.json" vex.json || true",
257
263
  ],
258
264
  "services": [
259
265
  {
@@ -339,6 +345,8 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
339
345
  ",
340
346
  "gcloud auth activate-service-account --key-file="./____keyfile.json"",
341
347
  "gcloud run services delete pan-test-app-dev-www --project=asdf --region=asia-east1",
348
+ "echo Disabling component in Dependency Track",
349
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/www" "https://pan-test-app-dev-www-unknown-host.example.com" || true",
342
350
  "set -e",
343
351
  ],
344
352
  "stage": "stop dev",
@@ -419,26 +427,6 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
419
427
  "KUBERNETES_MEMORY_REQUEST": "2Gi",
420
428
  },
421
429
  },
422
- "www 🧾 sbom upload | dev ": {
423
- "allow_failure": true,
424
- "image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
425
- "interruptible": true,
426
- "needs": [
427
- "www 🧾 sbom | dev ",
428
- ],
429
- "retry": {
430
- "max": 2,
431
- "when": [
432
- "runner_system_failure",
433
- "stuck_or_timeout_failure",
434
- ],
435
- },
436
- "script": [
437
- "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "dev" "__sbom.json" vex.json",
438
- ],
439
- "stage": "verify",
440
- "variables": {},
441
- },
442
430
  "www 🧾 sbom | dev ": {
443
431
  "allow_failure": true,
444
432
  "artifacts": {
@@ -448,9 +436,7 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
448
436
  },
449
437
  "image": "aquasec/trivy:0.38.3",
450
438
  "interruptible": true,
451
- "needs": [
452
- "www 🚀 Deploy | dev ",
453
- ],
439
+ "needs": [],
454
440
  "retry": {
455
441
  "max": 2,
456
442
  "when": [
@@ -461,7 +447,7 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
461
447
  "script": [
462
448
  "trivy fs --quiet --format cyclonedx --output "__sbom.json" www",
463
449
  ],
464
- "stage": "verify",
450
+ "stage": "build",
465
451
  "variables": {},
466
452
  },
467
453
  },
@@ -754,6 +740,10 @@ COPY --chown=node:node .yarn /app/.yarn",
754
740
  "artifacts": false,
755
741
  "job": "www 🧪 test",
756
742
  },
743
+ {
744
+ "artifacts": true,
745
+ "job": "www 🧾 sbom | review ",
746
+ },
757
747
  {
758
748
  "artifacts": false,
759
749
  "job": "www 🛡 audit",
@@ -785,6 +775,8 @@ COPY --chown=node:node .yarn /app/.yarn",
785
775
  "echo "$ENV_VARS" > ____envvars.yaml",
786
776
  "gcloud run deploy pan-test-app-review-mr1234-www --command="yarn,start" --image=asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG --project=asdf --region=asia-east1 --labels=customer-name=pan,app-name=test-app,env-type=review,env-name=review,build-type=node --env-vars-file=____envvars.yaml --min-instances=0 --max-instances=100 --cpu-throttling --allow-unauthenticated --cpu-boost",
787
777
  "docker image rm asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG",
778
+ "echo Uploading SBOM to Dependency Track",
779
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "https://pan-test-app-review-mr1234-www-unknown-host.example.com" "__sbom.json" vex.json || true",
788
780
  ],
789
781
  "services": [
790
782
  {
@@ -870,6 +862,8 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
870
862
  ",
871
863
  "gcloud auth activate-service-account --key-file="./____keyfile.json"",
872
864
  "gcloud run services delete pan-test-app-review-mr1234-www --project=asdf --region=asia-east1",
865
+ "echo Disabling component in Dependency Track",
866
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/www" "https://pan-test-app-review-mr1234-www-unknown-host.example.com" || true",
873
867
  "set -e",
874
868
  ],
875
869
  "stage": "stop review",
@@ -950,26 +944,6 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
950
944
  "KUBERNETES_MEMORY_REQUEST": "2Gi",
951
945
  },
952
946
  },
953
- "www 🧾 sbom upload | review ": {
954
- "allow_failure": true,
955
- "image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
956
- "interruptible": true,
957
- "needs": [
958
- "www 🧾 sbom | review ",
959
- ],
960
- "retry": {
961
- "max": 2,
962
- "when": [
963
- "runner_system_failure",
964
- "stuck_or_timeout_failure",
965
- ],
966
- },
967
- "script": [
968
- "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "review" "__sbom.json" vex.json",
969
- ],
970
- "stage": "verify",
971
- "variables": {},
972
- },
973
947
  "www 🧾 sbom | review ": {
974
948
  "allow_failure": true,
975
949
  "artifacts": {
@@ -979,9 +953,7 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
979
953
  },
980
954
  "image": "aquasec/trivy:0.38.3",
981
955
  "interruptible": true,
982
- "needs": [
983
- "www 🚀 Deploy | review ",
984
- ],
956
+ "needs": [],
985
957
  "retry": {
986
958
  "max": 2,
987
959
  "when": [
@@ -992,7 +964,7 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
992
964
  "script": [
993
965
  "trivy fs --quiet --format cyclonedx --output "__sbom.json" www",
994
966
  ],
995
- "stage": "verify",
967
+ "stage": "build",
996
968
  "variables": {},
997
969
  },
998
970
  },
@@ -1377,6 +1349,10 @@ COPY --chown=node:node .yarn /app/.yarn",
1377
1349
  "artifacts": false,
1378
1350
  "job": "www 🔨 docker | prod ",
1379
1351
  },
1352
+ {
1353
+ "artifacts": true,
1354
+ "job": "www 🧾 sbom | prod ",
1355
+ },
1380
1356
  ],
1381
1357
  "retry": {
1382
1358
  "max": 2,
@@ -1404,6 +1380,8 @@ COPY --chown=node:node .yarn /app/.yarn",
1404
1380
  "echo "$ENV_VARS" > ____envvars.yaml",
1405
1381
  "gcloud run deploy pan-test-app-prod-www --command="yarn,start" --image=asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG --project=asdf --region=asia-east1 --labels=customer-name=pan,app-name=test-app,env-type=prod,env-name=prod,build-type=node --env-vars-file=____envvars.yaml --min-instances=0 --max-instances=100 --cpu-throttling --allow-unauthenticated --cpu-boost",
1406
1382
  "docker image rm asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG",
1383
+ "echo Uploading SBOM to Dependency Track",
1384
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "https://pan-test-app-prod-www-unknown-host.example.com" "__sbom.json" vex.json || true",
1407
1385
  ],
1408
1386
  "services": [
1409
1387
  {
@@ -1480,6 +1458,10 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
1480
1458
  "artifacts": false,
1481
1459
  "job": "www 🔨 docker | stage ",
1482
1460
  },
1461
+ {
1462
+ "artifacts": true,
1463
+ "job": "www 🧾 sbom | stage ",
1464
+ },
1483
1465
  ],
1484
1466
  "retry": {
1485
1467
  "max": 2,
@@ -1507,6 +1489,8 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
1507
1489
  "echo "$ENV_VARS" > ____envvars.yaml",
1508
1490
  "gcloud run deploy pan-test-app-stage-www --command="yarn,start" --image=asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG --project=asdf --region=asia-east1 --labels=customer-name=pan,app-name=test-app,env-type=stage,env-name=stage,build-type=node --env-vars-file=____envvars.yaml --min-instances=0 --max-instances=100 --cpu-throttling --allow-unauthenticated --cpu-boost",
1509
1491
  "docker image rm asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG",
1492
+ "echo Uploading SBOM to Dependency Track",
1493
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "https://pan-test-app-stage-www-unknown-host.example.com" "__sbom.json" vex.json || true",
1510
1494
  ],
1511
1495
  "services": [
1512
1496
  {
@@ -1592,6 +1576,8 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
1592
1576
  ",
1593
1577
  "gcloud auth activate-service-account --key-file="./____keyfile.json"",
1594
1578
  "gcloud run services delete pan-test-app-prod-www --project=asdf --region=asia-east1",
1579
+ "echo Disabling component in Dependency Track",
1580
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/www" "https://pan-test-app-prod-www-unknown-host.example.com" || true",
1595
1581
  "set -e",
1596
1582
  ],
1597
1583
  "stage": "stop prod",
@@ -1637,6 +1623,8 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
1637
1623
  ",
1638
1624
  "gcloud auth activate-service-account --key-file="./____keyfile.json"",
1639
1625
  "gcloud run services delete pan-test-app-stage-www --project=asdf --region=asia-east1",
1626
+ "echo Disabling component in Dependency Track",
1627
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/www" "https://pan-test-app-stage-www-unknown-host.example.com" || true",
1640
1628
  "set -e",
1641
1629
  ],
1642
1630
  "stage": "stop stage",
@@ -1649,46 +1637,6 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
1649
1637
  "KUBERNETES_MEMORY_REQUEST": "200Mi",
1650
1638
  },
1651
1639
  },
1652
- "www 🧾 sbom upload | prod ": {
1653
- "allow_failure": true,
1654
- "image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
1655
- "interruptible": true,
1656
- "needs": [
1657
- "www 🧾 sbom | prod ",
1658
- ],
1659
- "retry": {
1660
- "max": 2,
1661
- "when": [
1662
- "runner_system_failure",
1663
- "stuck_or_timeout_failure",
1664
- ],
1665
- },
1666
- "script": [
1667
- "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "prod" "__sbom.json" vex.json",
1668
- ],
1669
- "stage": "verify",
1670
- "variables": {},
1671
- },
1672
- "www 🧾 sbom upload | stage ": {
1673
- "allow_failure": true,
1674
- "image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
1675
- "interruptible": true,
1676
- "needs": [
1677
- "www 🧾 sbom | stage ",
1678
- ],
1679
- "retry": {
1680
- "max": 2,
1681
- "when": [
1682
- "runner_system_failure",
1683
- "stuck_or_timeout_failure",
1684
- ],
1685
- },
1686
- "script": [
1687
- "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "stage" "__sbom.json" vex.json",
1688
- ],
1689
- "stage": "verify",
1690
- "variables": {},
1691
- },
1692
1640
  "www 🧾 sbom | prod ": {
1693
1641
  "allow_failure": true,
1694
1642
  "artifacts": {
@@ -1698,9 +1646,7 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
1698
1646
  },
1699
1647
  "image": "aquasec/trivy:0.38.3",
1700
1648
  "interruptible": true,
1701
- "needs": [
1702
- "www 🚀 Deploy | prod ",
1703
- ],
1649
+ "needs": [],
1704
1650
  "retry": {
1705
1651
  "max": 2,
1706
1652
  "when": [
@@ -1711,7 +1657,7 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
1711
1657
  "script": [
1712
1658
  "trivy fs --quiet --format cyclonedx --output "__sbom.json" www",
1713
1659
  ],
1714
- "stage": "verify",
1660
+ "stage": "build",
1715
1661
  "variables": {},
1716
1662
  },
1717
1663
  "www 🧾 sbom | stage ": {
@@ -1723,9 +1669,7 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
1723
1669
  },
1724
1670
  "image": "aquasec/trivy:0.38.3",
1725
1671
  "interruptible": true,
1726
- "needs": [
1727
- "www 🚀 Deploy | stage ",
1728
- ],
1672
+ "needs": [],
1729
1673
  "retry": {
1730
1674
  "max": 2,
1731
1675
  "when": [
@@ -1736,7 +1680,7 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
1736
1680
  "script": [
1737
1681
  "trivy fs --quiet --format cyclonedx --output "__sbom.json" www",
1738
1682
  ],
1739
- "stage": "verify",
1683
+ "stage": "build",
1740
1684
  "variables": {},
1741
1685
  },
1742
1686
  },
@@ -221,6 +221,10 @@ jobs:
221
221
  "artifacts": false,
222
222
  "job": "app 🧪 test",
223
223
  },
224
+ {
225
+ "artifacts": true,
226
+ "job": "app 🧾 sbom | dev ",
227
+ },
224
228
  {
225
229
  "artifacts": false,
226
230
  "job": "app 🛡 audit",
@@ -245,6 +249,8 @@ jobs:
245
249
  "kubectl config use-context "kube-pan-test-app-dev-app"",
246
250
  "kubernetesCreateSecret",
247
251
  "kubernetesDeploy",
252
+ "echo Uploading SBOM to Dependency Track",
253
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/app" "https://app.dev.test-app.pan.panter.cloud" "__sbom.json" vex.json || true",
248
254
  "echo deployment successful 😻",
249
255
  ],
250
256
  "stage": "deploy dev",
@@ -366,6 +372,8 @@ jobs:
366
372
  "kubectl config set-context "kube-pan-test-app-dev-app" --cluster="kube-pan-test-app-dev-app" --user="kube-pan-test-app-dev-app" --namespace="pan-test-app-dev"",
367
373
  "kubectl config use-context "kube-pan-test-app-dev-app"",
368
374
  "kubernetesDelete",
375
+ "echo Disabling component in Dependency Track",
376
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/app" "https://app.dev.test-app.pan.panter.cloud" || true",
369
377
  ],
370
378
  "stage": "stop dev",
371
379
  "variables": {
@@ -496,26 +504,6 @@ jobs:
496
504
  "stage": "test",
497
505
  "variables": {},
498
506
  },
499
- "app 🧾 sbom upload | dev ": {
500
- "allow_failure": true,
501
- "image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
502
- "interruptible": true,
503
- "needs": [
504
- "app 🧾 sbom | dev ",
505
- ],
506
- "retry": {
507
- "max": 2,
508
- "when": [
509
- "runner_system_failure",
510
- "stuck_or_timeout_failure",
511
- ],
512
- },
513
- "script": [
514
- "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/app" "dev" "__sbom.json" vex.json",
515
- ],
516
- "stage": "verify",
517
- "variables": {},
518
- },
519
507
  "app 🧾 sbom | dev ": {
520
508
  "allow_failure": true,
521
509
  "artifacts": {
@@ -525,9 +513,7 @@ jobs:
525
513
  },
526
514
  "image": "aquasec/trivy:0.38.3",
527
515
  "interruptible": true,
528
- "needs": [
529
- "app 🚀 Deploy | dev ",
530
- ],
516
+ "needs": [],
531
517
  "retry": {
532
518
  "max": 2,
533
519
  "when": [
@@ -538,7 +524,7 @@ jobs:
538
524
  "script": [
539
525
  "trivy fs --quiet --format cyclonedx --output "__sbom.json" .",
540
526
  ],
541
- "stage": "verify",
527
+ "stage": "build",
542
528
  "variables": {},
543
529
  },
544
530
  },
@@ -832,6 +818,10 @@ jobs:
832
818
  "artifacts": false,
833
819
  "job": "app 🧪 test",
834
820
  },
821
+ {
822
+ "artifacts": true,
823
+ "job": "app 🧾 sbom | review ",
824
+ },
835
825
  {
836
826
  "artifacts": false,
837
827
  "job": "app 🛡 audit",
@@ -856,6 +846,8 @@ jobs:
856
846
  "kubectl config use-context "kube-pan-test-app-review-mr1234-app"",
857
847
  "kubernetesCreateSecret",
858
848
  "kubernetesDeploy",
849
+ "echo Uploading SBOM to Dependency Track",
850
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/app" "https://app.mr1234.review.test-app.pan.panter.cloud" "__sbom.json" vex.json || true",
859
851
  "echo deployment successful 😻",
860
852
  ],
861
853
  "stage": "deploy review",
@@ -980,6 +972,8 @@ jobs:
980
972
  "kubectl config set-context "kube-pan-test-app-review-mr1234-app" --cluster="kube-pan-test-app-review-mr1234-app" --user="kube-pan-test-app-review-mr1234-app" --namespace="pan-test-app-review"",
981
973
  "kubectl config use-context "kube-pan-test-app-review-mr1234-app"",
982
974
  "kubernetesDelete",
975
+ "echo Disabling component in Dependency Track",
976
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/app" "https://app.mr1234.review.test-app.pan.panter.cloud" || true",
983
977
  ],
984
978
  "stage": "stop review",
985
979
  "variables": {
@@ -1113,26 +1107,6 @@ jobs:
1113
1107
  "stage": "test",
1114
1108
  "variables": {},
1115
1109
  },
1116
- "app 🧾 sbom upload | review ": {
1117
- "allow_failure": true,
1118
- "image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
1119
- "interruptible": true,
1120
- "needs": [
1121
- "app 🧾 sbom | review ",
1122
- ],
1123
- "retry": {
1124
- "max": 2,
1125
- "when": [
1126
- "runner_system_failure",
1127
- "stuck_or_timeout_failure",
1128
- ],
1129
- },
1130
- "script": [
1131
- "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/app" "review" "__sbom.json" vex.json",
1132
- ],
1133
- "stage": "verify",
1134
- "variables": {},
1135
- },
1136
1110
  "app 🧾 sbom | review ": {
1137
1111
  "allow_failure": true,
1138
1112
  "artifacts": {
@@ -1142,9 +1116,7 @@ jobs:
1142
1116
  },
1143
1117
  "image": "aquasec/trivy:0.38.3",
1144
1118
  "interruptible": true,
1145
- "needs": [
1146
- "app 🚀 Deploy | review ",
1147
- ],
1119
+ "needs": [],
1148
1120
  "retry": {
1149
1121
  "max": 2,
1150
1122
  "when": [
@@ -1155,7 +1127,7 @@ jobs:
1155
1127
  "script": [
1156
1128
  "trivy fs --quiet --format cyclonedx --output "__sbom.json" .",
1157
1129
  ],
1158
- "stage": "verify",
1130
+ "stage": "build",
1159
1131
  "variables": {},
1160
1132
  },
1161
1133
  },
@@ -1566,6 +1538,10 @@ jobs:
1566
1538
  "artifacts": false,
1567
1539
  "job": "app 🔨 docker | prod ",
1568
1540
  },
1541
+ {
1542
+ "artifacts": true,
1543
+ "job": "app 🧾 sbom | prod ",
1544
+ },
1569
1545
  ],
1570
1546
  "retry": {
1571
1547
  "max": 2,
@@ -1586,6 +1562,8 @@ jobs:
1586
1562
  "kubectl config use-context "kube-pan-test-app-prod-app"",
1587
1563
  "kubernetesCreateSecret",
1588
1564
  "kubernetesDeploy",
1565
+ "echo Uploading SBOM to Dependency Track",
1566
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/app" "https://my-fancy-website.com" "__sbom.json" vex.json || true",
1589
1567
  "echo deployment successful 😻",
1590
1568
  ],
1591
1569
  "stage": "deploy prod",
@@ -1689,6 +1667,10 @@ jobs:
1689
1667
  "artifacts": false,
1690
1668
  "job": "app 🔨 docker | stage ",
1691
1669
  },
1670
+ {
1671
+ "artifacts": true,
1672
+ "job": "app 🧾 sbom | stage ",
1673
+ },
1692
1674
  ],
1693
1675
  "retry": {
1694
1676
  "max": 2,
@@ -1709,6 +1691,8 @@ jobs:
1709
1691
  "kubectl config use-context "kube-pan-test-app-stage-app"",
1710
1692
  "kubernetesCreateSecret",
1711
1693
  "kubernetesDeploy",
1694
+ "echo Uploading SBOM to Dependency Track",
1695
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/app" "https://app.stage.test-app.pan.panter.cloud" "__sbom.json" vex.json || true",
1712
1696
  "echo deployment successful 😻",
1713
1697
  ],
1714
1698
  "stage": "deploy stage",
@@ -1830,6 +1814,8 @@ jobs:
1830
1814
  "kubectl config set-context "kube-pan-test-app-prod-app" --cluster="kube-pan-test-app-prod-app" --user="kube-pan-test-app-prod-app" --namespace="pan-test-app-prod"",
1831
1815
  "kubectl config use-context "kube-pan-test-app-prod-app"",
1832
1816
  "kubernetesDelete",
1817
+ "echo Disabling component in Dependency Track",
1818
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/app" "https://my-fancy-website.com" || true",
1833
1819
  ],
1834
1820
  "stage": "stop prod",
1835
1821
  "variables": {
@@ -1945,6 +1931,8 @@ jobs:
1945
1931
  "kubectl config set-context "kube-pan-test-app-stage-app" --cluster="kube-pan-test-app-stage-app" --user="kube-pan-test-app-stage-app" --namespace="pan-test-app-stage"",
1946
1932
  "kubectl config use-context "kube-pan-test-app-stage-app"",
1947
1933
  "kubernetesDelete",
1934
+ "echo Disabling component in Dependency Track",
1935
+ "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/app" "https://app.stage.test-app.pan.panter.cloud" || true",
1948
1936
  ],
1949
1937
  "stage": "stop stage",
1950
1938
  "variables": {
@@ -2024,46 +2012,6 @@ jobs:
2024
2012
  "cloudsqlProxyCredentials": "$CL_stage_app_cloudsqlProxyCredentials",
2025
2013
  },
2026
2014
  },
2027
- "app 🧾 sbom upload | prod ": {
2028
- "allow_failure": true,
2029
- "image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
2030
- "interruptible": true,
2031
- "needs": [
2032
- "app 🧾 sbom | prod ",
2033
- ],
2034
- "retry": {
2035
- "max": 2,
2036
- "when": [
2037
- "runner_system_failure",
2038
- "stuck_or_timeout_failure",
2039
- ],
2040
- },
2041
- "script": [
2042
- "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/app" "prod" "__sbom.json" vex.json",
2043
- ],
2044
- "stage": "verify",
2045
- "variables": {},
2046
- },
2047
- "app 🧾 sbom upload | stage ": {
2048
- "allow_failure": true,
2049
- "image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
2050
- "interruptible": true,
2051
- "needs": [
2052
- "app 🧾 sbom | stage ",
2053
- ],
2054
- "retry": {
2055
- "max": 2,
2056
- "when": [
2057
- "runner_system_failure",
2058
- "stuck_or_timeout_failure",
2059
- ],
2060
- },
2061
- "script": [
2062
- "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/app" "stage" "__sbom.json" vex.json",
2063
- ],
2064
- "stage": "verify",
2065
- "variables": {},
2066
- },
2067
2015
  "app 🧾 sbom | prod ": {
2068
2016
  "allow_failure": true,
2069
2017
  "artifacts": {
@@ -2073,9 +2021,7 @@ jobs:
2073
2021
  },
2074
2022
  "image": "aquasec/trivy:0.38.3",
2075
2023
  "interruptible": true,
2076
- "needs": [
2077
- "app 🚀 Deploy | prod ",
2078
- ],
2024
+ "needs": [],
2079
2025
  "retry": {
2080
2026
  "max": 2,
2081
2027
  "when": [
@@ -2086,7 +2032,7 @@ jobs:
2086
2032
  "script": [
2087
2033
  "trivy fs --quiet --format cyclonedx --output "__sbom.json" .",
2088
2034
  ],
2089
- "stage": "verify",
2035
+ "stage": "build",
2090
2036
  "variables": {},
2091
2037
  },
2092
2038
  "app 🧾 sbom | stage ": {
@@ -2098,9 +2044,7 @@ jobs:
2098
2044
  },
2099
2045
  "image": "aquasec/trivy:0.38.3",
2100
2046
  "interruptible": true,
2101
- "needs": [
2102
- "app 🚀 Deploy | stage ",
2103
- ],
2047
+ "needs": [],
2104
2048
  "retry": {
2105
2049
  "max": 2,
2106
2050
  "when": [
@@ -2111,7 +2055,7 @@ jobs:
2111
2055
  "script": [
2112
2056
  "trivy fs --quiet --format cyclonedx --output "__sbom.json" .",
2113
2057
  ],
2114
- "stage": "verify",
2058
+ "stage": "build",
2115
2059
  "variables": {},
2116
2060
  },
2117
2061
  },