@catladder/pipeline 1.115.0 → 1.117.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 (31) hide show
  1. package/dist/bundles/catladder-gitlab/index.js +1 -1
  2. package/dist/constants.js +1 -1
  3. package/dist/deploy/cloudRun/artifactsRegistry.d.ts +19 -0
  4. package/dist/deploy/cloudRun/artifactsRegistry.js +117 -0
  5. package/dist/deploy/cloudRun/cleanup.d.ts +2 -0
  6. package/dist/deploy/cloudRun/cleanup.js +51 -0
  7. package/dist/deploy/cloudRun/cloudRunRevisions.d.ts +2 -0
  8. package/dist/deploy/cloudRun/cloudRunRevisions.js +61 -0
  9. package/dist/deploy/cloudRun/deployJob.js +13 -14
  10. package/dist/deploy/cloudRun/utils/getServiceName.d.ts +2 -0
  11. package/dist/deploy/cloudRun/utils/getServiceName.js +8 -0
  12. package/dist/deploy/cloudRun/utils/removeFirstLinesFromCommandOutput.d.ts +9 -0
  13. package/dist/deploy/cloudRun/utils/removeFirstLinesFromCommandOutput.js +16 -0
  14. package/dist/tsconfig.tsbuildinfo +1 -1
  15. package/examples/__snapshots__/cloud-run-memory-limit.ts.snap +46 -8
  16. package/examples/__snapshots__/cloud-run-no-cpu-throttling.ts.snap +46 -8
  17. package/examples/__snapshots__/cloud-run-non-public.ts.snap +46 -8
  18. package/examples/__snapshots__/cloud-run-with-sql-reuse-db.ts.snap +92 -16
  19. package/examples/__snapshots__/cloud-run-with-sql.ts.snap +92 -16
  20. package/examples/__snapshots__/custom-build-job-with-tests.ts.snap +46 -8
  21. package/examples/__snapshots__/custom-build-job.ts.snap +46 -8
  22. package/examples/__snapshots__/custom-sbom-java.ts.snap +46 -8
  23. package/examples/__snapshots__/native-app.ts.snap +46 -8
  24. package/examples/__snapshots__/node-build-with-custom-image.ts.snap +46 -8
  25. package/package.json +1 -1
  26. package/src/deploy/cloudRun/artifactsRegistry.ts +119 -0
  27. package/src/deploy/cloudRun/cleanup.ts +30 -0
  28. package/src/deploy/cloudRun/cloudRunRevisions.ts +67 -0
  29. package/src/deploy/cloudRun/deployJob.ts +46 -44
  30. package/src/deploy/cloudRun/utils/getServiceName.ts +3 -0
  31. package/src/deploy/cloudRun/utils/removeFirstLinesFromCommandOutput.ts +12 -0
@@ -245,21 +245,28 @@ COPY --chown=node:node .yarn /app/.yarn",
245
245
  },
246
246
  ],
