@catladder/pipeline 3.40.0 → 3.41.0

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 (83) hide show
  1. package/dist/build/base/index.js +2 -4
  2. package/dist/build/rails/build.js +1 -1
  3. package/dist/build/types.d.ts +0 -10
  4. package/dist/constants.js +1 -1
  5. package/dist/deploy/base/deploy.js +1 -6
  6. package/dist/deploy/cloudRun/createJobs/getCloudRunDeployScripts.js +2 -3
  7. package/dist/deploy/cloudRun/createJobs/getCloudRunStopScripts.js +2 -3
  8. package/dist/deploy/custom/deployJob.js +2 -3
  9. package/dist/deploy/kubernetes/deployJob.js +2 -3
  10. package/dist/tsconfig.tsbuildinfo +1 -1
  11. package/examples/__snapshots__/automatic-releases.test.ts.snap +0 -112
  12. package/examples/__snapshots__/cloud-run-execute-script-on-deploy.test.ts.snap +0 -112
  13. package/examples/__snapshots__/cloud-run-health-check-defaults.test.ts.snap +0 -112
  14. package/examples/__snapshots__/cloud-run-health-check-only-startup.test.ts.snap +0 -112
  15. package/examples/__snapshots__/cloud-run-health-check.test.ts.snap +0 -112
  16. package/examples/__snapshots__/cloud-run-http2.test.ts.snap +0 -112
  17. package/examples/__snapshots__/cloud-run-memory-limit.test.ts.snap +0 -112
  18. package/examples/__snapshots__/cloud-run-meteor-with-worker.test.ts.snap +0 -112
  19. package/examples/__snapshots__/cloud-run-n8n.test.ts.snap +940 -0
  20. package/examples/__snapshots__/cloud-run-nextjs.test.ts.snap +0 -112
  21. package/examples/__snapshots__/cloud-run-no-cpu-throttling.test.ts.snap +0 -112
  22. package/examples/__snapshots__/cloud-run-no-service.test.ts.snap +0 -112
  23. package/examples/__snapshots__/cloud-run-non-public.test.ts.snap +0 -112
  24. package/examples/__snapshots__/cloud-run-post-stop-job.test.ts.snap +0 -112
  25. package/examples/__snapshots__/cloud-run-service-custom-vpc-connector.test.ts.snap +0 -112
  26. package/examples/__snapshots__/cloud-run-service-custom-vpc.test.ts.snap +0 -112
  27. package/examples/__snapshots__/cloud-run-service-gen2.test.ts.snap +0 -112
  28. package/examples/__snapshots__/cloud-run-service-increase-timout.test.ts.snap +0 -112
  29. package/examples/__snapshots__/cloud-run-service-with-volumes.test.ts.snap +0 -112
  30. package/examples/__snapshots__/cloud-run-session-affinity.test.ts.snap +0 -112
  31. package/examples/__snapshots__/cloud-run-storybook.test.ts.snap +0 -112
  32. package/examples/__snapshots__/cloud-run-with-agents.test.ts.snap +0 -112
  33. package/examples/__snapshots__/cloud-run-with-gpu.test.ts.snap +0 -112
  34. package/examples/__snapshots__/cloud-run-with-ngnix.test.ts.snap +0 -112
  35. package/examples/__snapshots__/cloud-run-with-sql-legacy-jobs.test.ts.snap +0 -112
  36. package/examples/__snapshots__/cloud-run-with-sql-multiple-dbs.test.ts.snap +0 -336
  37. package/examples/__snapshots__/cloud-run-with-sql-reuse-db.test.ts.snap +0 -224
  38. package/examples/__snapshots__/cloud-run-with-sql.test.ts.snap +0 -112
  39. package/examples/__snapshots__/cloud-run-with-worker.test.ts.snap +0 -112
  40. package/examples/__snapshots__/custom-build-job-with-tests.test.ts.snap +0 -112
  41. package/examples/__snapshots__/custom-build-job.test.ts.snap +0 -112
  42. package/examples/__snapshots__/custom-deploy.test.ts.snap +0 -106
  43. package/examples/__snapshots__/custom-docker-file.test.ts.snap +0 -112
  44. package/examples/__snapshots__/custom-envs.test.ts.snap +0 -132
  45. package/examples/__snapshots__/custom-verify-job.test.ts.snap +0 -112
  46. package/examples/__snapshots__/git-submodule.test.ts.snap +0 -112
  47. package/examples/__snapshots__/kubernetes-application-customization.test.ts.snap +0 -112
  48. package/examples/__snapshots__/kubernetes-with-cloud-sql.test.ts.snap +0 -112
  49. package/examples/__snapshots__/kubernetes-with-jobs.test.ts.snap +0 -224
  50. package/examples/__snapshots__/kubernetes-with-mongodb.test.ts.snap +0 -112
  51. package/examples/__snapshots__/local-dot-env.test.ts.snap +0 -112
  52. package/examples/__snapshots__/meteor-kubernetes.test.ts.snap +0 -112
  53. package/examples/__snapshots__/modify-generated-files.test.ts.snap +0 -88
  54. package/examples/__snapshots__/modify-generated-yaml.test.ts.snap +0 -88
  55. package/examples/__snapshots__/multiline-var.test.ts.snap +0 -336
  56. package/examples/__snapshots__/native-app.test.ts.snap +0 -216
  57. package/examples/__snapshots__/node-build-with-custom-image.test.ts.snap +0 -112
  58. package/examples/__snapshots__/node-build-with-docker-additions.test.ts.snap +0 -112
  59. package/examples/__snapshots__/override-secrets.test.ts.snap +0 -112
  60. package/examples/__snapshots__/rails-k8s-with-worker-dockerfile.test.ts.snap +0 -112
  61. package/examples/__snapshots__/rails-k8s-with-worker.test.ts.snap +4 -112
  62. package/examples/__snapshots__/referencing-other-vars.test.ts.snap +0 -336
  63. package/examples/__snapshots__/wait-for-other-deploy.test.ts.snap +0 -208
  64. package/examples/__snapshots__/workspace-api-www-turbo-cache.test.ts.snap +0 -224
  65. package/examples/__snapshots__/workspace-api-www.test.ts.snap +0 -224
  66. package/examples/{custom-sbom-java.test.ts → cloud-run-n8n.test.ts} +2 -2
  67. package/examples/cloud-run-n8n.ts +62 -0
  68. package/package.json +1 -1
  69. package/src/build/base/index.ts +0 -4
  70. package/src/build/rails/build.ts +1 -0
  71. package/src/build/types.ts +0 -13
  72. package/src/deploy/base/deploy.ts +0 -5
  73. package/src/deploy/cloudRun/createJobs/getCloudRunDeployScripts.ts +0 -2
  74. package/src/deploy/cloudRun/createJobs/getCloudRunStopScripts.ts +0 -2
  75. package/src/deploy/custom/deployJob.ts +2 -9
  76. package/src/deploy/kubernetes/deployJob.ts +3 -10
  77. package/dist/build/sbom.d.ts +0 -5
  78. package/dist/build/sbom.js +0 -35
  79. package/dist/deploy/sbom.d.ts +0 -4
  80. package/dist/deploy/sbom.js +0 -21
  81. package/examples/custom-sbom-java.ts +0 -38
  82. package/src/build/sbom.ts +0 -53
  83. package/src/deploy/sbom.ts +0 -34
