@catladder/pipeline 1.168.0 → 1.168.2
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/base/createAppBuildJob.d.ts +1 -2
- package/dist/build/base/createBuildJobDefinition.d.ts +3 -4
- package/dist/build/base/index.d.ts +1 -2
- package/dist/build/cache/createJobCache.d.ts +3 -2
- package/dist/build/cache/createJobCache.js +2 -2
- package/dist/build/cache/getAllCacheConfigsFromConfig.d.ts +2 -2
- package/dist/build/cache/getAllCacheConfigsFromConfig.js +2 -6
- package/dist/build/docker.d.ts +2 -3
- package/dist/build/node/buildJob.d.ts +1 -2
- package/dist/build/types.d.ts +6 -0
- package/dist/bundles/catladder-gitlab/index.js +1 -1
- package/dist/constants.js +1 -1
- package/dist/context/getEnvironmentVariables.d.ts +1 -1
- package/dist/deploy/base/deploy.d.ts +1 -1
- package/dist/deploy/base/deploy.js +2 -1
- package/dist/deploy/base/index.d.ts +1 -3
- package/dist/deploy/base/rollback.d.ts +1 -1
- package/dist/deploy/base/stop.d.ts +1 -1
- package/dist/deploy/custom/deployJob.js +6 -4
- package/dist/deploy/types/custom.d.ts +2 -6
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/config.d.ts +3 -3
- package/dist/types/jobDefinition.d.ts +8 -2
- package/examples/__snapshots__/custom-deploy.test.ts.snap +0 -4
- package/examples/__snapshots__/native-app.test.ts.snap +4 -0
- package/examples/__snapshots__/rails-k8s-with-worker-dockerfile.test.ts.snap +27 -27
- package/examples/__snapshots__/wait-for-other-deploy.test.ts.snap +0 -8
- package/examples/native-app.ts +6 -6
- package/examples/rails-k8s-with-worker-dockerfile.test.ts +21 -4
- package/package.json +1 -1
- package/src/build/base/createAppBuildJob.ts +1 -2
- package/src/build/base/createBuildJobDefinition.ts +3 -4
- package/src/build/base/index.ts +4 -2
- package/src/build/cache/createJobCache.ts +6 -9
- package/src/build/cache/getAllCacheConfigsFromConfig.ts +5 -12
- package/src/build/docker.ts +2 -3
- package/src/build/node/buildJob.ts +4 -2
- package/src/build/types.ts +7 -0
- package/src/deploy/base/deploy.ts +5 -11
- package/src/deploy/base/index.ts +8 -3
- package/src/deploy/base/rollback.ts +1 -4
- package/src/deploy/base/stop.ts +1 -4
- package/src/deploy/custom/deployJob.ts +5 -2
- package/src/deploy/types/custom.ts +3 -7
- package/src/types/jobDefinition.ts +27 -2
|
@@ -52,7 +52,7 @@ app 🛡 audit:
|
|
|
52
52
|
script:
|
|
53
53
|
- echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"
|
|
54
54
|
- echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"
|
|
55
|
-
- cd .
|
|
55
|
+
- cd .temp-with-dockerfile
|
|
56
56
|
- gem install bundler-audit
|
|
57
57
|
- bundle audit check
|
|
58
58
|
rules:
|
|
@@ -75,7 +75,7 @@ app 👮 lint:
|
|
|
75
75
|
script:
|
|
76
76
|
- echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"
|
|
77
77
|
- echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"
|
|
78
|
-
- cd .
|
|
78
|
+
- cd .temp-with-dockerfile
|
|
79
79
|
- bundle config set path 'tmp/cache'
|
|
80
80
|
- bundle install -j $(nproc)
|
|
81
81
|
- bundle exec rubocop
|
|
@@ -101,7 +101,7 @@ app 🧪 test:
|
|
|
101
101
|
script:
|
|
102
102
|
- echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"
|
|
103
103
|
- echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"
|
|
104
|
-
- cd .
|
|
104
|
+
- cd .temp-with-dockerfile
|
|
105
105
|
- bundle config set path 'tmp/cache'
|
|
106
106
|
- bundle install -j $(nproc)
|
|
107
107
|
- bundle exec rspec
|
|
@@ -131,7 +131,7 @@ app 🧪 test:
|
|
|
131
131
|
KUBERNETES_MEMORY_LIMIT: 2Gi
|
|
132
132
|
script:
|
|
133
133
|
- echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"
|
|
134
|
-
- export APP_DIR="."
|
|
134
|
+
- export APP_DIR=".temp-with-dockerfile"
|
|
135
135
|
- export DOCKER_BUILD_CONTEXT="."
|
|
136
136
|
- export DOCKER_REGISTRY="$CI_REGISTRY"
|
|
137
137
|
- export DOCKER_CACHE_IMAGE="$CI_REGISTRY_IMAGE/caches/app"
|
|
@@ -164,7 +164,7 @@ app 🧪 test:
|
|
|
164
164
|
script:
|
|
165
165
|
- echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"
|
|
166
166
|
- echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"
|
|
167
|
-
- trivy fs --quiet --format cyclonedx --output "__sbom.json" .
|
|
167
|
+
- trivy fs --quiet --format cyclonedx --output "__sbom.json" .temp-with-dockerfile
|
|
168
168
|
artifacts:
|
|
169
169
|
paths:
|
|
170
170
|
- __sbom.json
|
|
@@ -186,7 +186,7 @@ app 🧪 test:
|
|
|
186
186
|
script:
|
|
187
187
|
- echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"
|
|
188
188
|
- export ENV_SHORT="dev"
|
|
189
|
-
- export APP_DIR="."
|
|
189
|
+
- export APP_DIR=".temp-with-dockerfile"
|
|
190
190
|
- export ENV_TYPE="dev"
|
|
191
191
|
- export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
|
|
192
192
|
- export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
|
|
@@ -235,7 +235,7 @@ app 🧪 test:
|
|
|
235
235
|
ENV_SHORT: |-
|
|
236
236
|
dev
|
|
237
237
|
APP_DIR: |-
|
|
238
|
-
.
|
|
238
|
+
.temp-with-dockerfile
|
|
239
239
|
ENV_TYPE: |-
|
|
240
240
|
dev
|
|
241
241
|
BUILD_INFO_BUILD_ID: |-
|
|
@@ -348,7 +348,7 @@ app 🧪 test:
|
|
|
348
348
|
script:
|
|
349
349
|
- echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"
|
|
350
350
|
- export ENV_SHORT="dev"
|
|
351
|
-
- export APP_DIR="."
|
|
351
|
+
- export APP_DIR=".temp-with-dockerfile"
|
|
352
352
|
- export ENV_TYPE="dev"
|
|
353
353
|
- export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
|
|
354
354
|
- export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
|
|
@@ -410,7 +410,7 @@ app 🧪 test:
|
|
|
410
410
|
script:
|
|
411
411
|
- echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"
|
|
412
412
|
- export ENV_SHORT="dev"
|
|
413
|
-
- export APP_DIR="."
|
|
413
|
+
- export APP_DIR=".temp-with-dockerfile"
|
|
414
414
|
- export ENV_TYPE="dev"
|
|
415
415
|
- export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
|
|
416
416
|
- export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
|
|
@@ -474,7 +474,7 @@ app 🧪 test:
|
|
|
474
474
|
KUBERNETES_MEMORY_LIMIT: 2Gi
|
|
475
475
|
script:
|
|
476
476
|
- echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"
|
|
477
|
-
- export APP_DIR="."
|
|
477
|
+
- export APP_DIR=".temp-with-dockerfile"
|
|
478
478
|
- export DOCKER_BUILD_CONTEXT="."
|
|
479
479
|
- export DOCKER_REGISTRY="$CI_REGISTRY"
|
|
480
480
|
- export DOCKER_CACHE_IMAGE="$CI_REGISTRY_IMAGE/caches/app"
|
|
@@ -505,7 +505,7 @@ app 🧪 test:
|
|
|
505
505
|
script:
|
|
506
506
|
- echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"
|
|
507
507
|
- echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"
|
|
508
|
-
- trivy fs --quiet --format cyclonedx --output "__sbom.json" .
|
|
508
|
+
- trivy fs --quiet --format cyclonedx --output "__sbom.json" .temp-with-dockerfile
|
|
509
509
|
artifacts:
|
|
510
510
|
paths:
|
|
511
511
|
- __sbom.json
|
|
@@ -525,7 +525,7 @@ app 🧪 test:
|
|
|
525
525
|
script:
|
|
526
526
|
- echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"
|
|
527
527
|
- export ENV_SHORT="review"
|
|
528
|
-
- export APP_DIR="."
|
|
528
|
+
- export APP_DIR=".temp-with-dockerfile"
|
|
529
529
|
- export ENV_TYPE="review"
|
|
530
530
|
- export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
|
|
531
531
|
- export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
|
|
@@ -574,7 +574,7 @@ app 🧪 test:
|
|
|
574
574
|
ENV_SHORT: |-
|
|
575
575
|
review
|
|
576
576
|
APP_DIR: |-
|
|
577
|
-
.
|
|
577
|
+
.temp-with-dockerfile
|
|
578
578
|
ENV_TYPE: |-
|
|
579
579
|
review
|
|
580
580
|
BUILD_INFO_BUILD_ID: |-
|
|
@@ -691,7 +691,7 @@ app 🧪 test:
|
|
|
691
691
|
script:
|
|
692
692
|
- echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"
|
|
693
693
|
- export ENV_SHORT="review"
|
|
694
|
-
- export APP_DIR="."
|
|
694
|
+
- export APP_DIR=".temp-with-dockerfile"
|
|
695
695
|
- export ENV_TYPE="review"
|
|
696
696
|
- export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
|
|
697
697
|
- export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
|
|
@@ -751,7 +751,7 @@ app 🧪 test:
|
|
|
751
751
|
script:
|
|
752
752
|
- echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"
|
|
753
753
|
- export ENV_SHORT="review"
|
|
754
|
-
- export APP_DIR="."
|
|
754
|
+
- export APP_DIR=".temp-with-dockerfile"
|
|
755
755
|
- export ENV_TYPE="review"
|
|
756
756
|
- export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
|
|
757
757
|
- export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
|
|
@@ -813,7 +813,7 @@ app 🧪 test:
|
|
|
813
813
|
KUBERNETES_MEMORY_LIMIT: 2Gi
|
|
814
814
|
script:
|
|
815
815
|
- echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"
|
|
816
|
-
- export APP_DIR="."
|
|
816
|
+
- export APP_DIR=".temp-with-dockerfile"
|
|
817
817
|
- export DOCKER_BUILD_CONTEXT="."
|
|
818
818
|
- export DOCKER_REGISTRY="$CI_REGISTRY"
|
|
819
819
|
- export DOCKER_CACHE_IMAGE="$CI_REGISTRY_IMAGE/caches/app"
|
|
@@ -844,7 +844,7 @@ app 🧪 test:
|
|
|
844
844
|
script:
|
|
845
845
|
- echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"
|
|
846
846
|
- echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"
|
|
847
|
-
- trivy fs --quiet --format cyclonedx --output "__sbom.json" .
|
|
847
|
+
- trivy fs --quiet --format cyclonedx --output "__sbom.json" .temp-with-dockerfile
|
|
848
848
|
artifacts:
|
|
849
849
|
paths:
|
|
850
850
|
- __sbom.json
|
|
@@ -864,7 +864,7 @@ app 🧪 test:
|
|
|
864
864
|
script:
|
|
865
865
|
- echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"
|
|
866
866
|
- export ENV_SHORT="stage"
|
|
867
|
-
- export APP_DIR="."
|
|
867
|
+
- export APP_DIR=".temp-with-dockerfile"
|
|
868
868
|
- export ENV_TYPE="stage"
|
|
869
869
|
- export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
|
|
870
870
|
- export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
|
|
@@ -913,7 +913,7 @@ app 🧪 test:
|
|
|
913
913
|
ENV_SHORT: |-
|
|
914
914
|
stage
|
|
915
915
|
APP_DIR: |-
|
|
916
|
-
.
|
|
916
|
+
.temp-with-dockerfile
|
|
917
917
|
ENV_TYPE: |-
|
|
918
918
|
stage
|
|
919
919
|
BUILD_INFO_BUILD_ID: |-
|
|
@@ -1017,7 +1017,7 @@ app 🧪 test:
|
|
|
1017
1017
|
script:
|
|
1018
1018
|
- echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"
|
|
1019
1019
|
- export ENV_SHORT="stage"
|
|
1020
|
-
- export APP_DIR="."
|
|
1020
|
+
- export APP_DIR=".temp-with-dockerfile"
|
|
1021
1021
|
- export ENV_TYPE="stage"
|
|
1022
1022
|
- export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
|
|
1023
1023
|
- export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
|
|
@@ -1077,7 +1077,7 @@ app 🧪 test:
|
|
|
1077
1077
|
script:
|
|
1078
1078
|
- echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"
|
|
1079
1079
|
- export ENV_SHORT="stage"
|
|
1080
|
-
- export APP_DIR="."
|
|
1080
|
+
- export APP_DIR=".temp-with-dockerfile"
|
|
1081
1081
|
- export ENV_TYPE="stage"
|
|
1082
1082
|
- export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
|
|
1083
1083
|
- export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
|
|
@@ -1139,7 +1139,7 @@ app 🧪 test:
|
|
|
1139
1139
|
KUBERNETES_MEMORY_LIMIT: 2Gi
|
|
1140
1140
|
script:
|
|
1141
1141
|
- echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"
|
|
1142
|
-
- export APP_DIR="."
|
|
1142
|
+
- export APP_DIR=".temp-with-dockerfile"
|
|
1143
1143
|
- export DOCKER_BUILD_CONTEXT="."
|
|
1144
1144
|
- export DOCKER_REGISTRY="$CI_REGISTRY"
|
|
1145
1145
|
- export DOCKER_CACHE_IMAGE="$CI_REGISTRY_IMAGE/caches/app"
|
|
@@ -1170,7 +1170,7 @@ app 🧪 test:
|
|
|
1170
1170
|
script:
|
|
1171
1171
|
- echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"
|
|
1172
1172
|
- echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"
|
|
1173
|
-
- trivy fs --quiet --format cyclonedx --output "__sbom.json" .
|
|
1173
|
+
- trivy fs --quiet --format cyclonedx --output "__sbom.json" .temp-with-dockerfile
|
|
1174
1174
|
artifacts:
|
|
1175
1175
|
paths:
|
|
1176
1176
|
- __sbom.json
|
|
@@ -1190,7 +1190,7 @@ app 🧪 test:
|
|
|
1190
1190
|
script:
|
|
1191
1191
|
- echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"
|
|
1192
1192
|
- export ENV_SHORT="prod"
|
|
1193
|
-
- export APP_DIR="."
|
|
1193
|
+
- export APP_DIR=".temp-with-dockerfile"
|
|
1194
1194
|
- export ENV_TYPE="prod"
|
|
1195
1195
|
- export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
|
|
1196
1196
|
- export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
|
|
@@ -1239,7 +1239,7 @@ app 🧪 test:
|
|
|
1239
1239
|
ENV_SHORT: |-
|
|
1240
1240
|
prod
|
|
1241
1241
|
APP_DIR: |-
|
|
1242
|
-
.
|
|
1242
|
+
.temp-with-dockerfile
|
|
1243
1243
|
ENV_TYPE: |-
|
|
1244
1244
|
prod
|
|
1245
1245
|
BUILD_INFO_BUILD_ID: |-
|
|
@@ -1343,7 +1343,7 @@ app 🧪 test:
|
|
|
1343
1343
|
script:
|
|
1344
1344
|
- echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"
|
|
1345
1345
|
- export ENV_SHORT="prod"
|
|
1346
|
-
- export APP_DIR="."
|
|
1346
|
+
- export APP_DIR=".temp-with-dockerfile"
|
|
1347
1347
|
- export ENV_TYPE="prod"
|
|
1348
1348
|
- export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
|
|
1349
1349
|
- export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
|
|
@@ -1403,7 +1403,7 @@ app 🧪 test:
|
|
|
1403
1403
|
script:
|
|
1404
1404
|
- echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"
|
|
1405
1405
|
- export ENV_SHORT="prod"
|
|
1406
|
-
- export APP_DIR="."
|
|
1406
|
+
- export APP_DIR=".temp-with-dockerfile"
|
|
1407
1407
|
- export ENV_TYPE="prod"
|
|
1408
1408
|
- export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
|
|
1409
1409
|
- export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
|
|
@@ -262,7 +262,6 @@ api 🧪 test:
|
|
|
262
262
|
- yarn deploy
|
|
263
263
|
- echo 'Uploading SBOM to Dependency Track'
|
|
264
264
|
- /dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "https://unknown-host.example.com" "__sbom.json" vex.json || true
|
|
265
|
-
cache: []
|
|
266
265
|
rules:
|
|
267
266
|
- when: never
|
|
268
267
|
if: $CI_COMMIT_MESSAGE =~ /^chore\\(release\\).*/
|
|
@@ -387,7 +386,6 @@ api 🧪 test:
|
|
|
387
386
|
- yarn deploy
|
|
388
387
|
- echo 'Uploading SBOM to Dependency Track'
|
|
389
388
|
- /dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "https://unknown-host.example.com" "__sbom.json" vex.json || true
|
|
390
|
-
cache: []
|
|
391
389
|
rules:
|
|
392
390
|
- when: on_success
|
|
393
391
|
if: $CI_MERGE_REQUEST_ID
|
|
@@ -510,7 +508,6 @@ api 🧪 test:
|
|
|
510
508
|
- yarn deploy
|
|
511
509
|
- echo 'Uploading SBOM to Dependency Track'
|
|
512
510
|
- /dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "https://unknown-host.example.com" "__sbom.json" vex.json || true
|
|
513
|
-
cache: []
|
|
514
511
|
rules:
|
|
515
512
|
- when: on_success
|
|
516
513
|
if: $CI_COMMIT_TAG
|
|
@@ -627,7 +624,6 @@ api 🧪 test:
|
|
|
627
624
|
- yarn deploy
|
|
628
625
|
- echo 'Uploading SBOM to Dependency Track'
|
|
629
626
|
- /dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "https://unknown-host.example.com" "__sbom.json" vex.json || true
|
|
630
|
-
cache: []
|
|
631
627
|
rules:
|
|
632
628
|
- when: manual
|
|
633
629
|
if: $CI_COMMIT_TAG
|
|
@@ -852,7 +848,6 @@ www 🧪 test:
|
|
|
852
848
|
- yarn deploy
|
|
853
849
|
- echo 'Uploading SBOM to Dependency Track'
|
|
854
850
|
- /dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "https://unknown-host.example.com" "__sbom.json" vex.json || true
|
|
855
|
-
cache: []
|
|
856
851
|
rules:
|
|
857
852
|
- when: never
|
|
858
853
|
if: $CI_COMMIT_MESSAGE =~ /^chore\\(release\\).*/
|
|
@@ -979,7 +974,6 @@ www 🧪 test:
|
|
|
979
974
|
- yarn deploy
|
|
980
975
|
- echo 'Uploading SBOM to Dependency Track'
|
|
981
976
|
- /dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "https://unknown-host.example.com" "__sbom.json" vex.json || true
|
|
982
|
-
cache: []
|
|
983
977
|
rules:
|
|
984
978
|
- when: on_success
|
|
985
979
|
if: $CI_MERGE_REQUEST_ID
|
|
@@ -1104,7 +1098,6 @@ www 🧪 test:
|
|
|
1104
1098
|
- yarn deploy
|
|
1105
1099
|
- echo 'Uploading SBOM to Dependency Track'
|
|
1106
1100
|
- /dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "https://unknown-host.example.com" "__sbom.json" vex.json || true
|
|
1107
|
-
cache: []
|
|
1108
1101
|
rules:
|
|
1109
1102
|
- when: on_success
|
|
1110
1103
|
if: $CI_COMMIT_TAG
|
|
@@ -1223,7 +1216,6 @@ www 🧪 test:
|
|
|
1223
1216
|
- yarn deploy
|
|
1224
1217
|
- echo 'Uploading SBOM to Dependency Track'
|
|
1225
1218
|
- /dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "https://unknown-host.example.com" "__sbom.json" vex.json || true
|
|
1226
|
-
cache: []
|
|
1227
1219
|
rules:
|
|
1228
1220
|
- when: manual
|
|
1229
1221
|
if: $CI_COMMIT_TAG
|
package/examples/native-app.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import type { Config } from "../src";
|
|
1
|
+
import type { CacheConfig, Config } from "../src";
|
|
2
2
|
import type { CatladderJob } from "../src/types/jobs";
|
|
3
3
|
|
|
4
|
-
const APP_GEM_CACHE:
|
|
4
|
+
const APP_GEM_CACHE: CacheConfig[] = [
|
|
5
5
|
{
|
|
6
6
|
key: {
|
|
7
|
-
files: ["
|
|
7
|
+
files: ["Gemfile.lock"],
|
|
8
8
|
},
|
|
9
|
-
paths: ["
|
|
9
|
+
paths: ["vendor"],
|
|
10
10
|
},
|
|
11
11
|
];
|
|
12
12
|
|
|
@@ -41,7 +41,7 @@ const config: Config = {
|
|
|
41
41
|
"bundle exec fastlane build",
|
|
42
42
|
],
|
|
43
43
|
jobTags: ["mac-runner"],
|
|
44
|
-
|
|
44
|
+
cache: APP_GEM_CACHE,
|
|
45
45
|
},
|
|
46
46
|
|
|
47
47
|
deploy: {
|
|
@@ -58,7 +58,7 @@ const config: Config = {
|
|
|
58
58
|
"bundle exec fastlane deploy_test",
|
|
59
59
|
],
|
|
60
60
|
jobTags: ["mac-runner"],
|
|
61
|
-
|
|
61
|
+
cache: APP_GEM_CACHE,
|
|
62
62
|
},
|
|
63
63
|
},
|
|
64
64
|
|
|
@@ -1,9 +1,26 @@
|
|
|
1
|
-
import { rmSync, writeFileSync } from "fs";
|
|
1
|
+
import { mkdirSync, rmSync, writeFileSync } from "fs";
|
|
2
2
|
import { createYamlLocalPipeline } from "./__utils__/helpers";
|
|
3
3
|
import config from "./rails-k8s-with-worker";
|
|
4
|
+
import { merge } from "lodash";
|
|
5
|
+
import { join } from "path";
|
|
4
6
|
|
|
5
7
|
it("matches snapshot with a Dockerfile", async () => {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
const appDir = ".temp-with-dockerfile";
|
|
9
|
+
mkdirSync(appDir);
|
|
10
|
+
writeFileSync(join(appDir, "Dockerfile"), "");
|
|
11
|
+
expect(
|
|
12
|
+
await createYamlLocalPipeline(
|
|
13
|
+
merge(config, {
|
|
14
|
+
components: {
|
|
15
|
+
app: {
|
|
16
|
+
dir: appDir,
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
}),
|
|
20
|
+
),
|
|
21
|
+
).toMatchSnapshot();
|
|
22
|
+
|
|
23
|
+
rmSync(appDir, {
|
|
24
|
+
recursive: true,
|
|
25
|
+
});
|
|
9
26
|
});
|
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@ import type {
|
|
|
5
5
|
WorkspaceContext,
|
|
6
6
|
} from "../..";
|
|
7
7
|
import { getRunnerImage } from "../..";
|
|
8
|
-
import type {
|
|
8
|
+
import type { AppBuildJobDefinition } from "../../types/jobDefinition";
|
|
9
9
|
import type { CatladderJob } from "../../types/jobs";
|
|
10
10
|
import { ensureArray } from "../../utils";
|
|
11
11
|
import { createBuildJobArtifacts } from "../artifacts/createBuildJobArtifact";
|
|
@@ -21,7 +21,6 @@ import {
|
|
|
21
21
|
writeDotEnv,
|
|
22
22
|
} from "./writeDotEnv";
|
|
23
23
|
|
|
24
|
-
export type AppBuildJobDefinition = JobDefintion;
|
|
25
24
|
export const createAppBuildJob = (
|
|
26
25
|
context: ComponentContext<BuildContextStandalone> | WorkspaceContext,
|
|
27
26
|
{ script, variables, runnerVariables, cache, ...def }: AppBuildJobDefinition,
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { BuildConfigStandalone, WorkspaceBuildConfig } from "..";
|
|
2
2
|
import { getRunnerImage } from "../../runner";
|
|
3
|
-
import type { Context } from "../../types";
|
|
4
|
-
import type { JobDefintion } from "../../types/jobDefinition";
|
|
3
|
+
import type { AppBuildJobDefinition, Context } from "../../types";
|
|
5
4
|
import { ensureArray } from "../../utils";
|
|
6
5
|
import { getAllCacheConfigsFromConfig } from "../cache/getAllCacheConfigsFromConfig";
|
|
7
6
|
import { NODE_RUNNER_BUILD_VARIABLES } from "../node/constants";
|
|
@@ -9,11 +8,11 @@ import { NODE_RUNNER_BUILD_VARIABLES } from "../node/constants";
|
|
|
9
8
|
export const createBuildJobDefinition = (
|
|
10
9
|
context: Context,
|
|
11
10
|
buildConfig: BuildConfigStandalone | WorkspaceBuildConfig,
|
|
12
|
-
customize: Pick<
|
|
11
|
+
customize: Pick<AppBuildJobDefinition, "cache"> & {
|
|
13
12
|
prescript?: string[];
|
|
14
13
|
postscript?: string[];
|
|
15
14
|
} = {},
|
|
16
|
-
):
|
|
15
|
+
): AppBuildJobDefinition | undefined => {
|
|
17
16
|
if (buildConfig.buildCommand === null) return undefined;
|
|
18
17
|
|
|
19
18
|
const defaultImage = getRunnerImage("jobs-default");
|
package/src/build/base/index.ts
CHANGED
|
@@ -5,12 +5,14 @@ import {
|
|
|
5
5
|
componentContextIsStandaloneBuild,
|
|
6
6
|
type ComponentContext,
|
|
7
7
|
} from "../../types/context";
|
|
8
|
+
import type {
|
|
9
|
+
AppBuildJobDefinition,
|
|
10
|
+
DockerBuildJobDefinition,
|
|
11
|
+
} from "../../types/jobDefinition";
|
|
8
12
|
import type { CatladderJob } from "../../types/jobs";
|
|
9
|
-
import type { DockerBuildJobDefinition } from "../docker";
|
|
10
13
|
import { createDockerBuildJobBase, requiresDockerBuild } from "../docker";
|
|
11
14
|
import { createSbomBuildJob } from "../sbom";
|
|
12
15
|
import { APP_BUILD_JOB_NAME } from "./constants";
|
|
13
|
-
import type { AppBuildJobDefinition } from "./createAppBuildJob";
|
|
14
16
|
import { createAppBuildJob } from "./createAppBuildJob";
|
|
15
17
|
|
|
16
18
|
export const createComponentBuildJobs = (
|
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
import { join } from "path";
|
|
2
|
-
import type {
|
|
3
|
-
BuildConfigStandalone,
|
|
4
|
-
CacheConfig,
|
|
5
|
-
CacheConfigAdvanced,
|
|
6
|
-
CacheConfigSimple,
|
|
7
|
-
WorkspaceBuildConfig,
|
|
8
|
-
} from "..";
|
|
2
|
+
import type { CacheConfig, CacheConfigAdvanced, CacheConfigSimple } from "..";
|
|
9
3
|
import type { Context } from "../../types";
|
|
10
4
|
import type { CatladderJobCache } from "../../types/jobs";
|
|
5
|
+
import type { WithCacheConfig } from "../types";
|
|
11
6
|
import { getAllCacheConfigsFromConfig } from "./getAllCacheConfigsFromConfig";
|
|
12
7
|
|
|
13
8
|
export const createJobCacheFromCacheConfigs = (
|
|
@@ -61,6 +56,7 @@ export const createJobCacheFromCacheConfigs = (
|
|
|
61
56
|
pathMode === "absolute" ? f : join(baseDir, f),
|
|
62
57
|
),
|
|
63
58
|
};
|
|
59
|
+
|
|
64
60
|
return {
|
|
65
61
|
key: transformedKey,
|
|
66
62
|
policy: policy ?? "pull-push",
|
|
@@ -70,16 +66,17 @@ export const createJobCacheFromCacheConfigs = (
|
|
|
70
66
|
};
|
|
71
67
|
},
|
|
72
68
|
);
|
|
69
|
+
|
|
73
70
|
return [...advancedCaches, ...simpleCaches];
|
|
74
71
|
};
|
|
75
72
|
|
|
76
73
|
/** shortcut, used in some build types */
|
|
77
74
|
export const createJobCacheFromConfig = (
|
|
78
75
|
context: Context,
|
|
79
|
-
|
|
76
|
+
configWithCache: WithCacheConfig,
|
|
80
77
|
) => {
|
|
81
78
|
return createJobCacheFromCacheConfigs(
|
|
82
79
|
context,
|
|
83
|
-
getAllCacheConfigsFromConfig(context,
|
|
80
|
+
getAllCacheConfigsFromConfig(context, configWithCache),
|
|
84
81
|
);
|
|
85
82
|
};
|
|
@@ -1,24 +1,17 @@
|
|
|
1
1
|
import type { Context } from "../../types";
|
|
2
2
|
import { ensureArray } from "../../utils/index";
|
|
3
|
-
import type {
|
|
4
|
-
BuildConfigStandalone,
|
|
5
|
-
CacheConfig,
|
|
6
|
-
WorkspaceBuildConfig,
|
|
7
|
-
} from "../types";
|
|
3
|
+
import type { CacheConfig, WithCacheConfig } from "../types";
|
|
8
4
|
import { transformLegacyJobCache } from "./transformLegacyJobCache";
|
|
9
5
|
|
|
10
6
|
export const getAllCacheConfigsFromConfig = (
|
|
11
7
|
context: Context,
|
|
12
|
-
|
|
8
|
+
configWithCache: WithCacheConfig,
|
|
13
9
|
): CacheConfig[] => {
|
|
14
10
|
return [
|
|
15
|
-
...("jobCache" in
|
|
16
|
-
? transformLegacyJobCache(
|
|
11
|
+
...("jobCache" in configWithCache
|
|
12
|
+
? transformLegacyJobCache(configWithCache.jobCache)
|
|
17
13
|
: []),
|
|
18
|
-
...ensureArray(
|
|
19
|
-
...c,
|
|
20
|
-
context,
|
|
21
|
-
})),
|
|
14
|
+
...ensureArray(configWithCache.cache),
|
|
22
15
|
...(context.type === "workspace"
|
|
23
16
|
? // also add cache configs of the components of that workspace
|
|
24
17
|
context.components.flatMap<CacheConfig>(
|
package/src/build/docker.ts
CHANGED
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
} from "../deploy/cloudRun/artifactsRegistry";
|
|
11
11
|
import { gcloudServiceAccountLoginCommands } from "../deploy/cloudRun/utils/gcloudServiceAccountLoginCommands";
|
|
12
12
|
import { getRunnerImage } from "../runner";
|
|
13
|
-
import type { ComponentContext,
|
|
13
|
+
import type { ComponentContext, DockerBuildJobDefinition } from "../types";
|
|
14
14
|
import type { CatladderJob } from "../types/jobs";
|
|
15
15
|
import { collapseableSection } from "../utils/gitlab";
|
|
16
16
|
import { createJobCacheFromCacheConfigs } from "./cache/createJobCache";
|
|
@@ -119,10 +119,9 @@ export const getDockerJobBaseProps = (): Pick<
|
|
|
119
119
|
};
|
|
120
120
|
};
|
|
121
121
|
|
|
122
|
-
export type DockerBuildJobDefinition = JobDefintion;
|
|
123
122
|
export const createDockerBuildJobBase = (
|
|
124
123
|
context: ComponentContext,
|
|
125
|
-
{ script, cache, ...def }:
|
|
124
|
+
{ script, cache, ...def }: DockerBuildJobDefinition,
|
|
126
125
|
): CatladderJob => {
|
|
127
126
|
return merge(
|
|
128
127
|
{
|
|
@@ -6,11 +6,13 @@ import {
|
|
|
6
6
|
componentContextIsStandaloneBuild,
|
|
7
7
|
type ComponentContext,
|
|
8
8
|
} from "../../types/context";
|
|
9
|
+
import type {
|
|
10
|
+
AppBuildJobDefinition,
|
|
11
|
+
DockerBuildJobDefinition,
|
|
12
|
+
} from "../../types/jobDefinition";
|
|
9
13
|
import type { CatladderJob } from "../../types/jobs";
|
|
10
14
|
import { createComponentBuildJobs, createWorkspaceBuildJobs } from "../base";
|
|
11
|
-
import type { AppBuildJobDefinition } from "../base/createAppBuildJob";
|
|
12
15
|
import { createBuildJobDefinition } from "../base/createBuildJobDefinition";
|
|
13
|
-
import type { DockerBuildJobDefinition } from "../docker";
|
|
14
16
|
import { getDockerBuildScriptWithBuiltInDockerFile } from "../docker";
|
|
15
17
|
import type { BuildConfigDocker } from "../types";
|
|
16
18
|
import { getNextCache, getNodeCache, getYarnCache } from "./cache";
|
package/src/build/types.ts
CHANGED
|
@@ -53,6 +53,13 @@ export type WithCacheConfig = {
|
|
|
53
53
|
cache config. All Paths are relative to the context dir.
|
|
54
54
|
*/
|
|
55
55
|
cache?: CacheConfig | CacheConfig[];
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* customize cache for the job
|
|
59
|
+
*
|
|
60
|
+
* @deprecated use cache
|
|
61
|
+
*/
|
|
62
|
+
jobCache?: CatladderJob["cache"];
|
|
56
63
|
};
|
|
57
64
|
|
|
58
65
|
export type TestJobCustom = {
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import { createJobCacheFromCacheConfigs } from "../../build/cache/createJobCache";
|
|
1
2
|
import {
|
|
2
3
|
getDockerImageVariables,
|
|
3
4
|
requiresDockerBuild,
|
|
4
5
|
} from "../../build/docker";
|
|
5
6
|
import { SBOM_BUILD_JOB_NAME } from "../../build/sbom";
|
|
7
|
+
import type { DeployJobDefinition } from "../../types";
|
|
6
8
|
import {
|
|
7
9
|
componentContextHasWorkspaceBuild,
|
|
8
10
|
type ComponentContext,
|
|
@@ -16,16 +18,6 @@ import { DEPLOY_RUNNER_VARIABLES } from "./variables";
|
|
|
16
18
|
|
|
17
19
|
export const DEPLOY_JOB_NAME = "🚀 Deploy";
|
|
18
20
|
|
|
19
|
-
export type DeployJobDefinition = Pick<
|
|
20
|
-
CatladderJob,
|
|
21
|
-
| "script"
|
|
22
|
-
| "variables"
|
|
23
|
-
| "image"
|
|
24
|
-
| "cache"
|
|
25
|
-
| "artifacts"
|
|
26
|
-
| "services"
|
|
27
|
-
| "runnerVariables"
|
|
28
|
-
>;
|
|
29
21
|
export const createDeployJob = (
|
|
30
22
|
context: ComponentContext,
|
|
31
23
|
jobDefinition: DeployJobDefinition,
|
|
@@ -58,7 +50,9 @@ export const createDeployJob = (
|
|
|
58
50
|
name: DEPLOY_JOB_NAME,
|
|
59
51
|
script: jobDefinition.script,
|
|
60
52
|
image: jobDefinition.image,
|
|
61
|
-
cache: jobDefinition.cache
|
|
53
|
+
cache: jobDefinition.cache
|
|
54
|
+
? createJobCacheFromCacheConfigs(context, jobDefinition.cache)
|
|
55
|
+
: undefined,
|
|
62
56
|
artifacts: jobDefinition.artifacts,
|
|
63
57
|
services: jobDefinition.services,
|
|
64
58
|
envMode: "stagePerEnv", // makes it easier to run manual tasks er env
|
package/src/deploy/base/index.ts
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import type { ComponentContext } from "../../types/context";
|
|
2
|
+
import type {
|
|
3
|
+
DeployJobDefinition,
|
|
4
|
+
RollbackJobDefinition,
|
|
5
|
+
StopJobDefinition,
|
|
6
|
+
} from "../../types/jobDefinition";
|
|
2
7
|
import type { CatladderJob } from "../../types/jobs";
|
|
3
|
-
import { createDeployJob
|
|
4
|
-
import { createRollbackJob
|
|
5
|
-
import { createStopJob
|
|
8
|
+
import { createDeployJob } from "./deploy";
|
|
9
|
+
import { createRollbackJob } from "./rollback";
|
|
10
|
+
import { createStopJob } from "./stop";
|
|
6
11
|
|
|
7
12
|
export const createDeployementJobs = (
|
|
8
13
|
context: ComponentContext,
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
import type { ComponentContext } from "../../types/context";
|
|
2
|
+
import type { RollbackJobDefinition } from "../../types/jobDefinition";
|
|
2
3
|
import type { CatladderJob } from "../../types/jobs";
|
|
3
4
|
import { DEPLOY_RUNNER_VARIABLES } from "./variables";
|
|
4
5
|
|
|
5
6
|
export const ROLLBACK_JOB_NAME = "↩️ Rollback ⚠️";
|
|
6
7
|
|
|
7
|
-
export type RollbackJobDefinition = Pick<
|
|
8
|
-
CatladderJob,
|
|
9
|
-
"script" | "variables" | "runnerVariables" | "image"
|
|
10
|
-
>;
|
|
11
8
|
export const createRollbackJob = (
|
|
12
9
|
context: ComponentContext,
|
|
13
10
|
jobDefinition: RollbackJobDefinition,
|
package/src/deploy/base/stop.ts
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
import type { ComponentContext } from "../../types/context";
|
|
2
|
+
import type { StopJobDefinition } from "../../types/jobDefinition";
|
|
2
3
|
import type { CatladderJob } from "../../types/jobs";
|
|
3
4
|
|
|
4
5
|
import { DEPLOY_RUNNER_VARIABLES } from "./variables";
|
|
5
6
|
export const STOP_JOB_NAME = "🛑 Stop ⚠️";
|
|
6
7
|
|
|
7
|
-
export type StopJobDefinition = Pick<
|
|
8
|
-
CatladderJob,
|
|
9
|
-
"script" | "variables" | "image" | "runnerVariables"
|
|
10
|
-
>;
|
|
11
8
|
export const createStopJob = (
|
|
12
9
|
context: ComponentContext,
|
|
13
10
|
jobDefinition: StopJobDefinition,
|