247
247
  "script": [
248
+ "echo -e "\\e[0Ksection_start:$(date +%s):prepare[collapsed=true]\\r\\e[0KPrepare..."",
248
249
  "echo $CL_dev_api_GCLOUD_DEPLOY_credentialsKey > ./____keyfile.json
249
250
  ",
250
251
  "gcloud auth activate-service-account --key-file="./____keyfile.json"",
251
252
  "export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe google-project-id --format="value(projectNumber)")",
252
253
  "echo "GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER"",
253
- "echo -e "\\e[0Ksection_start:$(date +%s):pushToArtifactRegistry[collapsed=true]\\r\\e[0Kpushing image to artifacts registry"",
254
+ "echo -e "\\e[0Ksection_end:$(date +%s):prepare\\r\\e[0K"",
255
+ "echo -e "\\e[0Ksection_start:$(date +%s):pushToArtifactRegistry[collapsed=true]\\r\\e[0KPushing image to artifacts registry"",
254
256
  "docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY",
255
257
  "gcloud auth configure-docker europe-west6-docker.pkg.dev",
256
258
  "docker pull $DOCKER_IMAGE:$DOCKER_IMAGE_TAG",
257
259
  "docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/dev/api:$DOCKER_IMAGE_TAG",
258
260
  "docker push europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/dev/api:$DOCKER_IMAGE_TAG",
259
261
  "echo -e "\\e[0Ksection_end:$(date +%s):pushToArtifactRegistry\\r\\e[0K"",
262
+ "echo -e "\\e[0Ksection_start:$(date +%s):deploy[collapsed=true]\\r\\e[0KDeploy to cloud run"",
260
263
  "echo "$ENV_VARS" > ____envvars.yaml",
261
264
  "gcloud run deploy pan-test-app-dev-api --command="yarn,start" --image=europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/dev/api:$DOCKER_IMAGE_TAG --project=google-project-id --region=europe-west6 --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=1 --max-instances=100 --no-cpu-throttling --allow-unauthenticated --cpu-boost",
262
- "docker image rm europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/dev/api:$DOCKER_IMAGE_TAG",
265
+ "echo -e "\\e[0Ksection_end:$(date +%s):deploy\\r\\e[0K"",
266
+ "echo -e "\\e[0Ksection_start:$(date +%s):cleanup[collapsed=true]\\r\\e[0KCleanup"",
267
+ "gcloud run revisions list --project=google-project-id --region=europe-west6 --service=pan-test-app-dev-api --limit=unlimited --sort-by=metadata.creationTimestamp --format="value(name)" --filter='(status.conditions.status=False OR status.conditions.status=Unknown)' | while read -r revisionname; do gcloud run revisions delete --project=google-project-id --region=europe-west6 --quiet $revisionname ; done",
268
+ "gcloud artifacts docker images list europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/dev/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/dev/api@$version --quiet --delete-tags; done",
269
+ "echo -e "\\e[0Ksection_end:$(date +%s):cleanup\\r\\e[0K"",
263
270
  "echo Uploading SBOM to Dependency Track",
264
271
  "/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",
265
272
  ],
@@ -347,6 +354,7 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
347
354
  ",
348
355
  "gcloud auth activate-service-account --key-file="./____keyfile.json"",
349
356
  "gcloud run services delete pan-test-app-dev-api --project=google-project-id --region=europe-west6",
357
+ "gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/dev/api --quiet --delete-tags",
350
358
  "echo Disabling component in Dependency Track",
351
359
  "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/api" "https://pan-test-app-dev-api-unknown-host.example.com" || true",
352
360
  "set -e",
@@ -764,21 +772,31 @@ COPY --chown=node:node .yarn /app/.yarn",
764
772
  },
765
773
  ],
766
774
  "script": [
775
+ "echo -e "\\e[0Ksection_start:$(date +%s):prepare[collapsed=true]\\r\\e[0KPrepare..."",
767
776
  "echo $CL_review_api_GCLOUD_DEPLOY_credentialsKey > ./____keyfile.json
768
777
  ",
769
778
  "gcloud auth activate-service-account --key-file="./____keyfile.json"",
770
779
  "export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe google-project-id --format="value(projectNumber)")",
771
780
  "echo "GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER"",
772
- "echo -e "\\e[0Ksection_start:$(date +%s):pushToArtifactRegistry[collapsed=true]\\r\\e[0Kpushing image to artifacts registry"",
781
+ "echo -e "\\e[0Ksection_end:$(date +%s):prepare\\r\\e[0K"",
782
+ "echo -e "\\e[0Ksection_start:$(date +%s):pushToArtifactRegistry[collapsed=true]\\r\\e[0KPushing image to artifacts registry"",
773
783
  "docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY",
774
784
  "gcloud auth configure-docker europe-west6-docker.pkg.dev",
775
785
  "docker pull $DOCKER_IMAGE:$DOCKER_IMAGE_TAG",
776
786
  "docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/review/api/mr1234:$DOCKER_IMAGE_TAG",
777
787
  "docker push europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/review/api/mr1234:$DOCKER_IMAGE_TAG",
778
788
  "echo -e "\\e[0Ksection_end:$(date +%s):pushToArtifactRegistry\\r\\e[0K"",
789
+ "echo -e "\\e[0Ksection_start:$(date +%s):deploy[collapsed=true]\\r\\e[0KDeploy to cloud run"",
779
790
  "echo "$ENV_VARS" > ____envvars.yaml",
780
791
  "gcloud run deploy pan-test-app-review-mr1234-api --command="yarn,start" --image=europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/review/api/mr1234:$DOCKER_IMAGE_TAG --project=google-project-id --region=europe-west6 --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=1 --max-instances=100 --no-cpu-throttling --allow-unauthenticated --cpu-boost",
781
- "docker image rm europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/review/api/mr1234:$DOCKER_IMAGE_TAG",
792
+ "echo -e "\\e[0Ksection_end:$(date +%s):deploy\\r\\e[0K"",
793
+ "echo -e "\\e[0Ksection_start:$(date +%s):cleanup[collapsed=true]\\r\\e[0KCleanup"",
794
+ "gcloud run revisions list --project=google-project-id --region=europe-west6 --service=pan-test-app-review-mr1234-api --limit=unlimited --sort-by=metadata.creationTimestamp --format="value(name)" --filter='(status.conditions.status=False OR status.conditions.status=Unknown)' | while read -r revisionname; do gcloud run revisions delete --project=google-project-id --region=europe-west6 --quiet $revisionname ; done",
795
+ "gcloud artifacts docker images list europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/review/api/mr1234 --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/review/api/mr1234@$version --quiet --delete-tags; done",
796
+ "set +e",
797
+ "gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/review/api --quiet --delete-tags",
798
+ "set -e",
799
+ "echo -e "\\e[0Ksection_end:$(date +%s):cleanup\\r\\e[0K"",
782
800
  "echo Uploading SBOM to Dependency Track",
783
801
  "/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",
784
802
  ],
@@ -866,6 +884,10 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
866
884
  ",
867
885
  "gcloud auth activate-service-account --key-file="./____keyfile.json"",
868
886
  "gcloud run services delete pan-test-app-review-mr1234-api --project=google-project-id --region=europe-west6",
887
+ "gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/review/api/mr1234 --quiet --delete-tags",
888
+ "set +e",
889
+ "gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/review/api --quiet --delete-tags",
890
+ "set -e",
869
891
  "echo Disabling component in Dependency Track",
870
892
  "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/api" "https://pan-test-app-review-mr1234-api-unknown-host.example.com" || true",
871
893
  "set -e",
@@ -1371,21 +1393,28 @@ COPY --chown=node:node .yarn /app/.yarn",
1371
1393
  },
1372
1394
  ],
1373
1395
  "script": [
1396
+ "echo -e "\\e[0Ksection_start:$(date +%s):prepare[collapsed=true]\\r\\e[0KPrepare..."",
1374
1397
  "echo $CL_prod_api_GCLOUD_DEPLOY_credentialsKey > ./____keyfile.json
1375
1398
  ",
1376
1399
  "gcloud auth activate-service-account --key-file="./____keyfile.json"",
1377
1400
  "export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe google-project-id --format="value(projectNumber)")",
1378
1401
  "echo "GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER"",
1379
- "echo -e "\\e[0Ksection_start:$(date +%s):pushToArtifactRegistry[collapsed=true]\\r\\e[0Kpushing image to artifacts registry"",
1402
+ "echo -e "\\e[0Ksection_end:$(date +%s):prepare\\r\\e[0K"",
1403
+ "echo -e "\\e[0Ksection_start:$(date +%s):pushToArtifactRegistry[collapsed=true]\\r\\e[0KPushing image to artifacts registry"",
1380
1404
  "docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY",
1381
1405
  "gcloud auth configure-docker europe-west6-docker.pkg.dev",
1382
1406
  "docker pull $DOCKER_IMAGE:$DOCKER_IMAGE_TAG",
1383
1407
  "docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/prod/api:$DOCKER_IMAGE_TAG",
1384
1408
  "docker push europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/prod/api:$DOCKER_IMAGE_TAG",
1385
1409
  "echo -e "\\e[0Ksection_end:$(date +%s):pushToArtifactRegistry\\r\\e[0K"",
1410
+ "echo -e "\\e[0Ksection_start:$(date +%s):deploy[collapsed=true]\\r\\e[0KDeploy to cloud run"",
1386
1411
  "echo "$ENV_VARS" > ____envvars.yaml",
1387
1412
  "gcloud run deploy pan-test-app-prod-api --command="yarn,start" --image=europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/prod/api:$DOCKER_IMAGE_TAG --project=google-project-id --region=europe-west6 --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=1 --max-instances=100 --no-cpu-throttling --allow-unauthenticated --cpu-boost",
1388
- "docker image rm europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/prod/api:$DOCKER_IMAGE_TAG",
1413
+ "echo -e "\\e[0Ksection_end:$(date +%s):deploy\\r\\e[0K"",
1414
+ "echo -e "\\e[0Ksection_start:$(date +%s):cleanup[collapsed=true]\\r\\e[0KCleanup"",
1415
+ "gcloud run revisions list --project=google-project-id --region=europe-west6 --service=pan-test-app-prod-api --limit=unlimited --sort-by=metadata.creationTimestamp --format="value(name)" --filter='(status.conditions.status=False OR status.conditions.status=Unknown)' | tail -n +6 | while read -r revisionname; do gcloud run revisions delete --project=google-project-id --region=europe-west6 --quiet $revisionname ; done",
1416
+ "gcloud artifacts docker images list europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/prod/api --sort-by=~CREATE_TIME --format="value(version)" | tail -n +7 | while read -r version; do gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/prod/api@$version --quiet --delete-tags; done",
1417
+ "echo -e "\\e[0Ksection_end:$(date +%s):cleanup\\r\\e[0K"",
1389
1418
  "echo Uploading SBOM to Dependency Track",
1390
1419
  "/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",
1391
1420
  ],
@@ -1482,21 +1511,28 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
1482
1511
  },
1483
1512
  ],
1484
1513
  "script": [
1514
+ "echo -e "\\e[0Ksection_start:$(date +%s):prepare[collapsed=true]\\r\\e[0KPrepare..."",
1485
1515
  "echo $CL_stage_api_GCLOUD_DEPLOY_credentialsKey > ./____keyfile.json
1486
1516
  ",
1487
1517
  "gcloud auth activate-service-account --key-file="./____keyfile.json"",
1488
1518
  "export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe google-project-id --format="value(projectNumber)")",
1489
1519
  "echo "GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER"",
1490
- "echo -e "\\e[0Ksection_start:$(date +%s):pushToArtifactRegistry[collapsed=true]\\r\\e[0Kpushing image to artifacts registry"",
1520
+ "echo -e "\\e[0Ksection_end:$(date +%s):prepare\\r\\e[0K"",
1521
+ "echo -e "\\e[0Ksection_start:$(date +%s):pushToArtifactRegistry[collapsed=true]\\r\\e[0KPushing image to artifacts registry"",
1491
1522
  "docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY",
1492
1523
  "gcloud auth configure-docker europe-west6-docker.pkg.dev",
1493
1524
  "docker pull $DOCKER_IMAGE:$DOCKER_IMAGE_TAG",
1494
1525
  "docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/stage/api:$DOCKER_IMAGE_TAG",
1495
1526
  "docker push europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/stage/api:$DOCKER_IMAGE_TAG",
1496
1527
  "echo -e "\\e[0Ksection_end:$(date +%s):pushToArtifactRegistry\\r\\e[0K"",
1528
+ "echo -e "\\e[0Ksection_start:$(date +%s):deploy[collapsed=true]\\r\\e[0KDeploy to cloud run"",
1497
1529
  "echo "$ENV_VARS" > ____envvars.yaml",
1498
1530
  "gcloud run deploy pan-test-app-stage-api --command="yarn,start" --image=europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/stage/api:$DOCKER_IMAGE_TAG --project=google-project-id --region=europe-west6 --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=1 --max-instances=100 --no-cpu-throttling --allow-unauthenticated --cpu-boost",
1499
- "docker image rm europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/stage/api:$DOCKER_IMAGE_TAG",
1531
+ "echo -e "\\e[0Ksection_end:$(date +%s):deploy\\r\\e[0K"",
1532
+ "echo -e "\\e[0Ksection_start:$(date +%s):cleanup[collapsed=true]\\r\\e[0KCleanup"",
1533
+ "gcloud run revisions list --project=google-project-id --region=europe-west6 --service=pan-test-app-stage-api --limit=unlimited --sort-by=metadata.creationTimestamp --format="value(name)" --filter='(status.conditions.status=False OR status.conditions.status=Unknown)' | while read -r revisionname; do gcloud run revisions delete --project=google-project-id --region=europe-west6 --quiet $revisionname ; done",
1534
+ "gcloud artifacts docker images list europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/stage/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/stage/api@$version --quiet --delete-tags; done",
1535
+ "echo -e "\\e[0Ksection_end:$(date +%s):cleanup\\r\\e[0K"",
1500
1536
  "echo Uploading SBOM to Dependency Track",
1501
1537
  "/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",
1502
1538
  ],
@@ -1584,6 +1620,7 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
1584
1620
  ",
1585
1621
  "gcloud auth activate-service-account --key-file="./____keyfile.json"",
1586
1622
  "gcloud run services delete pan-test-app-prod-api --project=google-project-id --region=europe-west6",
1623
+ "gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/prod/api --quiet --delete-tags",
1587
1624
  "echo Disabling component in Dependency Track",
1588
1625
  "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/api" "https://pan-test-app-prod-api-unknown-host.example.com" || true",
1589
1626
  "set -e",
@@ -1631,6 +1668,7 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
1631
1668
  ",
1632
1669
  "gcloud auth activate-service-account --key-file="./____keyfile.json"",
1633
1670
  "gcloud run services delete pan-test-app-stage-api --project=google-project-id --region=europe-west6",
1671
+ "gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/stage/api --quiet --delete-tags",
1634
1672
  "echo Disabling component in Dependency Track",
1635
1673
  "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/api" "https://pan-test-app-stage-api-unknown-host.example.com" || true",
1636
1674
  "set -e",
@@ -245,21 +245,28 @@ COPY --chown=node:node .yarn /app/.yarn",
245
245
  },
246
246
  ],
247
247
  "script": [
248
+ "echo -e "\\e[0Ksection_start:$(date +%s):prepare[collapsed=true]\\r\\e[0KPrepare..."",
248
249
  "echo $CL_dev_api_GCLOUD_DEPLOY_credentialsKey > ./____keyfile.json
249
250
  ",
250
251
  "gcloud auth activate-service-account --key-file="./____keyfile.json"",
251
252
  "export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe asdf --format="value(projectNumber)")",
252
253
  "echo "GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER"",
253
- "echo -e "\\e[0Ksection_start:$(date +%s):pushToArtifactRegistry[collapsed=true]\\r\\e[0Kpushing image to artifacts registry"",
254
+ "echo -e "\\e[0Ksection_end:$(date +%s):prepare\\r\\e[0K"",
255
+ "echo -e "\\e[0Ksection_start:$(date +%s):pushToArtifactRegistry[collapsed=true]\\r\\e[0KPushing image to artifacts registry"",
254
256
  "docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY",
255
257
  "gcloud auth configure-docker asia-east1-docker.pkg.dev",
256
258
  "docker pull $DOCKER_IMAGE:$DOCKER_IMAGE_TAG",
257
259
  "docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/dev/api:$DOCKER_IMAGE_TAG",
258
260
  "docker push asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/dev/api:$DOCKER_IMAGE_TAG",
259
261
  "echo -e "\\e[0Ksection_end:$(date +%s):pushToArtifactRegistry\\r\\e[0K"",
262
+ "echo -e "\\e[0Ksection_start:$(date +%s):deploy[collapsed=true]\\r\\e[0KDeploy to cloud run"",
260
263
  "echo "$ENV_VARS" > ____envvars.yaml",
261
264
  "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 --no-allow-unauthenticated --cpu-boost",
262
- "docker image rm asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/dev/api:$DOCKER_IMAGE_TAG",
265
+ "echo -e "\\e[0Ksection_end:$(date +%s):deploy\\r\\e[0K"",
266
+ "echo -e "\\e[0Ksection_start:$(date +%s):cleanup[collapsed=true]\\r\\e[0KCleanup"",
267
+ "gcloud run revisions list --project=asdf --region=asia-east1 --service=pan-test-app-dev-api --limit=unlimited --sort-by=metadata.creationTimestamp --format="value(name)" --filter='(status.conditions.status=False OR status.conditions.status=Unknown)' | while read -r revisionname; do gcloud run revisions delete --project=asdf --region=asia-east1 --quiet $revisionname ; done",
268
+ "gcloud artifacts docker images list asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/dev/api --sort-by=~CREATE_TIME --format="value(version)" | tail -n +2 | while read -r version; do gcloud artifacts docker images delete asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/dev/api@$version --quiet --delete-tags; done",
269
+ "echo -e "\\e[0Ksection_end:$(date +%s):cleanup\\r\\e[0K"",
263
270
  "echo Uploading SBOM to Dependency Track",
264
271
  "/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",
265
272
  ],
@@ -347,6 +354,7 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
347
354
  ",
348
355
  "gcloud auth activate-service-account --key-file="./____keyfile.json"",
349
356
  "gcloud run services delete pan-test-app-dev-api --project=asdf --region=asia-east1",
357
+ "gcloud artifacts docker images delete asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/dev/api --quiet --delete-tags",
350
358
  "echo Disabling component in Dependency Track",
351
359
  "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/api" "https://pan-test-app-dev-api-unknown-host.example.com" || true",
352
360
  "set -e",
@@ -764,21 +772,31 @@ COPY --chown=node:node .yarn /app/.yarn",
764
772
  },
765
773
  ],
766
774
  "script": [
775
+ "echo -e "\\e[0Ksection_start:$(date +%s):prepare[collapsed=true]\\r\\e[0KPrepare..."",
767
776
  "echo $CL_review_api_GCLOUD_DEPLOY_credentialsKey > ./____keyfile.json
768
777
  ",
769
778
  "gcloud auth activate-service-account --key-file="./____keyfile.json"",
770
779
  "export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe asdf --format="value(projectNumber)")",
771
780
  "echo "GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER"",
772
- "echo -e "\\e[0Ksection_start:$(date +%s):pushToArtifactRegistry[collapsed=true]\\r\\e[0Kpushing image to artifacts registry"",
781
+ "echo -e "\\e[0Ksection_end:$(date +%s):prepare\\r\\e[0K"",
782
+ "echo -e "\\e[0Ksection_start:$(date +%s):pushToArtifactRegistry[collapsed=true]\\r\\e[0KPushing image to artifacts registry"",
773
783
  "docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY",
774
784
  "gcloud auth configure-docker asia-east1-docker.pkg.dev",
775
785
  "docker pull $DOCKER_IMAGE:$DOCKER_IMAGE_TAG",
776
786
  "docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/review/api/mr1234:$DOCKER_IMAGE_TAG",
777
787
  "docker push asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/review/api/mr1234:$DOCKER_IMAGE_TAG",
778
788
  "echo -e "\\e[0Ksection_end:$(date +%s):pushToArtifactRegistry\\r\\e[0K"",
789
+ "echo -e "\\e[0Ksection_start:$(date +%s):deploy[collapsed=true]\\r\\e[0KDeploy to cloud run"",
779
790
  "echo "$ENV_VARS" > ____envvars.yaml",
780
791
  "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/mr1234:$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 --no-allow-unauthenticated --cpu-boost",
781
- "docker image rm asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/review/api/mr1234:$DOCKER_IMAGE_TAG",
792
+ "echo -e "\\e[0Ksection_end:$(date +%s):deploy\\r\\e[0K"",
793
+ "echo -e "\\e[0Ksection_start:$(date +%s):cleanup[collapsed=true]\\r\\e[0KCleanup"",
794
+ "gcloud run revisions list --project=asdf --region=asia-east1 --service=pan-test-app-review-mr1234-api --limit=unlimited --sort-by=metadata.creationTimestamp --format="value(name)" --filter='(status.conditions.status=False OR status.conditions.status=Unknown)' | while read -r revisionname; do gcloud run revisions delete --project=asdf --region=asia-east1 --quiet $revisionname ; done",
795
+ "gcloud artifacts docker images list asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/review/api/mr1234 --sort-by=~CREATE_TIME --format="value(version)" | tail -n +2 | while read -r version; do gcloud artifacts docker images delete asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/review/api/mr1234@$version --quiet --delete-tags; done",
796
+ "set +e",
797
+ "gcloud artifacts docker images delete asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/review/api --quiet --delete-tags",
798
+ "set -e",
799
+ "echo -e "\\e[0Ksection_end:$(date +%s):cleanup\\r\\e[0K"",
782
800
  "echo Uploading SBOM to Dependency Track",
783
801
  "/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",
784
802
  ],
@@ -866,6 +884,10 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
866
884
  ",
867
885
  "gcloud auth activate-service-account --key-file="./____keyfile.json"",
868
886
  "gcloud run services delete pan-test-app-review-mr1234-api --project=asdf --region=asia-east1",
887
+ "gcloud artifacts docker images delete asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/review/api/mr1234 --quiet --delete-tags",
888
+ "set +e",
889
+ "gcloud artifacts docker images delete asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/review/api --quiet --delete-tags",
890
+ "set -e",
869
891
  "echo Disabling component in Dependency Track",
870
892
  "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/api" "https://pan-test-app-review-mr1234-api-unknown-host.example.com" || true",
871
893
  "set -e",
@@ -1371,21 +1393,28 @@ COPY --chown=node:node .yarn /app/.yarn",
1371
1393
  },
1372
1394
  ],
1373
1395
  "script": [
1396
+ "echo -e "\\e[0Ksection_start:$(date +%s):prepare[collapsed=true]\\r\\e[0KPrepare..."",
1374
1397
  "echo $CL_prod_api_GCLOUD_DEPLOY_credentialsKey > ./____keyfile.json
1375
1398
  ",
1376
1399
  "gcloud auth activate-service-account --key-file="./____keyfile.json"",
1377
1400
  "export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe asdf --format="value(projectNumber)")",
1378
1401
  "echo "GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER"",
1379
- "echo -e "\\e[0Ksection_start:$(date +%s):pushToArtifactRegistry[collapsed=true]\\r\\e[0Kpushing image to artifacts registry"",
1402
+ "echo -e "\\e[0Ksection_end:$(date +%s):prepare\\r\\e[0K"",
1403
+ "echo -e "\\e[0Ksection_start:$(date +%s):pushToArtifactRegistry[collapsed=true]\\r\\e[0KPushing image to artifacts registry"",
1380
1404
  "docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY",
1381
1405
  "gcloud auth configure-docker asia-east1-docker.pkg.dev",
1382
1406
  "docker pull $DOCKER_IMAGE:$DOCKER_IMAGE_TAG",
1383
1407
  "docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/prod/api:$DOCKER_IMAGE_TAG",
1384
1408
  "docker push asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/prod/api:$DOCKER_IMAGE_TAG",
1385
1409
  "echo -e "\\e[0Ksection_end:$(date +%s):pushToArtifactRegistry\\r\\e[0K"",
1410
+ "echo -e "\\e[0Ksection_start:$(date +%s):deploy[collapsed=true]\\r\\e[0KDeploy to cloud run"",
1386
1411
  "echo "$ENV_VARS" > ____envvars.yaml",
1387
1412
  "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 --no-allow-unauthenticated --cpu-boost",
1388
- "docker image rm asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/prod/api:$DOCKER_IMAGE_TAG",
1413
+ "echo -e "\\e[0Ksection_end:$(date +%s):deploy\\r\\e[0K"",
1414
+ "echo -e "\\e[0Ksection_start:$(date +%s):cleanup[collapsed=true]\\r\\e[0KCleanup"",
1415
+ "gcloud run revisions list --project=asdf --region=asia-east1 --service=pan-test-app-prod-api --limit=unlimited --sort-by=metadata.creationTimestamp --format="value(name)" --filter='(status.conditions.status=False OR status.conditions.status=Unknown)' | tail -n +6 | while read -r revisionname; do gcloud run revisions delete --project=asdf --region=asia-east1 --quiet $revisionname ; done",
1416
+ "gcloud artifacts docker images list asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/prod/api --sort-by=~CREATE_TIME --format="value(version)" | tail -n +7 | while read -r version; do gcloud artifacts docker images delete asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/prod/api@$version --quiet --delete-tags; done",
1417
+ "echo -e "\\e[0Ksection_end:$(date +%s):cleanup\\r\\e[0K"",
1389
1418
  "echo Uploading SBOM to Dependency Track",
1390
1419
  "/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",
1391
1420
  ],
@@ -1482,21 +1511,28 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
1482
1511
  },
1483
1512
  ],
1484
1513
  "script": [
1514
+ "echo -e "\\e[0Ksection_start:$(date +%s):prepare[collapsed=true]\\r\\e[0KPrepare..."",
1485
1515
  "echo $CL_stage_api_GCLOUD_DEPLOY_credentialsKey > ./____keyfile.json
1486
1516
  ",
1487
1517
  "gcloud auth activate-service-account --key-file="./____keyfile.json"",
1488
1518
  "export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe asdf --format="value(projectNumber)")",
1489
1519
  "echo "GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER"",
1490
- "echo -e "\\e[0Ksection_start:$(date +%s):pushToArtifactRegistry[collapsed=true]\\r\\e[0Kpushing image to artifacts registry"",
1520
+ "echo -e "\\e[0Ksection_end:$(date +%s):prepare\\r\\e[0K"",
1521
+ "echo -e "\\e[0Ksection_start:$(date +%s):pushToArtifactRegistry[collapsed=true]\\r\\e[0KPushing image to artifacts registry"",
1491
1522
  "docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY",
1492
1523
  "gcloud auth configure-docker asia-east1-docker.pkg.dev",
1493
1524
  "docker pull $DOCKER_IMAGE:$DOCKER_IMAGE_TAG",
1494
1525
  "docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/stage/api:$DOCKER_IMAGE_TAG",
1495
1526
  "docker push asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/stage/api:$DOCKER_IMAGE_TAG",
1496
1527
  "echo -e "\\e[0Ksection_end:$(date +%s):pushToArtifactRegistry\\r\\e[0K"",
1528
+ "echo -e "\\e[0Ksection_start:$(date +%s):deploy[collapsed=true]\\r\\e[0KDeploy to cloud run"",
1497
1529
  "echo "$ENV_VARS" > ____envvars.yaml",
1498
1530
  "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 --no-allow-unauthenticated --cpu-boost",
1499
- "docker image rm asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/stage/api:$DOCKER_IMAGE_TAG",
1531
+ "echo -e "\\e[0Ksection_end:$(date +%s):deploy\\r\\e[0K"",
1532
+ "echo -e "\\e[0Ksection_start:$(date +%s):cleanup[collapsed=true]\\r\\e[0KCleanup"",
1533
+ "gcloud run revisions list --project=asdf --region=asia-east1 --service=pan-test-app-stage-api --limit=unlimited --sort-by=metadata.creationTimestamp --format="value(name)" --filter='(status.conditions.status=False OR status.conditions.status=Unknown)' | while read -r revisionname; do gcloud run revisions delete --project=asdf --region=asia-east1 --quiet $revisionname ; done",
1534
+ "gcloud artifacts docker images list asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/stage/api --sort-by=~CREATE_TIME --format="value(version)" | tail -n +2 | while read -r version; do gcloud artifacts docker images delete asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/stage/api@$version --quiet --delete-tags; done",
1535
+ "echo -e "\\e[0Ksection_end:$(date +%s):cleanup\\r\\e[0K"",
1500
1536
  "echo Uploading SBOM to Dependency Track",
1501
1537
  "/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",
1502
1538
  ],
@@ -1584,6 +1620,7 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
1584
1620
  ",
1585
1621
  "gcloud auth activate-service-account --key-file="./____keyfile.json"",
1586
1622
  "gcloud run services delete pan-test-app-prod-api --project=asdf --region=asia-east1",
1623
+ "gcloud artifacts docker images delete asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/prod/api --quiet --delete-tags",
1587
1624
  "echo Disabling component in Dependency Track",
1588
1625
  "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/api" "https://pan-test-app-prod-api-unknown-host.example.com" || true",
1589
1626
  "set -e",
@@ -1631,6 +1668,7 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
1631
1668
  ",
1632
1669
  "gcloud auth activate-service-account --key-file="./____keyfile.json"",
1633
1670
  "gcloud run services delete pan-test-app-stage-api --project=asdf --region=asia-east1",
1671
+ "gcloud artifacts docker images delete asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/stage/api --quiet --delete-tags",
1634
1672
  "echo Disabling component in Dependency Track",
1635
1673
  "/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/api" "https://pan-test-app-stage-api-unknown-host.example.com" || true",
1636
1674
  "set -e",