@@ -758,28 +758,6 @@ before_script:
758
758
  artifacts: true
759
759
  retry: *a1
760
760
  interruptible: true
761
- '🔹 api 🧾 sbom | dev ':
762
- stage: build
763
- image:
764
- name: aquasec/trivy:0.58.2
765
- entrypoint:
766
- - ''
767
- variables: {}
768
- script:
769
- - collapseable_section_start "injectvars" "Injecting variables"
770
- - collapseable_section_end "injectvars"
771
- - trivy fs --quiet --format cyclonedx --output "__sbom.json" api
772
- artifacts:
773
- paths:
774
- - __sbom.json
775
- rules:
776
- - when: never
777
- if: $CI_PIPELINE_SOURCE == "trigger"
778
- - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
779
- needs: []
780
- retry: *a1
781
- interruptible: true
782
- allow_failure: true
783
761
  '🔹 api 🚀 Deploy | dev ':
784
762
  stage: deploy dev
785
763
  image: path/to/docker/gcloud:the-version
@@ -859,8 +837,6 @@ before_script:
859
837
  - gcloud artifacts docker images list europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/api --sort-by=~CREATE_TIME --format="value(version)" | tail -n +2 | while read -r version; do gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/api@$version --quiet --delete-tags; done
860
838
  - set -e
861
839
  - collapseable_section_end "cleanup"
862
- - echo 'Uploading SBOM to Dependency Track'
863
- - /dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "$ROOT_URL" "__sbom.json" vex.json || true
864
840
  - echo "CL_GITLAB_ENVIRONMENT_URL=$ROOT_URL" >> gitlab_environment.env
865
841
  environment:
866
842
  name: dev/api
@@ -884,8 +860,6 @@ before_script:
884
860
  artifacts: false
885
861
  - job: '🔹 api 🔨 docker | dev '
886
862
  artifacts: false
887
- - job: '🔹 api 🧾 sbom | dev '
888
- artifacts: true
889
863
  retry: *a1
890
864
  interruptible: true
891
865
  allow_failure: false
@@ -906,8 +880,6 @@ before_script:
906
880
  - gcloud run services delete pan-test-app-dev-api --project=google-project-id --region=europe-west6
907
881
  - gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/dev/api --quiet --delete-tags
908
882
  - gcloud artifacts docker images list europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/api --sort-by=~CREATE_TIME --format="value(version)" | tail -n +2 | while read -r version; do gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/api@$version --quiet --delete-tags; done
909
- - echo 'Disabling component in Dependency Track'
910
- - /dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/api" "$CI_ENVIRONMENT_URL" || true
911
883
  - set -e
