@catladder/pipeline 0.0.0-refactor-deploy-5f0bbd8a → 0.0.0-refactor-image-ca767657
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 +8 -0
- package/dist/build/base/{createBuildJob.js → createAppBuildJob.js} +3 -3
- package/dist/build/base/index.d.ts +8 -0
- package/dist/build/base/index.js +57 -0
- package/dist/build/custom/buildJob.js +19 -22
- package/dist/build/docker.d.ts +2 -4
- package/dist/build/docker.js +4 -39
- package/dist/build/node/buildJob.js +30 -32
- package/dist/build/node/meteor.js +19 -21
- package/dist/build/rails/build.js +12 -19
- package/dist/build/types.d.ts +4 -3
- package/dist/bundles/catladder-gitlab/index.js +387 -300
- package/dist/constants.js +1 -1
- package/dist/context/getLabels.d.ts +1 -0
- package/dist/context/getLabels.js +1 -0
- package/dist/deploy/base/deploy.d.ts +5 -0
- package/dist/deploy/base/deploy.js +106 -0
- package/dist/deploy/base/index.d.ts +10 -8
- package/dist/deploy/base/index.js +7 -106
- package/dist/deploy/base/rollback.d.ts +4 -2
- package/dist/deploy/base/rollback.js +10 -8
- package/dist/deploy/base/stop.d.ts +5 -0
- package/dist/deploy/base/stop.js +41 -0
- package/dist/deploy/cloudRun/deployJob.js +29 -27
- package/dist/deploy/custom/deployJob.js +14 -11
- package/dist/deploy/dockerTag/deployJob.js +15 -5
- package/dist/deploy/kubernetes/deployJob.js +14 -26
- package/dist/deploy/kubernetes/mongodb.d.ts +1 -1
- package/dist/deploy/kubernetes/mongodb.js +8 -7
- package/dist/deploy/types/index.d.ts +1 -1
- package/dist/pipeline/gitlab/createGitlabJobs.d.ts +1 -0
- package/dist/pipeline/gitlab/createGitlabJobs.js +4 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/gitlab-ci-yml.d.ts +769 -0
- package/dist/types/gitlab-ci-yml.js +9 -0
- package/dist/types/gitlab-types.d.ts +12 -85
- package/dist/types/jobs.d.ts +3 -3
- package/examples/__snapshots__/cloud-run-memory-limit.ts.snap +16 -16
- package/examples/__snapshots__/cloud-run-no-cpu-throttling.ts.snap +16 -16
- package/examples/__snapshots__/cloud-run-non-public.ts.snap +16 -16
- package/examples/__snapshots__/cloud-run-with-sql-reuse-db.ts.snap +32 -32
- package/examples/__snapshots__/cloud-run-with-sql.ts.snap +48 -48
- package/examples/__snapshots__/custom-build-job-with-tests.ts.snap +16 -16
- package/examples/__snapshots__/custom-build-job.ts.snap +16 -16
- package/examples/__snapshots__/custom-sbom-java.ts.snap +16 -16
- package/examples/__snapshots__/kubernetes-application-customization.ts.snap +0 -36
- package/examples/__snapshots__/kubernetes-with-cloud-sql-legacy.ts.snap +0 -36
- package/examples/__snapshots__/kubernetes-with-cloud-sql.ts.snap +0 -36
- package/examples/__snapshots__/kubernetes-with-jobs.ts.snap +0 -72
- package/examples/__snapshots__/kubernetes-with-mongodb.ts.snap +0 -36
- package/examples/__snapshots__/meteor-kubernetes.ts.snap +0 -36
- package/examples/__snapshots__/native-app.ts.snap +16 -16
- package/examples/__snapshots__/node-build-with-custom-image.ts.snap +16 -16
- package/examples/__snapshots__/rails-k8s-with-worker.ts.snap +0 -36
- package/package.json +4 -2
- package/scripts/generate-gitlab-ci-types.ts +51 -0
- package/src/build/base/{createBuildJob.ts → createAppBuildJob.ts} +3 -2
- package/src/build/base/index.ts +35 -0
- package/src/build/custom/buildJob.ts +32 -45
- package/src/build/docker.ts +14 -17
- package/src/build/node/buildJob.ts +50 -61
- package/src/build/node/meteor.ts +31 -36
- package/src/build/rails/build.ts +8 -10
- package/src/build/types.ts +4 -8
- package/src/context/getLabels.ts +1 -0
- package/src/deploy/base/deploy.ts +114 -0
- package/src/deploy/base/index.ts +21 -133
- package/src/deploy/base/rollback.ts +15 -3
- package/src/deploy/base/stop.ts +44 -0
- package/src/deploy/cloudRun/deployJob.ts +14 -16
- package/src/deploy/custom/deployJob.ts +17 -20
- package/src/deploy/dockerTag/deployJob.ts +6 -7
- package/src/deploy/kubernetes/deployJob.ts +17 -34
- package/src/deploy/kubernetes/mongodb.ts +3 -2
- package/src/pipeline/gitlab/createGitlabJobs.ts +3 -0
- package/src/types/gitlab-ci-yml.ts +892 -0
- package/src/types/gitlab-types.ts +49 -86
- package/src/types/jobs.ts +3 -4
- package/dist/build/base/createBuildJob.d.ts +0 -7
|
@@ -8,9 +8,6 @@ exports[`matches snapshot 1`] = `
|
|
|
8
8
|
"web ↩️ Rollback ⚠️ | dev ": {
|
|
9
9
|
"environment": {
|
|
10
10
|
"action": "access",
|
|
11
|
-
"kubernetes": {
|
|
12
|
-
"namespace": "pan-my-app-dev",
|
|
13
|
-
},
|
|
14
11
|
"name": "dev/web",
|
|
15
12
|
"url": "https://web.dev.my-app.pan.panter.cloud",
|
|
16
13
|
},
|
|
@@ -299,9 +296,6 @@ mongodb:
|
|
|
299
296
|
"allow_failure": false,
|
|
300
297
|
"environment": {
|
|
301
298
|
"auto_stop_in": "4 weeks",
|
|
302
|
-
"kubernetes": {
|
|
303
|
-
"namespace": "pan-my-app-dev",
|
|
304
|
-
},
|
|
305
299
|
"name": "dev/web",
|
|
306
300
|
"on_stop": "web 🛑 Stop ⚠️ | dev ",
|
|
307
301
|
"url": "https://web.dev.my-app.pan.panter.cloud",
|
|
@@ -444,9 +438,6 @@ mongodb:
|
|
|
444
438
|
"web 🛑 Stop ⚠️ | dev ": {
|
|
445
439
|
"environment": {
|
|
446
440
|
"action": "stop",
|
|
447
|
-
"kubernetes": {
|
|
448
|
-
"namespace": "pan-my-app-dev",
|
|
449
|
-
},
|
|
450
441
|
"name": "dev/web",
|
|
451
442
|
"url": "https://web.dev.my-app.pan.panter.cloud",
|
|
452
443
|
},
|
|
@@ -725,9 +716,6 @@ mongodb:
|
|
|
725
716
|
"web ↩️ Rollback ⚠️ | review ": {
|
|
726
717
|
"environment": {
|
|
727
718
|
"action": "access",
|
|
728
|
-
"kubernetes": {
|
|
729
|
-
"namespace": "pan-my-app-review",
|
|
730
|
-
},
|
|
731
719
|
"name": "review/some-commit/web",
|
|
732
720
|
"url": "https://web.mr1234.review.my-app.pan.panter.cloud",
|
|
733
721
|
},
|
|
@@ -1016,9 +1004,6 @@ mongodb:
|
|
|
1016
1004
|
"allow_failure": false,
|
|
1017
1005
|
"environment": {
|
|
1018
1006
|
"auto_stop_in": "2 week",
|
|
1019
|
-
"kubernetes": {
|
|
1020
|
-
"namespace": "pan-my-app-review",
|
|
1021
|
-
},
|
|
1022
1007
|
"name": "review/some-commit/web",
|
|
1023
1008
|
"on_stop": "web 🛑 Stop ⚠️ | review ",
|
|
1024
1009
|
"url": "https://web.mr1234.review.my-app.pan.panter.cloud",
|
|
@@ -1161,9 +1146,6 @@ mongodb:
|
|
|
1161
1146
|
"web 🛑 Stop ⚠️ | review ": {
|
|
1162
1147
|
"environment": {
|
|
1163
1148
|
"action": "stop",
|
|
1164
|
-
"kubernetes": {
|
|
1165
|
-
"namespace": "pan-my-app-review",
|
|
1166
|
-
},
|
|
1167
1149
|
"name": "review/some-commit/web",
|
|
1168
1150
|
"url": "https://web.mr1234.review.my-app.pan.panter.cloud",
|
|
1169
1151
|
},
|
|
@@ -1442,9 +1424,6 @@ mongodb:
|
|
|
1442
1424
|
"web ↩️ Rollback ⚠️ | prod ": {
|
|
1443
1425
|
"environment": {
|
|
1444
1426
|
"action": "access",
|
|
1445
|
-
"kubernetes": {
|
|
1446
|
-
"namespace": "pan-my-app-prod",
|
|
1447
|
-
},
|
|
1448
1427
|
"name": "prod/web",
|
|
1449
1428
|
"url": "https://www.example.com",
|
|
1450
1429
|
},
|
|
@@ -1565,9 +1544,6 @@ mongodb:
|
|
|
1565
1544
|
"web ↩️ Rollback ⚠️ | stage ": {
|
|
1566
1545
|
"environment": {
|
|
1567
1546
|
"action": "access",
|
|
1568
|
-
"kubernetes": {
|
|
1569
|
-
"namespace": "pan-my-app-stage",
|
|
1570
|
-
},
|
|
1571
1547
|
"name": "stage/web",
|
|
1572
1548
|
"url": "https://web.stage.my-app.pan.panter.cloud",
|
|
1573
1549
|
},
|
|
@@ -1950,9 +1926,6 @@ mongodb:
|
|
|
1950
1926
|
"allow_failure": true,
|
|
1951
1927
|
"environment": {
|
|
1952
1928
|
"auto_stop_in": undefined,
|
|
1953
|
-
"kubernetes": {
|
|
1954
|
-
"namespace": "pan-my-app-prod",
|
|
1955
|
-
},
|
|
1956
1929
|
"name": "prod/web",
|
|
1957
1930
|
"on_stop": "web 🛑 Stop ⚠️ | prod ",
|
|
1958
1931
|
"url": "https://www.example.com",
|
|
@@ -2096,9 +2069,6 @@ mongodb:
|
|
|
2096
2069
|
"allow_failure": false,
|
|
2097
2070
|
"environment": {
|
|
2098
2071
|
"auto_stop_in": undefined,
|
|
2099
|
-
"kubernetes": {
|
|
2100
|
-
"namespace": "pan-my-app-stage",
|
|
2101
|
-
},
|
|
2102
2072
|
"name": "stage/web",
|
|
2103
2073
|
"on_stop": "web 🛑 Stop ⚠️ | stage ",
|
|
2104
2074
|
"url": "https://web.stage.my-app.pan.panter.cloud",
|
|
@@ -2229,9 +2199,6 @@ mongodb:
|
|
|
2229
2199
|
"web 🛑 Stop ⚠️ | prod ": {
|
|
2230
2200
|
"environment": {
|
|
2231
2201
|
"action": "stop",
|
|
2232
|
-
"kubernetes": {
|
|
2233
|
-
"namespace": "pan-my-app-prod",
|
|
2234
|
-
},
|
|
2235
2202
|
"name": "prod/web",
|
|
2236
2203
|
"url": "https://www.example.com",
|
|
2237
2204
|
},
|
|
@@ -2359,9 +2326,6 @@ mongodb:
|
|
|
2359
2326
|
"web 🛑 Stop ⚠️ | stage ": {
|
|
2360
2327
|
"environment": {
|
|
2361
2328
|
"action": "stop",
|
|
2362
|
-
"kubernetes": {
|
|
2363
|
-
"namespace": "pan-my-app-stage",
|
|
2364
|
-
},
|
|
2365
2329
|
"name": "stage/web",
|
|
2366
2330
|
"url": "https://web.stage.my-app.pan.panter.cloud",
|
|
2367
2331
|
},
|
|
@@ -253,11 +253,11 @@ COPY --chown=node:node .yarn /app/.yarn",
|
|
|
253
253
|
"docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY",
|
|
254
254
|
"gcloud auth configure-docker asia-east1-docker.pkg.dev",
|
|
255
255
|
"docker pull $DOCKER_IMAGE:$DOCKER_IMAGE_TAG",
|
|
256
|
-
"docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app
|
|
257
|
-
"docker push asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app
|
|
256
|
+
"docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/dev/api:$DOCKER_IMAGE_TAG",
|
|
257
|
+
"docker push asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/dev/api:$DOCKER_IMAGE_TAG",
|
|
258
258
|
"echo "$ENV_VARS" > ____envvars.yaml",
|
|
259
|
-
"gcloud run deploy pan-test-app-dev-api --command="yarn,start" --image=asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app
|
|
260
|
-
"docker image rm asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app
|
|
259
|
+
"gcloud run deploy pan-test-app-dev-api --command="yarn,start" --image=asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/dev/api:$DOCKER_IMAGE_TAG --project=asdf --region=asia-east1 --labels=customer-name=pan,component-name=api,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",
|
|
260
|
+
"docker image rm asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/dev/api:$DOCKER_IMAGE_TAG",
|
|
261
261
|
"echo Uploading SBOM to Dependency Track",
|
|
262
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",
|
|
263
263
|
],
|
|
@@ -1109,11 +1109,11 @@ COPY --chown=node:node .yarn /app/.yarn",
|
|
|
1109
1109
|
"docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY",
|
|
1110
1110
|
"gcloud auth configure-docker asia-east1-docker.pkg.dev",
|
|
1111
1111
|
"docker pull $DOCKER_IMAGE:$DOCKER_IMAGE_TAG",
|
|
1112
|
-
"docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app
|
|
1113
|
-
"docker push asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app
|
|
1112
|
+
"docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/review/api:$DOCKER_IMAGE_TAG",
|
|
1113
|
+
"docker push asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/review/api:$DOCKER_IMAGE_TAG",
|
|
1114
1114
|
"echo "$ENV_VARS" > ____envvars.yaml",
|
|
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
|
|
1116
|
-
"docker image rm asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app
|
|
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/review/api:$DOCKER_IMAGE_TAG --project=asdf --region=asia-east1 --labels=customer-name=pan,component-name=api,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",
|
|
1116
|
+
"docker image rm asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/review/api:$DOCKER_IMAGE_TAG",
|
|
1117
1117
|
"echo Uploading SBOM to Dependency Track",
|
|
1118
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",
|
|
1119
1119
|
],
|
|
@@ -2053,11 +2053,11 @@ COPY --chown=node:node .yarn /app/.yarn",
|
|
|
2053
2053
|
"docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY",
|
|
2054
2054
|
"gcloud auth configure-docker asia-east1-docker.pkg.dev",
|
|
2055
2055
|
"docker pull $DOCKER_IMAGE:$DOCKER_IMAGE_TAG",
|
|
2056
|
-
"docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app
|
|
2057
|
-
"docker push asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app
|
|
2056
|
+
"docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/prod/api:$DOCKER_IMAGE_TAG",
|
|
2057
|
+
"docker push asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/prod/api:$DOCKER_IMAGE_TAG",
|
|
2058
2058
|
"echo "$ENV_VARS" > ____envvars.yaml",
|
|
2059
|
-
"gcloud run deploy pan-test-app-prod-api --command="yarn,start" --image=asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app
|
|
2060
|
-
"docker image rm asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app
|
|
2059
|
+
"gcloud run deploy pan-test-app-prod-api --command="yarn,start" --image=asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/prod/api:$DOCKER_IMAGE_TAG --project=asdf --region=asia-east1 --labels=customer-name=pan,component-name=api,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",
|
|
2060
|
+
"docker image rm asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/prod/api:$DOCKER_IMAGE_TAG",
|
|
2061
2061
|
"echo Uploading SBOM to Dependency Track",
|
|
2062
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",
|
|
2063
2063
|
],
|
|
@@ -2162,11 +2162,11 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
2162
2162
|
"docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY",
|
|
2163
2163
|
"gcloud auth configure-docker asia-east1-docker.pkg.dev",
|
|
2164
2164
|
"docker pull $DOCKER_IMAGE:$DOCKER_IMAGE_TAG",
|
|
2165
|
-
"docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app
|
|
2166
|
-
"docker push asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app
|
|
2165
|
+
"docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/stage/api:$DOCKER_IMAGE_TAG",
|
|
2166
|
+
"docker push asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/stage/api:$DOCKER_IMAGE_TAG",
|
|
2167
2167
|
"echo "$ENV_VARS" > ____envvars.yaml",
|
|
2168
|
-
"gcloud run deploy pan-test-app-stage-api --command="yarn,start" --image=asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app
|
|
2169
|
-
"docker image rm asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app
|
|
2168
|
+
"gcloud run deploy pan-test-app-stage-api --command="yarn,start" --image=asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/stage/api:$DOCKER_IMAGE_TAG --project=asdf --region=asia-east1 --labels=customer-name=pan,component-name=api,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",
|
|
2169
|
+
"docker image rm asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/stage/api:$DOCKER_IMAGE_TAG",
|
|
2170
2170
|
"echo Uploading SBOM to Dependency Track",
|
|
2171
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",
|
|
2172
2172
|
],
|
|
@@ -253,11 +253,11 @@ COPY --chown=node:node .yarn /app/.yarn",
|
|
|
253
253
|
"docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY",
|
|
254
254
|
"gcloud auth configure-docker asia-east1-docker.pkg.dev",
|
|
255
255
|
"docker pull $DOCKER_IMAGE:$DOCKER_IMAGE_TAG",
|
|
256
|
-
"docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app
|
|
257
|
-
"docker push asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app
|
|
256
|
+
"docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/dev/www:$DOCKER_IMAGE_TAG",
|
|
257
|
+
"docker push asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/dev/www:$DOCKER_IMAGE_TAG",
|
|
258
258
|
"echo "$ENV_VARS" > ____envvars.yaml",
|
|
259
|
-
"gcloud run deploy pan-test-app-dev-www --command="yarn,start" --image=asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app
|
|
260
|
-
"docker image rm asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app
|
|
259
|
+
"gcloud run deploy pan-test-app-dev-www --command="yarn,start" --image=asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/dev/www:$DOCKER_IMAGE_TAG --project=asdf --region=asia-east1 --labels=customer-name=pan,component-name=www,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",
|
|
260
|
+
"docker image rm asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/dev/www:$DOCKER_IMAGE_TAG",
|
|
261
261
|
"echo Uploading SBOM to Dependency Track",
|
|
262
262
|
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "https://pan-test-app-dev-www-unknown-host.example.com" "__sbom.json" vex.json || true",
|
|
263
263
|
],
|
|
@@ -770,11 +770,11 @@ COPY --chown=node:node .yarn /app/.yarn",
|
|
|
770
770
|
"docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY",
|
|
771
771
|
"gcloud auth configure-docker asia-east1-docker.pkg.dev",
|
|
772
772
|
"docker pull $DOCKER_IMAGE:$DOCKER_IMAGE_TAG",
|
|
773
|
-
"docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app
|
|
774
|
-
"docker push asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app
|
|
773
|
+
"docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/review/www:$DOCKER_IMAGE_TAG",
|
|
774
|
+
"docker push asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/review/www:$DOCKER_IMAGE_TAG",
|
|
775
775
|
"echo "$ENV_VARS" > ____envvars.yaml",
|
|
776
|
-
"gcloud run deploy pan-test-app-review-mr1234-www --command="yarn,start" --image=asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app
|
|
777
|
-
"docker image rm asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app
|
|
776
|
+
"gcloud run deploy pan-test-app-review-mr1234-www --command="yarn,start" --image=asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/review/www:$DOCKER_IMAGE_TAG --project=asdf --region=asia-east1 --labels=customer-name=pan,component-name=www,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",
|
|
777
|
+
"docker image rm asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/review/www:$DOCKER_IMAGE_TAG",
|
|
778
778
|
"echo Uploading SBOM to Dependency Track",
|
|
779
779
|
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "https://pan-test-app-review-mr1234-www-unknown-host.example.com" "__sbom.json" vex.json || true",
|
|
780
780
|
],
|
|
@@ -1375,11 +1375,11 @@ COPY --chown=node:node .yarn /app/.yarn",
|
|
|
1375
1375
|
"docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY",
|
|
1376
1376
|
"gcloud auth configure-docker asia-east1-docker.pkg.dev",
|
|
1377
1377
|
"docker pull $DOCKER_IMAGE:$DOCKER_IMAGE_TAG",
|
|
1378
|
-
"docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app
|
|
1379
|
-
"docker push asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app
|
|
1378
|
+
"docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/prod/www:$DOCKER_IMAGE_TAG",
|
|
1379
|
+
"docker push asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/prod/www:$DOCKER_IMAGE_TAG",
|
|
1380
1380
|
"echo "$ENV_VARS" > ____envvars.yaml",
|
|
1381
|
-
"gcloud run deploy pan-test-app-prod-www --command="yarn,start" --image=asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app
|
|
1382
|
-
"docker image rm asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app
|
|
1381
|
+
"gcloud run deploy pan-test-app-prod-www --command="yarn,start" --image=asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/prod/www:$DOCKER_IMAGE_TAG --project=asdf --region=asia-east1 --labels=customer-name=pan,component-name=www,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",
|
|
1382
|
+
"docker image rm asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/prod/www:$DOCKER_IMAGE_TAG",
|
|
1383
1383
|
"echo Uploading SBOM to Dependency Track",
|
|
1384
1384
|
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "https://pan-test-app-prod-www-unknown-host.example.com" "__sbom.json" vex.json || true",
|
|
1385
1385
|
],
|
|
@@ -1484,11 +1484,11 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
1484
1484
|
"docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY",
|
|
1485
1485
|
"gcloud auth configure-docker asia-east1-docker.pkg.dev",
|
|
1486
1486
|
"docker pull $DOCKER_IMAGE:$DOCKER_IMAGE_TAG",
|
|
1487
|
-
"docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app
|
|
1488
|
-
"docker push asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app
|
|
1487
|
+
"docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/stage/www:$DOCKER_IMAGE_TAG",
|
|
1488
|
+
"docker push asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/stage/www:$DOCKER_IMAGE_TAG",
|
|
1489
1489
|
"echo "$ENV_VARS" > ____envvars.yaml",
|
|
1490
|
-
"gcloud run deploy pan-test-app-stage-www --command="yarn,start" --image=asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app
|
|
1491
|
-
"docker image rm asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app
|
|
1490
|
+
"gcloud run deploy pan-test-app-stage-www --command="yarn,start" --image=asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/stage/www:$DOCKER_IMAGE_TAG --project=asdf --region=asia-east1 --labels=customer-name=pan,component-name=www,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",
|
|
1491
|
+
"docker image rm asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/stage/www:$DOCKER_IMAGE_TAG",
|
|
1492
1492
|
"echo Uploading SBOM to Dependency Track",
|
|
1493
1493
|
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "https://pan-test-app-stage-www-unknown-host.example.com" "__sbom.json" vex.json || true",
|
|
1494
1494
|
],
|
|
@@ -8,9 +8,6 @@ exports[`matches snapshot 1`] = `
|
|
|
8
8
|
"app ↩️ Rollback ⚠️ | dev ": {
|
|
9
9
|
"environment": {
|
|
10
10
|
"action": "access",
|
|
11
|
-
"kubernetes": {
|
|
12
|
-
"namespace": "pan-test-app-dev",
|
|
13
|
-
},
|
|
14
11
|
"name": "dev/app",
|
|
15
12
|
"url": "https://app.dev.test-app.pan.panter.cloud",
|
|
16
13
|
},
|
|
@@ -199,9 +196,6 @@ jobs:
|
|
|
199
196
|
"allow_failure": false,
|
|
200
197
|
"environment": {
|
|
201
198
|
"auto_stop_in": "4 weeks",
|
|
202
|
-
"kubernetes": {
|
|
203
|
-
"namespace": "pan-test-app-dev",
|
|
204
|
-
},
|
|
205
199
|
"name": "dev/app",
|
|
206
200
|
"on_stop": "app 🛑 Stop ⚠️ | dev ",
|
|
207
201
|
"url": "https://app.dev.test-app.pan.panter.cloud",
|
|
@@ -339,9 +333,6 @@ jobs:
|
|
|
339
333
|
"app 🛑 Stop ⚠️ | dev ": {
|
|
340
334
|
"environment": {
|
|
341
335
|
"action": "stop",
|
|
342
|
-
"kubernetes": {
|
|
343
|
-
"namespace": "pan-test-app-dev",
|
|
344
|
-
},
|
|
345
336
|
"name": "dev/app",
|
|
346
337
|
"url": "https://app.dev.test-app.pan.panter.cloud",
|
|
347
338
|
},
|
|
@@ -602,9 +593,6 @@ jobs:
|
|
|
602
593
|
"app ↩️ Rollback ⚠️ | review ": {
|
|
603
594
|
"environment": {
|
|
604
595
|
"action": "access",
|
|
605
|
-
"kubernetes": {
|
|
606
|
-
"namespace": "pan-test-app-review",
|
|
607
|
-
},
|
|
608
596
|
"name": "review/some-commit/app",
|
|
609
597
|
"url": "https://app.mr1234.review.test-app.pan.panter.cloud",
|
|
610
598
|
},
|
|
@@ -796,9 +784,6 @@ jobs:
|
|
|
796
784
|
"allow_failure": false,
|
|
797
785
|
"environment": {
|
|
798
786
|
"auto_stop_in": "2 week",
|
|
799
|
-
"kubernetes": {
|
|
800
|
-
"namespace": "pan-test-app-review",
|
|
801
|
-
},
|
|
802
787
|
"name": "review/some-commit/app",
|
|
803
788
|
"on_stop": "app 🛑 Stop ⚠️ | review ",
|
|
804
789
|
"url": "https://app.mr1234.review.test-app.pan.panter.cloud",
|
|
@@ -939,9 +924,6 @@ jobs:
|
|
|
939
924
|
"app 🛑 Stop ⚠️ | review ": {
|
|
940
925
|
"environment": {
|
|
941
926
|
"action": "stop",
|
|
942
|
-
"kubernetes": {
|
|
943
|
-
"namespace": "pan-test-app-review",
|
|
944
|
-
},
|
|
945
927
|
"name": "review/some-commit/app",
|
|
946
928
|
"url": "https://app.mr1234.review.test-app.pan.panter.cloud",
|
|
947
929
|
},
|
|
@@ -1205,9 +1187,6 @@ jobs:
|
|
|
1205
1187
|
"app ↩️ Rollback ⚠️ | prod ": {
|
|
1206
1188
|
"environment": {
|
|
1207
1189
|
"action": "access",
|
|
1208
|
-
"kubernetes": {
|
|
1209
|
-
"namespace": "pan-test-app-prod",
|
|
1210
|
-
},
|
|
1211
1190
|
"name": "prod/app",
|
|
1212
1191
|
"url": "https://my-fancy-website.com",
|
|
1213
1192
|
},
|
|
@@ -1315,9 +1294,6 @@ jobs:
|
|
|
1315
1294
|
"app ↩️ Rollback ⚠️ | stage ": {
|
|
1316
1295
|
"environment": {
|
|
1317
1296
|
"action": "access",
|
|
1318
|
-
"kubernetes": {
|
|
1319
|
-
"namespace": "pan-test-app-stage",
|
|
1320
|
-
},
|
|
1321
1297
|
"name": "stage/app",
|
|
1322
1298
|
"url": "https://app.stage.test-app.pan.panter.cloud",
|
|
1323
1299
|
},
|
|
@@ -1524,9 +1500,6 @@ jobs:
|
|
|
1524
1500
|
"allow_failure": true,
|
|
1525
1501
|
"environment": {
|
|
1526
1502
|
"auto_stop_in": undefined,
|
|
1527
|
-
"kubernetes": {
|
|
1528
|
-
"namespace": "pan-test-app-prod",
|
|
1529
|
-
},
|
|
1530
1503
|
"name": "prod/app",
|
|
1531
1504
|
"on_stop": "app 🛑 Stop ⚠️ | prod ",
|
|
1532
1505
|
"url": "https://my-fancy-website.com",
|
|
@@ -1653,9 +1626,6 @@ jobs:
|
|
|
1653
1626
|
"allow_failure": false,
|
|
1654
1627
|
"environment": {
|
|
1655
1628
|
"auto_stop_in": undefined,
|
|
1656
|
-
"kubernetes": {
|
|
1657
|
-
"namespace": "pan-test-app-stage",
|
|
1658
|
-
},
|
|
1659
1629
|
"name": "stage/app",
|
|
1660
1630
|
"on_stop": "app 🛑 Stop ⚠️ | stage ",
|
|
1661
1631
|
"url": "https://app.stage.test-app.pan.panter.cloud",
|
|
@@ -1781,9 +1751,6 @@ jobs:
|
|
|
1781
1751
|
"app 🛑 Stop ⚠️ | prod ": {
|
|
1782
1752
|
"environment": {
|
|
1783
1753
|
"action": "stop",
|
|
1784
|
-
"kubernetes": {
|
|
1785
|
-
"namespace": "pan-test-app-prod",
|
|
1786
|
-
},
|
|
1787
1754
|
"name": "prod/app",
|
|
1788
1755
|
"url": "https://my-fancy-website.com",
|
|
1789
1756
|
},
|
|
@@ -1898,9 +1865,6 @@ jobs:
|
|
|
1898
1865
|
"app 🛑 Stop ⚠️ | stage ": {
|
|
1899
1866
|
"environment": {
|
|
1900
1867
|
"action": "stop",
|
|
1901
|
-
"kubernetes": {
|
|
1902
|
-
"namespace": "pan-test-app-stage",
|
|
1903
|
-
},
|
|
1904
1868
|
"name": "stage/app",
|
|
1905
1869
|
"url": "https://app.stage.test-app.pan.panter.cloud",
|
|
1906
1870
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@catladder/pipeline",
|
|
3
|
-
"version": "0.0.0-refactor-
|
|
3
|
+
"version": "0.0.0-refactor-image-ca767657",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"build:tsc": "yarn tsc",
|
|
6
6
|
"build": "yarn build:compile && yarn build:inline-variables && yarn build:bundle",
|
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
"build:inline-variables": "yarn babel --keep-file-extension --extensions \".ts,.js\" --config-file ./babel-inline.json dist --out-dir dist",
|
|
10
10
|
"build:watch": "yarn tsc -w",
|
|
11
11
|
"lint": "eslint \"src/**/*.ts\"",
|
|
12
|
-
"lint:fix": "eslint \"src/**/*.ts\" --fix"
|
|
12
|
+
"lint:fix": "eslint \"src/**/*.ts\" --fix",
|
|
13
|
+
"generate:gitlab-ci-yml-types": "ts-node ./scripts/generate-gitlab-ci-types.ts"
|
|
13
14
|
},
|
|
14
15
|
"types": "dist/index.d.ts",
|
|
15
16
|
"main": "dist/index.js",
|
|
@@ -31,6 +32,7 @@
|
|
|
31
32
|
"child-process-promise": "^2.2.1",
|
|
32
33
|
"eslint": "^8.7.0",
|
|
33
34
|
"js-yaml": "^4.1.0",
|
|
35
|
+
"json-schema-to-typescript": "^13.0.2",
|
|
34
36
|
"lodash": "^4.17.21",
|
|
35
37
|
"memoizee": "^0.4.15",
|
|
36
38
|
"path-equal": "1.1.3",
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { compile } from "json-schema-to-typescript";
|
|
2
|
+
import { resolve, join } from "path";
|
|
3
|
+
import { existsSync } from "fs";
|
|
4
|
+
import { rm, writeFile } from "fs/promises";
|
|
5
|
+
|
|
6
|
+
const rootPath = resolve(__dirname, "..");
|
|
7
|
+
const typeOutputPath = join(rootPath, "src/types/gitlab-ci-yml.ts");
|
|
8
|
+
|
|
9
|
+
export const generateFromCurrentSchema = async () => {
|
|
10
|
+
const response = await fetch(
|
|
11
|
+
"https://gitlab.com/gitlab-org/gitlab/-/raw/master/app/assets/javascripts/editor/schema/ci.json"
|
|
12
|
+
);
|
|
13
|
+
const gitLabCiJsonSchema = await response.json();
|
|
14
|
+
const schema = await compile(gitLabCiJsonSchema, "GitlabCiYml", {
|
|
15
|
+
additionalProperties: true,
|
|
16
|
+
enableConstEnums: true,
|
|
17
|
+
declareExternallyReferenced: true,
|
|
18
|
+
unreachableDefinitions: true,
|
|
19
|
+
strictIndexSignatures: true,
|
|
20
|
+
unknownAny: false,
|
|
21
|
+
ignoreMinAndMaxItems: true,
|
|
22
|
+
format: true,
|
|
23
|
+
style: {
|
|
24
|
+
bracketSpacing: true,
|
|
25
|
+
printWidth: 100,
|
|
26
|
+
semi: true,
|
|
27
|
+
tabWidth: 2,
|
|
28
|
+
useTabs: false,
|
|
29
|
+
trailingComma: "es5",
|
|
30
|
+
endOfLine: "lf",
|
|
31
|
+
},
|
|
32
|
+
cwd: rootPath,
|
|
33
|
+
});
|
|
34
|
+
/**
|
|
35
|
+
* Remove part that failes with tsc error
|
|
36
|
+
* ```
|
|
37
|
+
* error TS2411: Property '$schema' of type 'string | undefined' is not assignable to 'string' index type 'JobTemplate1'.
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
const sanitizedSchenma = schema.replace(
|
|
41
|
+
// eslint-disable-next-line no-useless-escape
|
|
42
|
+
/export interface HttpsGitlabComGitlabCiYml \{\n[ a-zA-Z0-9?$:;\n_!"\{\}\/*@\[\],.|\(\)]*\[k\: string\]: Job;\n\}/m,
|
|
43
|
+
""
|
|
44
|
+
);
|
|
45
|
+
if (existsSync(typeOutputPath)) {
|
|
46
|
+
await rm(typeOutputPath);
|
|
47
|
+
}
|
|
48
|
+
await writeFile(typeOutputPath, sanitizedSchenma, { encoding: "utf-8" });
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
generateFromCurrentSchema();
|
|
@@ -12,9 +12,10 @@ import {
|
|
|
12
12
|
import { writeBuildInfo } from "./writeBuildInfo";
|
|
13
13
|
import { writeDotEnv } from "./writeDotEnv";
|
|
14
14
|
|
|
15
|
-
export
|
|
15
|
+
export type AppBuildJobDefinition = Partial<CatladderJob>;
|
|
16
|
+
export const createAppBuildJob = (
|
|
16
17
|
context: Context,
|
|
17
|
-
{ script, variables, ...def }:
|
|
18
|
+
{ script, variables, ...def }: AppBuildJobDefinition
|
|
18
19
|
): CatladderJob => {
|
|
19
20
|
return merge(
|
|
20
21
|
{
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { sbomDeactivated } from "../../deploy/sbom";
|
|
2
|
+
import type { Context } from "../../types/context";
|
|
3
|
+
import type { CatladderJob } from "../../types/jobs";
|
|
4
|
+
import type { DockerBuildJobDefinition } from "../docker";
|
|
5
|
+
import { createDockerBuildJobBase, requiresDockerBuild } from "../docker";
|
|
6
|
+
import { createSbomBuildJob } from "../sbom";
|
|
7
|
+
import { APP_BUILD_JOB_NAME } from "./constants";
|
|
8
|
+
import type { AppBuildJobDefinition } from "./createAppBuildJob";
|
|
9
|
+
import { createAppBuildJob } from "./createAppBuildJob";
|
|
10
|
+
|
|
11
|
+
export const createBuildJobs = (
|
|
12
|
+
context: Context,
|
|
13
|
+
definitions: {
|
|
14
|
+
appBuild?: AppBuildJobDefinition;
|
|
15
|
+
dockerBuild: DockerBuildJobDefinition;
|
|
16
|
+
}
|
|
17
|
+
): CatladderJob[] => {
|
|
18
|
+
return [
|
|
19
|
+
...(definitions.appBuild
|
|
20
|
+
? [createAppBuildJob(context, definitions.appBuild)]
|
|
21
|
+
: []),
|
|
22
|
+
...(requiresDockerBuild(context)
|
|
23
|
+
? [
|
|
24
|
+
createDockerBuildJobBase(context, {
|
|
25
|
+
...definitions.dockerBuild,
|
|
26
|
+
needs: [
|
|
27
|
+
...(definitions.dockerBuild.needs ?? []),
|
|
28
|
+
...(definitions.appBuild ? [APP_BUILD_JOB_NAME] : []),
|
|
29
|
+
],
|
|
30
|
+
}),
|
|
31
|
+
]
|
|
32
|
+
: []),
|
|
33
|
+
...(sbomDeactivated(context) ? [] : [createSbomBuildJob(context)]),
|
|
34
|
+
];
|
|
35
|
+
};
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import { join } from "path";
|
|
2
2
|
import type { Context } from "../../types/context";
|
|
3
3
|
import { ensureArray } from "../../utils";
|
|
4
|
-
import {
|
|
5
|
-
import { createBuildJob } from "../base/createBuildJob";
|
|
6
|
-
import { createDockerBuildJobDefault, requiresDockerBuild } from "../docker";
|
|
4
|
+
import { getDockerBuildDefaultScript, requiresDockerBuild } from "../docker";
|
|
7
5
|
import { isOfBuildType } from "../types";
|
|
8
6
|
|
|
9
7
|
import type { CatladderJob } from "../../types/jobs";
|
|
10
|
-
import {
|
|
11
|
-
import { sbomDeactivated } from "../../deploy/sbom";
|
|
8
|
+
import { createBuildJobs } from "../base";
|
|
12
9
|
|
|
13
10
|
const RUNNER_BUILD_VARIABLES = {
|
|
14
11
|
KUBERNETES_CPU_REQUEST: "0.5",
|
|
@@ -24,45 +21,35 @@ export const createCustomBuildJobs = (context: Context): CatladderJob[] => {
|
|
|
24
21
|
throw new Error("deploy config is not custom");
|
|
25
22
|
}
|
|
26
23
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
script: [
|
|
55
|
-
buildConfig.docker?.type === "nginx"
|
|
56
|
-
? "ensureNginxDockerfile"
|
|
57
|
-
: "", // e.g. custom,
|
|
58
|
-
].filter(Boolean),
|
|
24
|
+
return createBuildJobs(context, {
|
|
25
|
+
appBuild:
|
|
26
|
+
buildConfig.buildCommand !== null
|
|
27
|
+
? {
|
|
28
|
+
image: buildConfig.jobImage,
|
|
29
|
+
variables: {
|
|
30
|
+
...RUNNER_BUILD_VARIABLES,
|
|
31
|
+
},
|
|
32
|
+
cache: buildConfig.jobCache,
|
|
33
|
+
services: buildConfig.jobServices,
|
|
34
|
+
script: [...(ensureArray(buildConfig.buildCommand) ?? [])],
|
|
35
|
+
artifacts: {
|
|
36
|
+
paths: [
|
|
37
|
+
join(context.componentConfig.dir, "__build_info.json"),
|
|
38
|
+
join(context.componentConfig.dir, "dist"),
|
|
39
|
+
...(buildConfig.artifactsPaths?.map((path) =>
|
|
40
|
+
join(context.componentConfig.dir, path)
|
|
41
|
+
) ?? []),
|
|
42
|
+
],
|
|
43
|
+
expire_in: "1 day",
|
|
44
|
+
},
|
|
45
|
+
}
|
|
46
|
+
: undefined,
|
|
47
|
+
dockerBuild: {
|
|
48
|
+
script: getDockerBuildDefaultScript(
|
|
49
|
+
buildConfig.docker?.type === "nginx" ? "ensureNginxDockerfile" : ""
|
|
50
|
+
),
|
|
59
51
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
}),
|
|
64
|
-
]
|
|
65
|
-
: []),
|
|
66
|
-
...(sbomDeactivated(context) ? [] : [createSbomBuildJob(context)]),
|
|
67
|
-
];
|
|
52
|
+
variables: {},
|
|
53
|
+
},
|
|
54
|
+
});
|
|
68
55
|
};
|