@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.
- package/dist/build/custom/buildJob.js +4 -2
- package/dist/build/node/buildJob.js +4 -2
- package/dist/build/rails/build.js +13 -2
- package/dist/build/sbom.d.ts +5 -0
- package/dist/build/sbom.js +29 -0
- package/dist/bundles/catladder-gitlab/index.js +3 -3
- package/dist/constants.js +1 -1
- package/dist/deploy/base.js +38 -2
- package/dist/deploy/cloudRun/deployJob.js +5 -4
- package/dist/deploy/custom/deployJob.js +3 -2
- package/dist/deploy/kubernetes/deployJob.js +3 -2
- package/dist/deploy/sbom.d.ts +4 -0
- package/dist/deploy/sbom.js +17 -0
- package/dist/pipeline/createJobsForComponent.js +1 -3
- package/dist/pipeline/gitlab/createGitlabJobs.js +5 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/examples/__snapshots__/cloud-run-memory-limit.ts.snap +40 -96
- package/examples/__snapshots__/cloud-run-no-cpu-throttling.ts.snap +40 -96
- package/examples/__snapshots__/cloud-run-non-public.ts.snap +40 -96
- package/examples/__snapshots__/cloud-run-with-sql-reuse-db.ts.snap +80 -192
- package/examples/__snapshots__/cloud-run-with-sql.ts.snap +80 -192
- package/examples/__snapshots__/custom-build-job-with-tests.ts.snap +40 -96
- package/examples/__snapshots__/custom-build-job.ts.snap +40 -96
- package/examples/__snapshots__/custom-deploy.ts.snap +40 -96
- package/examples/__snapshots__/custom-envs.ts.snap +6 -126
- package/examples/__snapshots__/custom-sbom-java.ts.snap +40 -96
- package/examples/__snapshots__/kubernetes-application-customization.ts.snap +40 -96
- package/examples/__snapshots__/kubernetes-with-cloud-sql-legacy.ts.snap +40 -96
- package/examples/__snapshots__/kubernetes-with-cloud-sql.ts.snap +40 -96
- package/examples/__snapshots__/kubernetes-with-jobs.ts.snap +80 -192
- package/examples/__snapshots__/kubernetes-with-mongodb.ts.snap +40 -96
- package/examples/__snapshots__/native-app.ts.snap +72 -192
- package/examples/__snapshots__/node-build-with-custom-image.ts.snap +40 -96
- package/examples/__snapshots__/rails-k8s-with-worker.ts.snap +40 -96
- package/examples/__snapshots__/wait-for-other-deploy.ts.snap +64 -192
- package/package.json +1 -1
- package/src/build/custom/buildJob.ts +3 -0
- package/src/build/node/buildJob.ts +3 -0
- package/src/build/rails/build.ts +3 -0
- package/src/build/sbom.ts +43 -0
- package/src/deploy/base.ts +14 -7
- package/src/deploy/cloudRun/deployJob.ts +6 -0
- package/src/deploy/custom/deployJob.ts +9 -1
- package/src/deploy/kubernetes/deployJob.ts +10 -1
- package/src/deploy/sbom.ts +24 -0
- package/src/pipeline/createJobsForComponent.ts +1 -3
- package/src/pipeline/gitlab/createGitlabJobs.ts +6 -2
- package/dist/verify/reporting.d.ts +0 -3
- package/dist/verify/reporting.js +0 -48
- 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": "api 🧪 test",
|
|
225
225
|
},
|
|
226
|
+
{
|
|
227
|
+
"artifacts": true,
|
|
228
|
+
"job": "api 🧾 sbom | dev ",
|
|
229
|
+
},
|
|
226
230
|
{
|
|
227
231
|
"artifacts": false,
|
|
228
232
|
"job": "api 🛡 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-api --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/api" "https://pan-test-app-dev-api-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-api --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/api" "https://pan-test-app-dev-api-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
|
-
"api 🧾 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
|
-
"api 🧾 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/api" "dev" "__sbom.json" vex.json",
|
|
438
|
-
],
|
|
439
|
-
"stage": "verify",
|
|
440
|
-
"variables": {},
|
|
441
|
-
},
|
|
442
430
|
"api 🧾 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
|
-
"api 🚀 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" api",
|
|
463
449
|
],
|
|
464
|
-
"stage": "
|
|
450
|
+
"stage": "build",
|
|
465
451
|
"variables": {},
|
|
466
452
|
},
|
|
467
453
|
"app 👮 lint": {
|
|
@@ -652,6 +638,10 @@ EOF",
|
|
|
652
638
|
"artifacts": false,
|
|
653
639
|
"job": "app 🧪 test",
|
|
654
640
|
},
|
|
641
|
+
{
|
|
642
|
+
"artifacts": true,
|
|
643
|
+
"job": "app 🧾 sbom | dev ",
|
|
644
|
+
},
|
|
655
645
|
{
|
|
656
646
|
"artifacts": false,
|
|
657
647
|
"job": "app 🛡 audit",
|
|
@@ -675,6 +665,8 @@ EOF",
|
|
|
675
665
|
"gem install bundler",
|
|
676
666
|
"bundle install",
|
|
677
667
|
"bundle exec fastlane deploy_test",
|
|
668
|
+
"echo Uploading SBOM to Dependency Track",
|
|
669
|
+
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/app" "https://unknown-host.example.com" "__sbom.json" vex.json || true",
|
|
678
670
|
],
|
|
679
671
|
"stage": "deploy dev",
|
|
680
672
|
"tags": [
|
|
@@ -774,26 +766,6 @@ EOF",
|
|
|
774
766
|
"LC_A": "L=en_US.UTF-8",
|
|
775
767
|
},
|
|
776
768
|
},
|
|
777
|
-
"app 🧾 sbom upload | dev ": {
|
|
778
|
-
"allow_failure": true,
|
|
779
|
-
"image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
|
|
780
|
-
"interruptible": true,
|
|
781
|
-
"needs": [
|
|
782
|
-
"app 🧾 sbom | dev ",
|
|
783
|
-
],
|
|
784
|
-
"retry": {
|
|
785
|
-
"max": 2,
|
|
786
|
-
"when": [
|
|
787
|
-
"runner_system_failure",
|
|
788
|
-
"stuck_or_timeout_failure",
|
|
789
|
-
],
|
|
790
|
-
},
|
|
791
|
-
"script": [
|
|
792
|
-
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/app" "dev" "__sbom.json" vex.json",
|
|
793
|
-
],
|
|
794
|
-
"stage": "verify",
|
|
795
|
-
"variables": {},
|
|
796
|
-
},
|
|
797
769
|
"app 🧾 sbom | dev ": {
|
|
798
770
|
"allow_failure": true,
|
|
799
771
|
"artifacts": {
|
|
@@ -803,9 +775,7 @@ EOF",
|
|
|
803
775
|
},
|
|
804
776
|
"image": "aquasec/trivy:0.38.3",
|
|
805
777
|
"interruptible": true,
|
|
806
|
-
"needs": [
|
|
807
|
-
"app 🚀 Deploy | dev ",
|
|
808
|
-
],
|
|
778
|
+
"needs": [],
|
|
809
779
|
"retry": {
|
|
810
780
|
"max": 2,
|
|
811
781
|
"when": [
|
|
@@ -816,7 +786,7 @@ EOF",
|
|
|
816
786
|
"script": [
|
|
817
787
|
"trivy fs --quiet --format cyclonedx --output "__sbom.json" app",
|
|
818
788
|
],
|
|
819
|
-
"stage": "
|
|
789
|
+
"stage": "build",
|
|
820
790
|
"variables": {},
|
|
821
791
|
},
|
|
822
792
|
},
|
|
@@ -1109,6 +1079,10 @@ COPY --chown=node:node .yarn /app/.yarn",
|
|
|
1109
1079
|
"artifacts": false,
|
|
1110
1080
|
"job": "api 🧪 test",
|
|
1111
1081
|
},
|
|
1082
|
+
{
|
|
1083
|
+
"artifacts": true,
|
|
1084
|
+
"job": "api 🧾 sbom | review ",
|
|
1085
|
+
},
|
|
1112
1086
|
{
|
|
1113
1087
|
"artifacts": false,
|
|
1114
1088
|
"job": "api 🛡 audit",
|
|
@@ -1140,6 +1114,8 @@ COPY --chown=node:node .yarn /app/.yarn",
|
|
|
1140
1114
|
"echo "$ENV_VARS" > ____envvars.yaml",
|
|
1141
1115
|
"gcloud run deploy pan-test-app-review-mr1234-api --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",
|
|
1142
1116
|
"docker image rm asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG",
|
|
1117
|
+
"echo Uploading SBOM to Dependency Track",
|
|
1118
|
+
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "https://pan-test-app-review-mr1234-api-unknown-host.example.com" "__sbom.json" vex.json || true",
|
|
1143
1119
|
],
|
|
1144
1120
|
"services": [
|
|
1145
1121
|
{
|
|
@@ -1225,6 +1201,8 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
1225
1201
|
",
|
|
1226
1202
|
"gcloud auth activate-service-account --key-file="./____keyfile.json"",
|
|
1227
1203
|
"gcloud run services delete pan-test-app-review-mr1234-api --project=asdf --region=asia-east1",
|
|
1204
|
+
"echo Disabling component in Dependency Track",
|
|
1205
|
+
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/api" "https://pan-test-app-review-mr1234-api-unknown-host.example.com" || true",
|
|
1228
1206
|
"set -e",
|
|
1229
1207
|
],
|
|
1230
1208
|
"stage": "stop review",
|
|
@@ -1305,26 +1283,6 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
1305
1283
|
"KUBERNETES_MEMORY_REQUEST": "2Gi",
|
|
1306
1284
|
},
|
|
1307
1285
|
},
|
|
1308
|
-
"api 🧾 sbom upload | review ": {
|
|
1309
|
-
"allow_failure": true,
|
|
1310
|
-
"image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
|
|
1311
|
-
"interruptible": true,
|
|
1312
|
-
"needs": [
|
|
1313
|
-
"api 🧾 sbom | review ",
|
|
1314
|
-
],
|
|
1315
|
-
"retry": {
|
|
1316
|
-
"max": 2,
|
|
1317
|
-
"when": [
|
|
1318
|
-
"runner_system_failure",
|
|
1319
|
-
"stuck_or_timeout_failure",
|
|
1320
|
-
],
|
|
1321
|
-
},
|
|
1322
|
-
"script": [
|
|
1323
|
-
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "review" "__sbom.json" vex.json",
|
|
1324
|
-
],
|
|
1325
|
-
"stage": "verify",
|
|
1326
|
-
"variables": {},
|
|
1327
|
-
},
|
|
1328
1286
|
"api 🧾 sbom | review ": {
|
|
1329
1287
|
"allow_failure": true,
|
|
1330
1288
|
"artifacts": {
|
|
@@ -1334,9 +1292,7 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
1334
1292
|
},
|
|
1335
1293
|
"image": "aquasec/trivy:0.38.3",
|
|
1336
1294
|
"interruptible": true,
|
|
1337
|
-
"needs": [
|
|
1338
|
-
"api 🚀 Deploy | review ",
|
|
1339
|
-
],
|
|
1295
|
+
"needs": [],
|
|
1340
1296
|
"retry": {
|
|
1341
1297
|
"max": 2,
|
|
1342
1298
|
"when": [
|
|
@@ -1347,7 +1303,7 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
1347
1303
|
"script": [
|
|
1348
1304
|
"trivy fs --quiet --format cyclonedx --output "__sbom.json" api",
|
|
1349
1305
|
],
|
|
1350
|
-
"stage": "
|
|
1306
|
+
"stage": "build",
|
|
1351
1307
|
"variables": {},
|
|
1352
1308
|
},
|
|
1353
1309
|
"app 👮 lint": {
|
|
@@ -1538,6 +1494,10 @@ EOF",
|
|
|
1538
1494
|
"artifacts": false,
|
|
1539
1495
|
"job": "app 🧪 test",
|
|
1540
1496
|
},
|
|
1497
|
+
{
|
|
1498
|
+
"artifacts": true,
|
|
1499
|
+
"job": "app 🧾 sbom | review ",
|
|
1500
|
+
},
|
|
1541
1501
|
{
|
|
1542
1502
|
"artifacts": false,
|
|
1543
1503
|
"job": "app 🛡 audit",
|
|
@@ -1561,6 +1521,8 @@ EOF",
|
|
|
1561
1521
|
"gem install bundler",
|
|
1562
1522
|
"bundle install",
|
|
1563
1523
|
"bundle exec fastlane deploy_test",
|
|
1524
|
+
"echo Uploading SBOM to Dependency Track",
|
|
1525
|
+
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/app" "https://unknown-host.example.com" "__sbom.json" vex.json || true",
|
|
1564
1526
|
],
|
|
1565
1527
|
"stage": "deploy review",
|
|
1566
1528
|
"tags": [
|
|
@@ -1660,26 +1622,6 @@ EOF",
|
|
|
1660
1622
|
"LC_A": "L=en_US.UTF-8",
|
|
1661
1623
|
},
|
|
1662
1624
|
},
|
|
1663
|
-
"app 🧾 sbom upload | review ": {
|
|
1664
|
-
"allow_failure": true,
|
|
1665
|
-
"image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
|
|
1666
|
-
"interruptible": true,
|
|
1667
|
-
"needs": [
|
|
1668
|
-
"app 🧾 sbom | review ",
|
|
1669
|
-
],
|
|
1670
|
-
"retry": {
|
|
1671
|
-
"max": 2,
|
|
1672
|
-
"when": [
|
|
1673
|
-
"runner_system_failure",
|
|
1674
|
-
"stuck_or_timeout_failure",
|
|
1675
|
-
],
|
|
1676
|
-
},
|
|
1677
|
-
"script": [
|
|
1678
|
-
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/app" "review" "__sbom.json" vex.json",
|
|
1679
|
-
],
|
|
1680
|
-
"stage": "verify",
|
|
1681
|
-
"variables": {},
|
|
1682
|
-
},
|
|
1683
1625
|
"app 🧾 sbom | review ": {
|
|
1684
1626
|
"allow_failure": true,
|
|
1685
1627
|
"artifacts": {
|
|
@@ -1689,9 +1631,7 @@ EOF",
|
|
|
1689
1631
|
},
|
|
1690
1632
|
"image": "aquasec/trivy:0.38.3",
|
|
1691
1633
|
"interruptible": true,
|
|
1692
|
-
"needs": [
|
|
1693
|
-
"app 🚀 Deploy | review ",
|
|
1694
|
-
],
|
|
1634
|
+
"needs": [],
|
|
1695
1635
|
"retry": {
|
|
1696
1636
|
"max": 2,
|
|
1697
1637
|
"when": [
|
|
@@ -1702,7 +1642,7 @@ EOF",
|
|
|
1702
1642
|
"script": [
|
|
1703
1643
|
"trivy fs --quiet --format cyclonedx --output "__sbom.json" app",
|
|
1704
1644
|
],
|
|
1705
|
-
"stage": "
|
|
1645
|
+
"stage": "build",
|
|
1706
1646
|
"variables": {},
|
|
1707
1647
|
},
|
|
1708
1648
|
},
|
|
@@ -2087,6 +2027,10 @@ COPY --chown=node:node .yarn /app/.yarn",
|
|
|
2087
2027
|
"artifacts": false,
|
|
2088
2028
|
"job": "api 🔨 docker | prod ",
|
|
2089
2029
|
},
|
|
2030
|
+
{
|
|
2031
|
+
"artifacts": true,
|
|
2032
|
+
"job": "api 🧾 sbom | prod ",
|
|
2033
|
+
},
|
|
2090
2034
|
],
|
|
2091
2035
|
"retry": {
|
|
2092
2036
|
"max": 2,
|
|
@@ -2114,6 +2058,8 @@ COPY --chown=node:node .yarn /app/.yarn",
|
|
|
2114
2058
|
"echo "$ENV_VARS" > ____envvars.yaml",
|
|
2115
2059
|
"gcloud run deploy pan-test-app-prod-api --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",
|
|
2116
2060
|
"docker image rm asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG",
|
|
2061
|
+
"echo Uploading SBOM to Dependency Track",
|
|
2062
|
+
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "https://pan-test-app-prod-api-unknown-host.example.com" "__sbom.json" vex.json || true",
|
|
2117
2063
|
],
|
|
2118
2064
|
"services": [
|
|
2119
2065
|
{
|
|
@@ -2190,6 +2136,10 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
2190
2136
|
"artifacts": false,
|
|
2191
2137
|
"job": "api 🔨 docker | stage ",
|
|
2192
2138
|
},
|
|
2139
|
+
{
|
|
2140
|
+
"artifacts": true,
|
|
2141
|
+
"job": "api 🧾 sbom | stage ",
|
|
2142
|
+
},
|
|
2193
2143
|
],
|
|
2194
2144
|
"retry": {
|
|
2195
2145
|
"max": 2,
|
|
@@ -2217,6 +2167,8 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
2217
2167
|
"echo "$ENV_VARS" > ____envvars.yaml",
|
|
2218
2168
|
"gcloud run deploy pan-test-app-stage-api --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",
|
|
2219
2169
|
"docker image rm asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG",
|
|
2170
|
+
"echo Uploading SBOM to Dependency Track",
|
|
2171
|
+
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "https://pan-test-app-stage-api-unknown-host.example.com" "__sbom.json" vex.json || true",
|
|
2220
2172
|
],
|
|
2221
2173
|
"services": [
|
|
2222
2174
|
{
|
|
@@ -2302,6 +2254,8 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
2302
2254
|
",
|
|
2303
2255
|
"gcloud auth activate-service-account --key-file="./____keyfile.json"",
|
|
2304
2256
|
"gcloud run services delete pan-test-app-prod-api --project=asdf --region=asia-east1",
|
|
2257
|
+
"echo Disabling component in Dependency Track",
|
|
2258
|
+
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/api" "https://pan-test-app-prod-api-unknown-host.example.com" || true",
|
|
2305
2259
|
"set -e",
|
|
2306
2260
|
],
|
|
2307
2261
|
"stage": "stop prod",
|
|
@@ -2347,6 +2301,8 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
2347
2301
|
",
|
|
2348
2302
|
"gcloud auth activate-service-account --key-file="./____keyfile.json"",
|
|
2349
2303
|
"gcloud run services delete pan-test-app-stage-api --project=asdf --region=asia-east1",
|
|
2304
|
+
"echo Disabling component in Dependency Track",
|
|
2305
|
+
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/api" "https://pan-test-app-stage-api-unknown-host.example.com" || true",
|
|
2350
2306
|
"set -e",
|
|
2351
2307
|
],
|
|
2352
2308
|
"stage": "stop stage",
|
|
@@ -2359,46 +2315,6 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
2359
2315
|
"KUBERNETES_MEMORY_REQUEST": "200Mi",
|
|
2360
2316
|
},
|
|
2361
2317
|
},
|
|
2362
|
-
"api 🧾 sbom upload | prod ": {
|
|
2363
|
-
"allow_failure": true,
|
|
2364
|
-
"image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
|
|
2365
|
-
"interruptible": true,
|
|
2366
|
-
"needs": [
|
|
2367
|
-
"api 🧾 sbom | prod ",
|
|
2368
|
-
],
|
|
2369
|
-
"retry": {
|
|
2370
|
-
"max": 2,
|
|
2371
|
-
"when": [
|
|
2372
|
-
"runner_system_failure",
|
|
2373
|
-
"stuck_or_timeout_failure",
|
|
2374
|
-
],
|
|
2375
|
-
},
|
|
2376
|
-
"script": [
|
|
2377
|
-
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "prod" "__sbom.json" vex.json",
|
|
2378
|
-
],
|
|
2379
|
-
"stage": "verify",
|
|
2380
|
-
"variables": {},
|
|
2381
|
-
},
|
|
2382
|
-
"api 🧾 sbom upload | stage ": {
|
|
2383
|
-
"allow_failure": true,
|
|
2384
|
-
"image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
|
|
2385
|
-
"interruptible": true,
|
|
2386
|
-
"needs": [
|
|
2387
|
-
"api 🧾 sbom | stage ",
|
|
2388
|
-
],
|
|
2389
|
-
"retry": {
|
|
2390
|
-
"max": 2,
|
|
2391
|
-
"when": [
|
|
2392
|
-
"runner_system_failure",
|
|
2393
|
-
"stuck_or_timeout_failure",
|
|
2394
|
-
],
|
|
2395
|
-
},
|
|
2396
|
-
"script": [
|
|
2397
|
-
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "stage" "__sbom.json" vex.json",
|
|
2398
|
-
],
|
|
2399
|
-
"stage": "verify",
|
|
2400
|
-
"variables": {},
|
|
2401
|
-
},
|
|
2402
2318
|
"api 🧾 sbom | prod ": {
|
|
2403
2319
|
"allow_failure": true,
|
|
2404
2320
|
"artifacts": {
|
|
@@ -2408,9 +2324,7 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
2408
2324
|
},
|
|
2409
2325
|
"image": "aquasec/trivy:0.38.3",
|
|
2410
2326
|
"interruptible": true,
|
|
2411
|
-
"needs": [
|
|
2412
|
-
"api 🚀 Deploy | prod ",
|
|
2413
|
-
],
|
|
2327
|
+
"needs": [],
|
|
2414
2328
|
"retry": {
|
|
2415
2329
|
"max": 2,
|
|
2416
2330
|
"when": [
|
|
@@ -2421,7 +2335,7 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
2421
2335
|
"script": [
|
|
2422
2336
|
"trivy fs --quiet --format cyclonedx --output "__sbom.json" api",
|
|
2423
2337
|
],
|
|
2424
|
-
"stage": "
|
|
2338
|
+
"stage": "build",
|
|
2425
2339
|
"variables": {},
|
|
2426
2340
|
},
|
|
2427
2341
|
"api 🧾 sbom | stage ": {
|
|
@@ -2433,9 +2347,7 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
2433
2347
|
},
|
|
2434
2348
|
"image": "aquasec/trivy:0.38.3",
|
|
2435
2349
|
"interruptible": true,
|
|
2436
|
-
"needs": [
|
|
2437
|
-
"api 🚀 Deploy | stage ",
|
|
2438
|
-
],
|
|
2350
|
+
"needs": [],
|
|
2439
2351
|
"retry": {
|
|
2440
2352
|
"max": 2,
|
|
2441
2353
|
"when": [
|
|
@@ -2446,7 +2358,7 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
2446
2358
|
"script": [
|
|
2447
2359
|
"trivy fs --quiet --format cyclonedx --output "__sbom.json" api",
|
|
2448
2360
|
],
|
|
2449
|
-
"stage": "
|
|
2361
|
+
"stage": "build",
|
|
2450
2362
|
"variables": {},
|
|
2451
2363
|
},
|
|
2452
2364
|
"app 🔨 app | prod ": {
|
|
@@ -2694,6 +2606,10 @@ EOF",
|
|
|
2694
2606
|
"artifacts": true,
|
|
2695
2607
|
"job": "app 🔨 app | prod ",
|
|
2696
2608
|
},
|
|
2609
|
+
{
|
|
2610
|
+
"artifacts": true,
|
|
2611
|
+
"job": "app 🧾 sbom | prod ",
|
|
2612
|
+
},
|
|
2697
2613
|
],
|
|
2698
2614
|
"retry": {
|
|
2699
2615
|
"max": 2,
|
|
@@ -2713,6 +2629,8 @@ EOF",
|
|
|
2713
2629
|
"gem install bundler",
|
|
2714
2630
|
"bundle install",
|
|
2715
2631
|
"bundle exec fastlane deploy_test",
|
|
2632
|
+
"echo Uploading SBOM to Dependency Track",
|
|
2633
|
+
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/app" "https://unknown-host.example.com" "__sbom.json" vex.json || true",
|
|
2716
2634
|
],
|
|
2717
2635
|
"stage": "deploy prod",
|
|
2718
2636
|
"tags": [
|
|
@@ -2765,6 +2683,10 @@ EOF",
|
|
|
2765
2683
|
"artifacts": true,
|
|
2766
2684
|
"job": "app 🔨 app | stage ",
|
|
2767
2685
|
},
|
|
2686
|
+
{
|
|
2687
|
+
"artifacts": true,
|
|
2688
|
+
"job": "app 🧾 sbom | stage ",
|
|
2689
|
+
},
|
|
2768
2690
|
],
|
|
2769
2691
|
"retry": {
|
|
2770
2692
|
"max": 2,
|
|
@@ -2784,6 +2706,8 @@ EOF",
|
|
|
2784
2706
|
"gem install bundler",
|
|
2785
2707
|
"bundle install",
|
|
2786
2708
|
"bundle exec fastlane deploy_test",
|
|
2709
|
+
"echo Uploading SBOM to Dependency Track",
|
|
2710
|
+
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/app" "https://unknown-host.example.com" "__sbom.json" vex.json || true",
|
|
2787
2711
|
],
|
|
2788
2712
|
"stage": "deploy stage",
|
|
2789
2713
|
"tags": [
|
|
@@ -2811,46 +2735,6 @@ EOF",
|
|
|
2811
2735
|
"_ALL_ENV_VAR_KEYS": "["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOST","ROOT_URL","APP_STORE_CONNECT_API_KEY_CONTENT","APP_STORE_CONNECT_ISSUER_ID","APP_STORE_CONNECT_API_KEY_ID","GRAPHQL_URL"]",
|
|
2812
2736
|
},
|
|
2813
2737
|
},
|
|
2814
|
-
"app 🧾 sbom upload | prod ": {
|
|
2815
|
-
"allow_failure": true,
|
|
2816
|
-
"image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
|
|
2817
|
-
"interruptible": true,
|
|
2818
|
-
"needs": [
|
|
2819
|
-
"app 🧾 sbom | prod ",
|
|
2820
|
-
],
|
|
2821
|
-
"retry": {
|
|
2822
|
-
"max": 2,
|
|
2823
|
-
"when": [
|
|
2824
|
-
"runner_system_failure",
|
|
2825
|
-
"stuck_or_timeout_failure",
|
|
2826
|
-
],
|
|
2827
|
-
},
|
|
2828
|
-
"script": [
|
|
2829
|
-
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/app" "prod" "__sbom.json" vex.json",
|
|
2830
|
-
],
|
|
2831
|
-
"stage": "verify",
|
|
2832
|
-
"variables": {},
|
|
2833
|
-
},
|
|
2834
|
-
"app 🧾 sbom upload | stage ": {
|
|
2835
|
-
"allow_failure": true,
|
|
2836
|
-
"image": "git.panter.ch:5001/open-source/dependency-track-uploader:dtrackuploader-v0.2.1",
|
|
2837
|
-
"interruptible": true,
|
|
2838
|
-
"needs": [
|
|
2839
|
-
"app 🧾 sbom | stage ",
|
|
2840
|
-
],
|
|
2841
|
-
"retry": {
|
|
2842
|
-
"max": 2,
|
|
2843
|
-
"when": [
|
|
2844
|
-
"runner_system_failure",
|
|
2845
|
-
"stuck_or_timeout_failure",
|
|
2846
|
-
],
|
|
2847
|
-
},
|
|
2848
|
-
"script": [
|
|
2849
|
-
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/app" "stage" "__sbom.json" vex.json",
|
|
2850
|
-
],
|
|
2851
|
-
"stage": "verify",
|
|
2852
|
-
"variables": {},
|
|
2853
|
-
},
|
|
2854
2738
|
"app 🧾 sbom | prod ": {
|
|
2855
2739
|
"allow_failure": true,
|
|
2856
2740
|
"artifacts": {
|
|
@@ -2860,9 +2744,7 @@ EOF",
|
|
|
2860
2744
|
},
|
|
2861
2745
|
"image": "aquasec/trivy:0.38.3",
|
|
2862
2746
|
"interruptible": true,
|
|
2863
|
-
"needs": [
|
|
2864
|
-
"app 🚀 Deploy | prod ",
|
|
2865
|
-
],
|
|
2747
|
+
"needs": [],
|
|
2866
2748
|
"retry": {
|
|
2867
2749
|
"max": 2,
|
|
2868
2750
|
"when": [
|
|
@@ -2873,7 +2755,7 @@ EOF",
|
|
|
2873
2755
|
"script": [
|
|
2874
2756
|
"trivy fs --quiet --format cyclonedx --output "__sbom.json" app",
|
|
2875
2757
|
],
|
|
2876
|
-
"stage": "
|
|
2758
|
+
"stage": "build",
|
|
2877
2759
|
"variables": {},
|
|
2878
2760
|
},
|
|
2879
2761
|
"app 🧾 sbom | stage ": {
|
|
@@ -2885,9 +2767,7 @@ EOF",
|
|
|
2885
2767
|
},
|
|
2886
2768
|
"image": "aquasec/trivy:0.38.3",
|
|
2887
2769
|
"interruptible": true,
|
|
2888
|
-
"needs": [
|
|
2889
|
-
"app 🚀 Deploy | stage ",
|
|
2890
|
-
],
|
|
2770
|
+
"needs": [],
|
|
2891
2771
|
"retry": {
|
|
2892
2772
|
"max": 2,
|
|
2893
2773
|
"when": [
|
|
@@ -2898,7 +2778,7 @@ EOF",
|
|
|
2898
2778
|
"script": [
|
|
2899
2779
|
"trivy fs --quiet --format cyclonedx --output "__sbom.json" app",
|
|
2900
2780
|
],
|
|
2901
|
-
"stage": "
|
|
2781
|
+
"stage": "build",
|
|
2902
2782
|
"variables": {},
|
|
2903
2783
|
},
|
|
2904
2784
|
},
|