912
884
  environment:
913
885
  name: dev/api
@@ -985,28 +957,6 @@ before_script:
985
957
  artifacts: true
986
958
  retry: *a1
987
959
  interruptible: true
988
- '🔹 api 🧾 sbom | review ':
989
- stage: build
990
- image:
991
- name: aquasec/trivy:0.58.2
992
- entrypoint:
993
- - ''
994
- variables: {}
995
- script:
996
- - collapseable_section_start "injectvars" "Injecting variables"
997
- - collapseable_section_end "injectvars"
998
- - trivy fs --quiet --format cyclonedx --output "__sbom.json" api
999
- artifacts:
1000
- paths:
1001
- - __sbom.json
1002
- rules:
1003
- - when: never
1004
- if: $CI_PIPELINE_SOURCE == "trigger"
1005
- - if: $CI_MERGE_REQUEST_ID
1006
- needs: []
1007
- retry: *a1
1008
- interruptible: true
1009
- allow_failure: true
1010
960
  '🔹 api 🚀 Deploy | review ':
1011
961
  stage: deploy review
1012
962
  image: path/to/docker/gcloud:the-version
@@ -1089,8 +1039,6 @@ before_script:
1089
1039
  - set -e
1090
1040
  - set -e
1091
1041
  - collapseable_section_end "cleanup"
1092
- - echo 'Uploading SBOM to Dependency Track'
1093
- - /dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "$ROOT_URL" "__sbom.json" vex.json || true
1094
1042
  - echo "CL_GITLAB_ENVIRONMENT_URL=$ROOT_URL" >> gitlab_environment.env
1095
1043
  environment:
1096
1044
  name: review/$CI_COMMIT_REF_NAME/api
@@ -1114,8 +1062,6 @@ before_script:
1114
1062
  artifacts: false
1115
1063
  - job: '🔹 api 🔨 docker | review '
1116
1064
  artifacts: false
1117
- - job: '🔹 api 🧾 sbom | review '
1118
- artifacts: true
1119
1065
  retry: *a1
1120
1066
  interruptible: true
1121
1067
  allow_failure: false
@@ -1139,8 +1085,6 @@ before_script:
1139
1085
  - set +e
1140
1086
  - gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/review/api --quiet --delete-tags
1141
1087
  - set -e
1142
- - echo 'Disabling component in Dependency Track'
1143
- - /dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/api" "$CI_ENVIRONMENT_URL" || true
1144
1088
  - set -e
1145
1089
  environment:
1146
1090
  name: review/$CI_COMMIT_REF_NAME/api
@@ -1216,28 +1160,6 @@ before_script:
1216
1160
  artifacts: true
1217
1161
  retry: *a1
1218
1162
  interruptible: true
1219
- '🔹 api 🧾 sbom | stage ':
1220
- stage: build
1221
- image:
1222
- name: aquasec/trivy:0.58.2
1223
- entrypoint:
1224
- - ''
1225
- variables: {}
1226
- script:
1227
- - collapseable_section_start "injectvars" "Injecting variables"
1228
- - collapseable_section_end "injectvars"
1229
- - trivy fs --quiet --format cyclonedx --output "__sbom.json" api
1230
- artifacts:
1231
- paths:
1232
- - __sbom.json
1233
- rules:
1234
- - when: never
1235
- if: $CI_PIPELINE_SOURCE == "trigger"
1236
- - if: $CI_COMMIT_TAG
1237
- needs: []
1238
- retry: *a1
1239
- interruptible: true
1240
- allow_failure: true
1241
1163
  '🔹 api 🚀 Deploy | stage ':
1242
1164
  stage: deploy stage
1243
1165
  image: path/to/docker/gcloud:the-version
@@ -1317,8 +1239,6 @@ before_script:
1317
1239
  - gcloud artifacts docker images list europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/api --sort-by=~CREATE_TIME --format="value(version)" | tail -n +2 | while read -r version; do gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/api@$version --quiet --delete-tags; done
1318
1240
  - set -e
1319
1241
  - collapseable_section_end "cleanup"
1320
- - echo 'Uploading SBOM to Dependency Track'
1321
- - /dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "$ROOT_URL" "__sbom.json" vex.json || true
1322
1242
  - echo "CL_GITLAB_ENVIRONMENT_URL=$ROOT_URL" >> gitlab_environment.env
1323
1243
  environment:
1324
1244
  name: stage/api
@@ -1335,8 +1255,6 @@ before_script:
1335
1255
  needs:
1336
1256
  - job: '🔹 api 🔨 docker | stage '
1337
1257
  artifacts: false
1338
- - job: '🔹 api 🧾 sbom | stage '
1339
- artifacts: true
1340
1258
  retry: *a1
1341
1259
  interruptible: true
1342
1260
  allow_failure: false
@@ -1357,8 +1275,6 @@ before_script:
1357
1275
  - gcloud run services delete pan-test-app-stage-api --project=google-project-id --region=europe-west6
1358
1276
  - gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/stage/api --quiet --delete-tags
1359
1277
  - gcloud artifacts docker images list europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/api --sort-by=~CREATE_TIME --format="value(version)" | tail -n +2 | while read -r version; do gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/api@$version --quiet --delete-tags; done
1360
- - echo 'Disabling component in Dependency Track'
1361
- - /dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/api" "$CI_ENVIRONMENT_URL" || true
1362
1278
  - set -e
1363
1279
  environment:
1364
1280
  name: stage/api
@@ -1434,28 +1350,6 @@ before_script:
1434
1350
  artifacts: true
1435
1351
  retry: *a1
1436
1352
  interruptible: true
1437
- '🔹 api 🧾 sbom | prod ':
1438
- stage: build
1439
- image:
1440
- name: aquasec/trivy:0.58.2
1441
- entrypoint:
1442
- - ''
1443
- variables: {}
1444
- script:
1445
- - collapseable_section_start "injectvars" "Injecting variables"
1446
- - collapseable_section_end "injectvars"
1447
- - trivy fs --quiet --format cyclonedx --output "__sbom.json" api
1448
- artifacts:
1449
- paths:
1450
- - __sbom.json
1451
- rules:
1452
- - when: never
1453
- if: $CI_PIPELINE_SOURCE == "trigger"
1454
- - if: $CI_COMMIT_TAG
1455
- needs: []
1456
- retry: *a1
1457
- interruptible: true
1458
- allow_failure: true
1459
1353
  '🔹 api 🚀 Deploy | prod ':
1460
1354
  stage: deploy prod
1461
1355
  image: path/to/docker/gcloud:the-version
@@ -1535,8 +1429,6 @@ before_script:
1535
1429
  - gcloud artifacts docker images list europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/api --sort-by=~CREATE_TIME --format="value(version)" | tail -n +2 | while read -r version; do gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/api@$version --quiet --delete-tags; done
1536
1430
  - set -e
1537
1431
  - collapseable_section_end "cleanup"
1538
- - echo 'Uploading SBOM to Dependency Track'
1539
- - /dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "$ROOT_URL" "__sbom.json" vex.json || true
1540
1432
  - echo "CL_GITLAB_ENVIRONMENT_URL=$ROOT_URL" >> gitlab_environment.env
1541
1433
  environment:
1542
1434
  name: prod/api
@@ -1553,8 +1445,6 @@ before_script:
1553
1445
  needs:
1554
1446
  - job: '🔹 api 🔨 docker | prod '
1555
1447
  artifacts: false
1556
- - job: '🔹 api 🧾 sbom | prod '
1557
- artifacts: true
1558
1448
  retry: *a1
1559
1449
  interruptible: true
1560
1450
  allow_failure: true
@@ -1575,8 +1465,6 @@ before_script:
1575
1465
  - gcloud run services delete pan-test-app-prod-api --project=google-project-id --region=europe-west6
1576
1466
  - gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/prod/api --quiet --delete-tags
1577
1467
  - gcloud artifacts docker images list europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/api --sort-by=~CREATE_TIME --format="value(version)" | tail -n +2 | while read -r version; do gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/api@$version --quiet --delete-tags; done
1578
- - echo 'Disabling component in Dependency Track'
1579
- - /dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/api" "$CI_ENVIRONMENT_URL" || true
1580
1468
  - set -e
1581
1469
  environment:
1582
1470
  name: prod/api
@@ -1652,28 +1540,6 @@ before_script:
1652
1540
  artifacts: true
1653
1541
  retry: *a1
1654
1542
  interruptible: true
1655
- '🔹 www 🧾 sbom | dev ':
1656
- stage: build
1657
- image:
1658
- name: aquasec/trivy:0.58.2
1659
- entrypoint:
1660
- - ''
1661
- variables: {}
1662
- script:
1663
- - collapseable_section_start "injectvars" "Injecting variables"
1664
- - collapseable_section_end "injectvars"
1665
- - trivy fs --quiet --format cyclonedx --output "__sbom.json" www
1666
- artifacts:
1667
- paths:
1668
- - __sbom.json
1669
- rules:
1670
- - when: never
1671
- if: $CI_PIPELINE_SOURCE == "trigger"
1672
- - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
1673
- needs: []
1674
- retry: *a1
1675
- interruptible: true
1676
- allow_failure: true
1677
1543
  '🔹 www 🚀 Deploy | dev ':
1678
1544
  stage: deploy dev
1679
1545
  image: path/to/docker/gcloud:the-version
@@ -1756,8 +1622,6 @@ before_script:
1756
1622
  - gcloud artifacts docker images list europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/www --sort-by=~CREATE_TIME --format="value(version)" | tail -n +2 | while read -r version; do gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/www@$version --quiet --delete-tags; done
1757
1623
  - set -e
1758
1624
  - collapseable_section_end "cleanup"
1759
- - echo 'Uploading SBOM to Dependency Track'
1760
- - /dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "$ROOT_URL" "__sbom.json" vex.json || true
1761
1625
  - echo "CL_GITLAB_ENVIRONMENT_URL=$ROOT_URL" >> gitlab_environment.env
1762
1626
  environment:
1763
1627
  name: dev/www
@@ -1781,8 +1645,6 @@ before_script:
1781
1645
  artifacts: false
1782
1646
  - job: '🔹 www 🔨 docker | dev '
1783
1647
  artifacts: false
1784
- - job: '🔹 www 🧾 sbom | dev '
1785
- artifacts: true
1786
1648
  retry: *a1
1787
1649
  interruptible: true
1788
1650
  allow_failure: false
@@ -1803,8 +1665,6 @@ before_script:
1803
1665
  - gcloud run services delete pan-test-app-dev-www --project=google-project-id --region=europe-west6
1804
1666
  - gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/dev/www --quiet --delete-tags
1805
1667
  - gcloud artifacts docker images list europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/www --sort-by=~CREATE_TIME --format="value(version)" | tail -n +2 | while read -r version; do gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/www@$version --quiet --delete-tags; done
1806
- - echo 'Disabling component in Dependency Track'
1807
- - /dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/www" "$CI_ENVIRONMENT_URL" || true
1808
1668
  - set -e
1809
1669
  environment:
1810
1670
  name: dev/www
@@ -1882,28 +1742,6 @@ before_script:
1882
1742
  artifacts: true
1883
1743
  retry: *a1
1884
1744
  interruptible: true
1885
- '🔹 www 🧾 sbom | review ':
1886
- stage: build
1887
- image:
1888
- name: aquasec/trivy:0.58.2
1889
- entrypoint:
1890
- - ''
1891
- variables: {}
1892
- script:
1893
- - collapseable_section_start "injectvars" "Injecting variables"
1894
- - collapseable_section_end "injectvars"
1895
- - trivy fs --quiet --format cyclonedx --output "__sbom.json" www
1896
- artifacts:
1897
- paths:
1898
- - __sbom.json
1899
- rules:
1900
- - when: never
1901
- if: $CI_PIPELINE_SOURCE == "trigger"
1902
- - if: $CI_MERGE_REQUEST_ID
1903
- needs: []
1904
- retry: *a1
1905
- interruptible: true
1906
- allow_failure: true
1907
1745
  '🔹 www 🚀 Deploy | review ':
1908
1746
  stage: deploy review
1909
1747
  image: path/to/docker/gcloud:the-version
@@ -1989,8 +1827,6 @@ before_script:
1989
1827
  - set -e
1990
1828
  - set -e
1991
1829
  - collapseable_section_end "cleanup"
1992
- - echo 'Uploading SBOM to Dependency Track'
1993
- - /dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "$ROOT_URL" "__sbom.json" vex.json || true
1994
1830
  - echo "CL_GITLAB_ENVIRONMENT_URL=$ROOT_URL" >> gitlab_environment.env
1995
1831
  environment:
1996
1832
  name: review/$CI_COMMIT_REF_NAME/www
@@ -2014,8 +1850,6 @@ before_script:
2014
1850
  artifacts: false
2015
1851
  - job: '🔹 www 🔨 docker | review '
2016
1852
  artifacts: false
2017
- - job: '🔹 www 🧾 sbom | review '
2018
- artifacts: true
2019
1853
  retry: *a1
2020
1854
  interruptible: true
2021
1855
  allow_failure: false
@@ -2039,8 +1873,6 @@ before_script:
2039
1873
  - set +e
2040
1874
  - gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/review/www --quiet --delete-tags
2041
1875
  - set -e
2042
- - echo 'Disabling component in Dependency Track'
2043
- - /dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/www" "$CI_ENVIRONMENT_URL" || true
2044
1876
  - set -e
2045
1877
  environment:
2046
1878
  name: review/$CI_COMMIT_REF_NAME/www
@@ -2116,28 +1948,6 @@ before_script:
2116
1948
  artifacts: true
2117
1949
  retry: *a1
2118
1950
  interruptible: true
2119
- '🔹 www 🧾 sbom | stage ':
2120
- stage: build
2121
- image:
2122
- name: aquasec/trivy:0.58.2
2123
- entrypoint:
2124
- - ''
2125
- variables: {}
2126
- script:
2127
- - collapseable_section_start "injectvars" "Injecting variables"
2128
- - collapseable_section_end "injectvars"
2129
- - trivy fs --quiet --format cyclonedx --output "__sbom.json" www
2130
- artifacts:
2131
- paths:
2132
- - __sbom.json
2133
- rules:
2134
- - when: never
2135
- if: $CI_PIPELINE_SOURCE == "trigger"
2136
- - if: $CI_COMMIT_TAG
2137
- needs: []
2138
- retry: *a1
2139
- interruptible: true
2140
- allow_failure: true
2141
1951
  '🔹 www 🚀 Deploy | stage ':
2142
1952
  stage: deploy stage
2143
1953
  image: path/to/docker/gcloud:the-version
@@ -2220,8 +2030,6 @@ before_script:
2220
2030
  - gcloud artifacts docker images list europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/www --sort-by=~CREATE_TIME --format="value(version)" | tail -n +2 | while read -r version; do gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/www@$version --quiet --delete-tags; done
2221
2031
  - set -e
2222
2032
  - collapseable_section_end "cleanup"
2223
- - echo 'Uploading SBOM to Dependency Track'
2224
- - /dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "$ROOT_URL" "__sbom.json" vex.json || true
2225
2033
  - echo "CL_GITLAB_ENVIRONMENT_URL=$ROOT_URL" >> gitlab_environment.env
2226
2034
  environment:
2227
2035
  name: stage/www
@@ -2238,8 +2046,6 @@ before_script:
2238
2046
  needs:
2239
2047
  - job: '🔹 www 🔨 docker | stage '
2240
2048
  artifacts: false
2241
- - job: '🔹 www 🧾 sbom | stage '
2242
- artifacts: true
2243
2049
  retry: *a1
2244
2050
  interruptible: true
2245
2051
  allow_failure: false
@@ -2260,8 +2066,6 @@ before_script:
2260
2066
  - gcloud run services delete pan-test-app-stage-www --project=google-project-id --region=europe-west6
2261
2067
  - gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/stage/www --quiet --delete-tags
2262
2068
  - gcloud artifacts docker images list europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/www --sort-by=~CREATE_TIME --format="value(version)" | tail -n +2 | while read -r version; do gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/www@$version --quiet --delete-tags; done
2263
- - echo 'Disabling component in Dependency Track'
2264
- - /dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/www" "$CI_ENVIRONMENT_URL" || true
2265
2069
  - set -e
2266
2070
  environment:
2267
2071
  name: stage/www
@@ -2337,28 +2141,6 @@ before_script:
2337
2141
  artifacts: true
2338
2142
  retry: *a1
2339
2143
  interruptible: true
2340
- '🔹 www 🧾 sbom | prod ':
2341
- stage: build
2342
- image:
2343
- name: aquasec/trivy:0.58.2
2344
- entrypoint:
2345
- - ''
2346
- variables: {}
2347
- script:
2348
- - collapseable_section_start "injectvars" "Injecting variables"
2349
- - collapseable_section_end "injectvars"
2350
- - trivy fs --quiet --format cyclonedx --output "__sbom.json" www
2351
- artifacts:
2352
- paths:
2353
- - __sbom.json
2354
- rules:
2355
- - when: never
2356
- if: $CI_PIPELINE_SOURCE == "trigger"
2357
- - if: $CI_COMMIT_TAG
2358
- needs: []
2359
- retry: *a1
2360
- interruptible: true
2361
- allow_failure: true
2362
2144
  '🔹 www 🚀 Deploy | prod ':
2363
2145
  stage: deploy prod
2364
2146
  image: path/to/docker/gcloud:the-version
@@ -2441,8 +2223,6 @@ before_script:
2441
2223
  - gcloud artifacts docker images list europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/www --sort-by=~CREATE_TIME --format="value(version)" | tail -n +2 | while read -r version; do gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/www@$version --quiet --delete-tags; done
2442
2224
  - set -e
2443
2225
  - collapseable_section_end "cleanup"
2444
- - echo 'Uploading SBOM to Dependency Track'
2445
- - /dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "$ROOT_URL" "__sbom.json" vex.json || true
2446
2226
  - echo "CL_GITLAB_ENVIRONMENT_URL=$ROOT_URL" >> gitlab_environment.env
2447
2227
  environment:
2448
2228
  name: prod/www
@@ -2459,8 +2239,6 @@ before_script:
2459
2239
  needs:
2460
2240
  - job: '🔹 www 🔨 docker | prod '
2461
2241
  artifacts: false
2462
- - job: '🔹 www 🧾 sbom | prod '
2463
- artifacts: true
2464
2242
  retry: *a1
2465
2243
  interruptible: true
2466
2244
  allow_failure: true
@@ -2481,8 +2259,6 @@ before_script:
2481
2259
  - gcloud run services delete pan-test-app-prod-www --project=google-project-id --region=europe-west6
2482
2260
  - gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/prod/www --quiet --delete-tags
2483
2261
  - gcloud artifacts docker images list europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/www --sort-by=~CREATE_TIME --format="value(version)" | tail -n +2 | while read -r version; do gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/www@$version --quiet --delete-tags; done
2484
- - echo 'Disabling component in Dependency Track'
2485
- - /dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/www" "$CI_ENVIRONMENT_URL" || true
2486
2262
  - set -e
2487
2263
  environment:
2488
2264
  name: prod/www
@@ -1,12 +1,12 @@
1
1
  import { it, expect } from "vitest";
2
2
  import { createYamlLocalPipeline } from "./__utils__/helpers";
3
- import config from "./custom-sbom-java";
3
+ import config from "./cloud-run-n8n";
4
4
 
5
5
  /**
6
6
  * This test is auto-generated.
7
7
  * Modifications will be overwritten on every `yarn test` run!
8
8
  */
9
9
 
10
- it("matches snapshot for custom-sbom-java local pipeline YAML", async () => {
10
+ it("matches snapshot for cloud-run-n8n local pipeline YAML", async () => {
11
11
  expect(await createYamlLocalPipeline(config)).toMatchSnapshot();
12
12
  });
@@ -0,0 +1,62 @@
1
+ import type { Config } from "../src";
2
+
3
+ const config = {
4
+ appName: "my-n8n-app",
5
+ customerName: "pan",
6
+ components: {
7
+ n8n: {
8
+ dir: "n8n",
9
+ build: false,
10
+ vars: {
11
+ secret: ["N8N_ENCRYPTION_KEY"],
12
+ public: {
13
+ N8N_PORT: "8080",
14
+ N8N_PROTOCOL: "https",
15
+ DB_TYPE: "postgresdb",
16
+ DB_POSTGRESDB_DATABASE: "${DB_NAME}",
17
+ DB_POSTGRESDB_HOST: "/cloudsql/${CLOUD_SQL_INSTANCE_CONNECTION_NAME}",
18
+ DB_POSTGRESDB_USER: "${DB_USER}",
19
+ DB_POSTGRESDB_PASSWORD: "${DB_PASSWORD}",
20
+ DB_POSTGRESDB_PORT: "5432",
21
+ DB_POSTGRESDB_SCHEMA: "public",
22
+ GENERIC_TIMEZONE: "Europe/Zurich",
23
+ N8N_DIAGNOSTICS_ENABLED: "false",
24
+ N8N_PERSONALIZATION_ENABLED: "false",
25
+ QUEUE_HEALTH_CHECK_ACTIVE: "true",
26
+ WEBHOOK_URL: "${ROOT_URL}",
27
+ N8N_EDITOR_BASE_URL: "${ROOT_URL}",
28
+ },
29
+ },
30
+ deploy: {
31
+ type: "google-cloudrun",
32
+ projectId: "google-project-id",
33
+ region: "europe-west6",
34
+ cloudSql: {
35
+ type: "unmanaged",
36
+ instanceConnectionName: "projectId:region:instancename",
37
+ dbBaseName: "n8n",
38
+ },
39
+ service: {
40
+ image: "n8nio/n8n:2.12.0", // verify which is the current version
41
+ command: ["/bin/sh"],
42
+ args: ["-c", "sleep 5; n8n start"],
43
+ minInstances: 1,
44
+ maxInstances: 1,
45
+ noCpuThrottling: true,
46
+ memory: "2Gi",
47
+ cpu: 2,
48
+ executionEnvironment: "gen2",
49
+ allowUnauthenticated: true,
50
+ timeout: "3600s",
51
+ sessionAffinity: true,
52
+ },
53
+ },
54
+ },
55
+ },
56
+ } satisfies Config;
57
+
58
+ export default config;
59
+
60
+ export const information = {
61
+ title: "Cloud Run: n8n example",
62
+ };
package/package.json CHANGED
@@ -53,7 +53,7 @@
53
53
  }
54
54
  ],
55
55
  "license": "MIT",
56
- "version": "3.40.0",
56
+ "version": "3.41.0",
57
57
  "scripts": {
58
58
  "build:tsc": "yarn tsc",
59
59
  "build": "yarn build:compile && yarn build:inline-variables",
@@ -1,4 +1,3 @@
1
- import { sbomDeactivated } from "../../deploy/sbom";
2
1
  import type {
3
2
  ComponentContextWithBuild,
4
3
  WorkspaceContext,
@@ -6,7 +5,6 @@ import type {
6
5
  import {
7
6
  componentContextHasWorkspaceBuild,
8
7
  componentContextIsStandaloneBuild,
9
- type ComponentContext,
10
8
  } from "../../types/context";
11
9
  import type {
12
10
  AppBuildJobDefinition,
@@ -14,7 +12,6 @@ import type {
14
12
  } from "../../types/jobDefinition";
15
13
  import type { CatladderJob } from "../../types/jobs";
16
14
  import { createDockerBuildJobBase, requiresDockerBuild } from "../docker";
17
- import { createSbomBuildJob } from "../sbom";
18
15
  import { APP_BUILD_JOB_NAME } from "./constants";
19
16
  import { createAppBuildJob } from "./createAppBuildJob";
20
17
 
@@ -51,7 +48,6 @@ export const createComponentBuildJobs = (
51
48
  }),
52
49
  ]
53
50
  : []),
54
- ...(sbomDeactivated(context) ? [] : [createSbomBuildJob(context)]),
55
51
  ];
56
52
  };
57
53
 
@@ -52,6 +52,7 @@ export const createRailsBuildJobs = (
52
52
  `chmod +x /usr/local/bin/pack`,
53
53
  // replace private git ssh gem sources with https to make bundler with credentials via env var work
54
54
  `sed --in-place 's|git@\\([^:]*\\):|https://\\1/|g' Gemfile Gemfile.lock`,
55
+ `pack config registry-mirrors add index.docker.io --mirror mirror.gcr.io`,
55
56
  `pack build "$DOCKER_IMAGE:$DOCKER_IMAGE_TAG" --builder '${
56
57
  cnbConf?.image
57
58
  }' --publish --cache-image "$DOCKER_CACHE_IMAGE" ${packEnvArgs} ${
@@ -293,19 +293,6 @@ export type BuildConfigCustom = Omit<
293
293
  * custom audit, disabled when not set
294
294
  */
295
295
  audit?: TestJobCustom;
296
-
297
- /**
298
- * custom sbom (software bill of materials), set false to disable
299
- */
300
- sbom?:
301
- | false
302
- | {
303
- /**
304
- * needs to create a file at `/__sbom.json` in CycloneDX format
305
- */
306
- command: string | string[];
307
- jobImage: GitlabJobImage;
308
- };
309
296
  };
310
297
 
311
298
  export type BuildConfigRails = BuildConfigBase & {
@@ -3,14 +3,12 @@ import {
3
3
  getDockerImageVariables,
4
4
  requiresDockerBuild,
5
5
  } from "../../build/docker";
6
- import { SBOM_BUILD_JOB_NAME } from "../../build/sbom";
7
6
  import type { DeployJobDefinition } from "../../types";
8
7
  import {
9
8
  componentContextHasWorkspaceBuild,
10
9
  type ComponentContext,
11
10
  } from "../../types/context";
12
11
  import type { BaseStage, CatladderJob } from "../../types/jobs";
13
- import { sbomDeactivated } from "../sbom";
14
12
  import { contextIsStoppable } from "../utils";
15
13
  import { STOP_JOB_NAME } from "./stop";
16
14
 
@@ -58,9 +56,6 @@ export const createDeployJob = (
58
56
  envMode: "stagePerEnv", // makes it easier to run manual tasks er env
59
57
 
60
58
  needs: [
61
- ...(sbomDeactivated(context)
62
- ? []
63
- : [{ job: SBOM_BUILD_JOB_NAME, artifacts: true }]),
64
59
  ...(deployConfig
65
60
  ? (deployConfig.waitFor?.map((c) => ({
66
61
  componentName: c,
@@ -1,7 +1,6 @@
1
1
  import { omit } from "lodash";
2
2
  import type { ComponentContext } from "../../../types/context";
3
3
  import { collapseableSection } from "../../../utils/gitlab";
4
- import { getDependencyTrackUploadScript } from "../../sbom";
5
4
 
6
5
  import { GCLOUD_DEPLOY_CREDENTIALS_KEY } from "..";
7
6
  import { writeBashYamlToFileScript } from "../../../bash/bashYaml";
@@ -70,6 +69,5 @@ export function getCloudRunDeployScripts(context: ComponentContext) {
70
69
  )(
71
70
  getRemoveOldRevisionsAndImagesCommand(context, "postDeploy"), // we cleanup inactive images both on deploy and stop
72
71
  ),
73
- ...getDependencyTrackUploadScript(context),
74
72
  ];
75
73
  }
@@ -1,5 +1,4 @@
1
1
  import type { ComponentContext } from "../../../types/context";
2
- import { getDependencyTrackDeleteScript } from "../../sbom";
3
2
 
4
3
  import { getRemoveOldRevisionsAndImagesCommand } from "../cleanup";
5
4
  import { getDatabaseDeleteScript } from "../utils/database";
@@ -27,6 +26,5 @@ export function getCloudRunStopScripts(context: ComponentContext) {
27
26
  : []),
28
27
 
29
28
  ...getRemoveOldRevisionsAndImagesCommand(context, "onStop"), // we cleanup inactive images both on deploy and stop
30
- ...getDependencyTrackDeleteScript(context),
31
29
  ];
32
30
  }
@@ -4,10 +4,7 @@ import { getRunnerImage } from "../../runner";
4
4
  import type { ComponentContext } from "../../types/context";
5
5
  import type { CatladderJob } from "../../types/jobs";
6
6
  import { createDeployementJobs } from "../base";
7
- import {
8
- getDependencyTrackDeleteScript,
9
- getDependencyTrackUploadScript,
10
- } from "../sbom";
7
+
11
8
  import { isOfDeployType } from "../types";
12
9
 
13
10
  export const createCustomDeployJobs = (
@@ -32,17 +29,13 @@ export const createCustomDeployJobs = (
32
29
  `cd ${context.build.dir}`,
33
30
  ...(deployConfig.requiresYarnInstall ? yarnInstall : []),
34
31
  ...deployConfig.script,
35
- ...getDependencyTrackUploadScript(context),
36
32
  ],
37
33
  variables: {},
38
34
  },
39
35
  stop: deployConfig.stopScript
40
36
  ? {
41
37
  image: deployConfig.jobImage ?? getRunnerImage("jobs-default"),
42
- script: [
43
- ...deployConfig.stopScript,
44
- ...getDependencyTrackDeleteScript(context),
45
- ],
38
+ script: [...deployConfig.stopScript],
46
39
  variables: {},
47
40
  }
48
41
  : undefined,