@catladder/pipeline 1.144.1 → 1.145.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.
- package/dist/bash/BashExpression.d.ts +40 -0
- package/dist/bash/BashExpression.js +124 -0
- package/dist/bash/bashExpressionPerPipelineType.d.ts +6 -0
- package/dist/bash/bashExpressionPerPipelineType.js +11 -0
- package/dist/bash/bashYaml.d.ts +10 -0
- package/dist/bash/bashYaml.js +46 -0
- package/dist/bash/getInjectVarsScript.d.ts +2 -0
- package/dist/bash/getInjectVarsScript.js +45 -0
- package/dist/bash/replaceAsync.d.ts +2 -0
- package/dist/{pipeline/commitInfo/getCommitInfo.js → bash/replaceAsync.js} +49 -21
- package/dist/build/base/__tests__/createArtifactsConfig.test.js +3 -1
- package/dist/build/base/constants.js +3 -1
- package/dist/build/base/createAppBuildJob.d.ts +2 -1
- package/dist/build/base/createAppBuildJob.js +10 -6
- package/dist/build/base/createArtifactsConfig.d.ts +1 -1
- package/dist/build/base/createArtifactsConfig.js +3 -1
- package/dist/build/base/index.js +3 -1
- package/dist/build/base/writeBuildInfo.js +4 -3
- package/dist/build/base/writeDotEnv.js +12 -3
- package/dist/build/custom/__tests__/testJob.test.js +3 -1
- package/dist/build/custom/buildJob.js +4 -12
- package/dist/build/custom/index.js +3 -1
- package/dist/build/custom/testJob.d.ts +1 -1
- package/dist/build/custom/testJob.js +18 -14
- package/dist/build/docker.d.ts +5 -31
- package/dist/build/docker.js +16 -9
- package/dist/build/index.d.ts +1 -1
- package/dist/build/index.js +13 -7
- package/dist/build/node/buildJob.js +4 -12
- package/dist/build/node/cache.js +6 -3
- package/dist/build/node/constants.js +3 -1
- package/dist/build/node/index.js +3 -1
- package/dist/build/node/meteor.js +5 -2
- package/dist/build/node/testJob.js +18 -14
- package/dist/build/node/yarn.d.ts +3 -2
- package/dist/build/node/yarn.js +6 -3
- package/dist/build/rails/build.js +3 -1
- package/dist/build/rails/index.js +3 -1
- package/dist/build/rails/test.js +15 -11
- package/dist/build/sbom.js +3 -1
- package/dist/build/types.d.ts +24 -18
- package/dist/build/types.js +3 -1
- package/dist/bundles/catladder-gitlab/index.js +3 -3
- package/dist/catladder-gitlab.js +10 -54
- package/dist/config/__tests__/configruedEnvs.test.js +3 -1
- package/dist/config/configruedEnvs.js +3 -1
- package/dist/config/index.js +13 -7
- package/dist/config/readConfig.js +6 -5
- package/dist/constants.js +5 -3
- package/dist/context/__tests__/resolveReferences.test.js +40 -8
- package/dist/context/getBuildInfoVariables.d.ts +7 -0
- package/dist/context/getBuildInfoVariables.js +29 -0
- package/dist/context/getEnvConfig.js +3 -1
- package/dist/context/getEnvType.js +3 -1
- package/dist/context/getEnvironment.d.ts +3 -3
- package/dist/context/getEnvironment.js +10 -14
- package/dist/context/getEnvironmentContext.d.ts +7 -3
- package/dist/context/getEnvironmentContext.js +21 -11
- package/dist/context/getEnvironmentVariables.d.ts +26 -5
- package/dist/context/getEnvironmentVariables.js +41 -25
- package/dist/context/getLabels.js +4 -2
- package/dist/context/getReviewSlug.d.ts +4 -0
- package/dist/context/getReviewSlug.js +22 -0
- package/dist/context/index.d.ts +12 -3
- package/dist/context/index.js +21 -15
- package/dist/context/resolveReferences.d.ts +3 -1
- package/dist/context/resolveReferences.js +53 -21
- package/dist/context/transformJobOnlyVars.d.ts +5 -2
- package/dist/context/transformJobOnlyVars.js +4 -2
- package/dist/context/utils/envVars.d.ts +1 -1
- package/dist/context/utils/envVars.js +5 -2
- package/dist/defaults/index.js +3 -1
- package/dist/deploy/base/deploy.d.ts +1 -1
- package/dist/deploy/base/deploy.js +12 -11
- package/dist/deploy/base/index.js +3 -1
- package/dist/deploy/base/rollback.d.ts +1 -1
- package/dist/deploy/base/rollback.js +13 -9
- package/dist/deploy/base/stop.d.ts +1 -1
- package/dist/deploy/base/stop.js +16 -11
- package/dist/deploy/base/types.d.ts +1 -1
- package/dist/deploy/base/types.js +3 -1
- package/dist/deploy/base/variables.js +3 -1
- package/dist/deploy/cloudRun/artifactsRegistry.d.ts +2 -1
- package/dist/deploy/cloudRun/artifactsRegistry.js +6 -4
- package/dist/deploy/cloudRun/cleanup.js +3 -1
- package/dist/deploy/cloudRun/cloudRunRevisions.js +3 -1
- package/dist/deploy/cloudRun/createJobs/cloudRunJobs.js +8 -5
- package/dist/deploy/cloudRun/createJobs/cloudRunServices.d.ts +2 -2
- package/dist/deploy/cloudRun/createJobs/cloudRunServices.js +6 -3
- package/dist/deploy/cloudRun/createJobs/common.d.ts +3 -3
- package/dist/deploy/cloudRun/createJobs/common.js +3 -1
- package/dist/deploy/cloudRun/createJobs/constants.d.ts +1 -0
- package/dist/deploy/cloudRun/createJobs/constants.js +7 -0
- package/dist/deploy/cloudRun/createJobs/getCloudRunDeployScripts.js +9 -2
- package/dist/deploy/cloudRun/createJobs/getCloudRunStopScripts.js +3 -1
- package/dist/deploy/cloudRun/createJobs/index.js +25 -8
- package/dist/deploy/cloudRun/createJobs/volumes.js +3 -1
- package/dist/deploy/cloudRun/index.js +5 -3
- package/dist/deploy/cloudRun/utils/createArgsString.d.ts +2 -1
- package/dist/deploy/cloudRun/utils/createArgsString.js +3 -1
- package/dist/deploy/cloudRun/utils/database.js +13 -13
- package/dist/deploy/cloudRun/utils/gcloudServiceAccountLoginCommands.js +3 -1
- package/dist/deploy/cloudRun/utils/getServiceName.d.ts +1 -1
- package/dist/deploy/cloudRun/utils/getServiceName.js +3 -1
- package/dist/deploy/cloudRun/utils/jobName.d.ts +2 -1
- package/dist/deploy/cloudRun/utils/jobName.js +4 -2
- package/dist/deploy/cloudRun/utils/removeFirstLinesFromCommandOutput.js +3 -1
- package/dist/deploy/cloudSql/utils.d.ts +2 -1
- package/dist/deploy/cloudSql/utils.js +7 -2
- package/dist/deploy/custom/deployJob.js +3 -1
- package/dist/deploy/custom/index.js +3 -1
- package/dist/deploy/dockerTag/deployJob.js +3 -1
- package/dist/deploy/dockerTag/index.js +3 -1
- package/dist/deploy/index.d.ts +4 -3
- package/dist/deploy/index.js +13 -7
- package/dist/deploy/kubernetes/additionalSecretKeys.js +3 -1
- package/dist/deploy/kubernetes/cloudSql/index.d.ts +3 -2
- package/dist/deploy/kubernetes/cloudSql/index.js +6 -4
- package/dist/deploy/kubernetes/deployJob.js +22 -15
- package/dist/deploy/kubernetes/index.js +51 -14
- package/dist/deploy/kubernetes/kubeEnv.d.ts +3 -2
- package/dist/deploy/kubernetes/kubeEnv.js +7 -4
- package/dist/deploy/kubernetes/kubeValues.d.ts +2 -2
- package/dist/deploy/kubernetes/kubeValues.js +3 -2
- package/dist/deploy/kubernetes/mongodb.js +3 -1
- package/dist/deploy/kubernetes/processSecretsAsFiles.d.ts +2 -1
- package/dist/deploy/kubernetes/processSecretsAsFiles.js +3 -1
- package/dist/deploy/sbom.js +3 -1
- package/dist/deploy/types/base.d.ts +8 -2
- package/dist/deploy/types/base.js +3 -1
- package/dist/deploy/types/custom.d.ts +1 -1
- package/dist/deploy/types/custom.js +3 -1
- package/dist/deploy/types/dockerTag.d.ts +1 -1
- package/dist/deploy/types/dockerTag.js +3 -1
- package/dist/deploy/types/googleCloudRun.d.ts +19 -18
- package/dist/deploy/types/googleCloudRun.js +3 -1
- package/dist/deploy/types/index.d.ts +6 -6
- package/dist/deploy/types/index.js +13 -7
- package/dist/deploy/types/kubernetes.d.ts +22 -22
- package/dist/deploy/types/kubernetes.js +3 -1
- package/dist/deploy/utils.js +3 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.js +16 -9
- package/dist/packageInfos.d.ts +2 -0
- package/dist/packageInfos.js +14 -0
- package/dist/pipeline/createAllJobs.d.ts +13 -5
- package/dist/pipeline/createAllJobs.js +21 -10
- package/dist/pipeline/createChildPipeline.d.ts +1 -1
- package/dist/pipeline/createChildPipeline.js +24 -7
- package/dist/pipeline/createJobsForComponent.d.ts +3 -3
- package/dist/pipeline/createJobsForComponent.js +19 -18
- package/dist/pipeline/createMainPipeline.d.ts +3 -0
- package/dist/pipeline/createMainPipeline.js +248 -0
- package/dist/pipeline/generatePipelineFiles.d.ts +2 -0
- package/dist/pipeline/generatePipelineFiles.js +178 -0
- package/dist/pipeline/getPipelineStages.js +3 -1
- package/dist/pipeline/gitlab/createGitlabJobs.d.ts +15 -5
- package/dist/pipeline/gitlab/createGitlabJobs.js +98 -25
- package/dist/pipeline/gitlab/createGitlabPipeline.d.ts +7 -2
- package/dist/pipeline/gitlab/createGitlabPipeline.js +34 -17
- package/dist/pipeline/gitlab/getPipelineTriggerForGitlabChildPipeline.d.ts +1 -0
- package/dist/pipeline/gitlab/getPipelineTriggerForGitlabChildPipeline.js +29 -0
- package/dist/pipeline/gitlab/gitlabReleaseJobs.d.ts +33 -0
- package/dist/pipeline/gitlab/gitlabReleaseJobs.js +24 -0
- package/dist/pipeline/index.d.ts +3 -1
- package/dist/pipeline/index.js +16 -8
- package/dist/pipeline/packageManager.js +4 -2
- package/dist/pipeline/yarn/yarnUtils.js +6 -4
- package/dist/rules/index.d.ts +4 -1
- package/dist/rules/index.js +25 -18
- package/dist/runner/index.d.ts +1 -1
- package/dist/runner/index.js +3 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/config.d.ts +18 -15
- package/dist/types/config.js +5 -2
- package/dist/types/context.d.ts +37 -32
- package/dist/types/context.js +3 -1
- package/dist/types/environmentContext.d.ts +11 -7
- package/dist/types/environmentContext.js +3 -1
- package/dist/types/gitlab-ci-yml.d.ts +30 -30
- package/dist/types/gitlab-ci-yml.js +3 -2
- package/dist/types/gitlab-types.d.ts +4 -6
- package/dist/types/gitlab-types.js +3 -1
- package/dist/types/index.js +13 -7
- package/dist/types/jobs.d.ts +23 -6
- package/dist/types/jobs.js +3 -1
- package/dist/types/pipeline.d.ts +4 -3
- package/dist/types/pipeline.js +3 -1
- package/dist/types/utils.d.ts +1 -1
- package/dist/types/utils.js +3 -1
- package/dist/utils/gitlab.js +3 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.js +3 -1
- package/dist/utils/writeFiles.d.ts +7 -0
- package/dist/{pipeline/commitInfo/getBuildId.js → utils/writeFiles.js} +39 -22
- package/examples/__snapshots__/cloud-run-memory-limit.ts.snap +480 -384
- package/examples/__snapshots__/cloud-run-meteor-with-worker.ts.snap +462 -366
- package/examples/__snapshots__/cloud-run-no-cpu-throttling.ts.snap +480 -384
- package/examples/__snapshots__/cloud-run-no-service.ts.snap +501 -393
- package/examples/__snapshots__/cloud-run-non-public.ts.snap +480 -384
- package/examples/__snapshots__/cloud-run-post-stop-job.ts.snap +489 -392
- package/examples/__snapshots__/cloud-run-service-gen2.ts.snap +480 -384
- package/examples/__snapshots__/cloud-run-service-with-volumes.ts.snap +501 -401
- package/examples/__snapshots__/cloud-run-with-sql-reuse-db.ts.snap +1155 -915
- package/examples/__snapshots__/cloud-run-with-sql.ts.snap +1116 -888
- package/examples/__snapshots__/cloud-run-with-worker.ts.snap +482 -386
- package/examples/__snapshots__/custom-build-job-with-tests.ts.snap +452 -356
- package/examples/__snapshots__/custom-build-job.ts.snap +434 -350
- package/examples/__snapshots__/custom-deploy.ts.snap +319 -223
- package/examples/__snapshots__/custom-envs.ts.snap +123 -81
- package/examples/__snapshots__/custom-sbom-java.ts.snap +434 -350
- package/examples/__snapshots__/kubernetes-application-customization.ts.snap +846 -969
- package/examples/__snapshots__/kubernetes-with-cloud-sql-legacy.ts.snap +886 -957
- package/examples/__snapshots__/kubernetes-with-cloud-sql.ts.snap +894 -969
- package/examples/__snapshots__/kubernetes-with-jobs.ts.snap +1626 -1728
- package/examples/__snapshots__/kubernetes-with-mongodb.ts.snap +974 -1137
- package/examples/__snapshots__/local-dot-env.ts.snap +480 -384
- package/examples/__snapshots__/meteor-kubernetes.ts.snap +906 -1069
- package/examples/__snapshots__/multiline-var.ts.snap +4500 -0
- package/examples/__snapshots__/native-app.ts.snap +706 -578
- package/examples/__snapshots__/node-build-with-custom-image.ts.snap +480 -384
- package/examples/__snapshots__/node-build-with-docker-additions.ts.snap +488 -384
- package/examples/__snapshots__/rails-k8s-with-worker.ts.snap +1656 -1942
- package/examples/__snapshots__/wait-for-other-deploy.ts.snap +287 -231
- package/examples/custom-deploy.ts +7 -7
- package/examples/multiline-var.ts +64 -0
- package/package.json +5 -8
- package/src/bash/BashExpression.ts +81 -0
- package/src/bash/bashExpressionPerPipelineType.ts +16 -0
- package/src/bash/bashYaml.ts +46 -0
- package/src/bash/getInjectVarsScript.ts +12 -0
- package/src/bash/replaceAsync.ts +50 -0
- package/src/build/base/createAppBuildJob.ts +6 -2
- package/src/build/base/writeBuildInfo.ts +1 -1
- package/src/build/base/writeDotEnv.ts +6 -1
- package/src/build/custom/buildJob.ts +2 -4
- package/src/build/custom/testJob.ts +3 -2
- package/src/build/docker.ts +15 -7
- package/src/build/node/buildJob.ts +1 -3
- package/src/build/node/testJob.ts +3 -2
- package/src/build/node/yarn.ts +9 -4
- package/src/build/rails/test.ts +2 -1
- package/src/build/types.ts +8 -1
- package/src/catladder-gitlab.ts +8 -55
- package/src/config/readConfig.ts +2 -3
- package/src/constants.ts +5 -2
- package/src/context/__tests__/resolveReferences.test.ts +11 -6
- package/src/context/getBuildInfoVariables.ts +40 -0
- package/src/context/getEnvironment.ts +7 -30
- package/src/context/getEnvironmentContext.ts +25 -29
- package/src/context/getEnvironmentVariables.ts +61 -36
- package/src/context/getReviewSlug.ts +27 -0
- package/src/context/index.ts +24 -23
- package/src/context/resolveReferences.ts +28 -8
- package/src/context/transformJobOnlyVars.ts +5 -2
- package/src/context/utils/envVars.ts +2 -1
- package/src/deploy/base/deploy.ts +20 -18
- package/src/deploy/base/rollback.ts +8 -10
- package/src/deploy/base/stop.ts +8 -9
- package/src/deploy/cloudRun/artifactsRegistry.ts +9 -4
- package/src/deploy/cloudRun/createJobs/cloudRunJobs.ts +12 -7
- package/src/deploy/cloudRun/createJobs/cloudRunServices.ts +3 -2
- package/src/deploy/cloudRun/createJobs/constants.ts +1 -0
- package/src/deploy/cloudRun/createJobs/getCloudRunDeployScripts.ts +20 -2
- package/src/deploy/cloudRun/createJobs/index.ts +17 -8
- package/src/deploy/cloudRun/index.ts +14 -6
- package/src/deploy/cloudRun/utils/createArgsString.ts +2 -1
- package/src/deploy/cloudRun/utils/database.ts +2 -2
- package/src/deploy/cloudRun/utils/jobName.ts +7 -2
- package/src/deploy/cloudSql/utils.ts +12 -9
- package/src/deploy/index.ts +2 -1
- package/src/deploy/kubernetes/cloudSql/index.ts +3 -2
- package/src/deploy/kubernetes/deployJob.ts +24 -10
- package/src/deploy/kubernetes/index.ts +15 -8
- package/src/deploy/kubernetes/kubeEnv.ts +8 -6
- package/src/deploy/kubernetes/kubeValues.ts +0 -1
- package/src/deploy/kubernetes/processSecretsAsFiles.ts +2 -1
- package/src/deploy/types/base.ts +6 -0
- package/src/deploy/types/googleCloudRun.ts +2 -0
- package/src/index.ts +2 -1
- package/src/packageInfos.ts +10 -0
- package/src/pipeline/createAllJobs.ts +24 -10
- package/src/pipeline/createChildPipeline.ts +19 -8
- package/src/pipeline/createJobsForComponent.ts +14 -22
- package/src/pipeline/createMainPipeline.ts +88 -0
- package/src/pipeline/generatePipelineFiles.ts +29 -0
- package/src/pipeline/gitlab/createGitlabJobs.ts +174 -51
- package/src/pipeline/gitlab/createGitlabPipeline.ts +16 -14
- package/src/pipeline/gitlab/getPipelineTriggerForGitlabChildPipeline.ts +46 -0
- package/src/pipeline/gitlab/gitlabReleaseJobs.ts +20 -0
- package/src/pipeline/index.ts +2 -0
- package/src/rules/index.ts +15 -9
- package/src/types/config.ts +11 -2
- package/src/types/context.ts +39 -26
- package/src/types/environmentContext.ts +12 -6
- package/src/types/gitlab-ci-yml.ts +0 -1
- package/src/types/gitlab-types.ts +5 -4
- package/src/types/jobs.ts +28 -3
- package/src/types/pipeline.ts +4 -0
- package/src/utils/writeFiles.ts +40 -0
- package/dist/deploy/cloudRun/createJobs/variables.d.ts +0 -5
- package/dist/deploy/cloudRun/createJobs/variables.js +0 -19
- package/dist/pipeline/commitInfo/getBuildId.d.ts +0 -6
- package/dist/pipeline/commitInfo/getCommitInfo.d.ts +0 -2
- package/src/deploy/cloudRun/createJobs/variables.ts +0 -21
- package/src/pipeline/commitInfo/getBuildId.ts +0 -17
- package/src/pipeline/commitInfo/getCommitInfo.ts +0 -15
|
@@ -25,6 +25,9 @@ exports[`matches snapshot 1`] = `
|
|
|
25
25
|
],
|
|
26
26
|
},
|
|
27
27
|
"script": [
|
|
28
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
29
|
+
"export APP_PATH="www"",
|
|
30
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
28
31
|
"lint",
|
|
29
32
|
],
|
|
30
33
|
"services": [
|
|
@@ -37,7 +40,6 @@ exports[`matches snapshot 1`] = `
|
|
|
37
40
|
],
|
|
38
41
|
"stage": "test",
|
|
39
42
|
"variables": {
|
|
40
|
-
"APP_PATH": "www",
|
|
41
43
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
42
44
|
"KUBERNETES_MEMORY_LIMIT": "4Gi",
|
|
43
45
|
"KUBERNETES_MEMORY_REQUEST": "2Gi",
|
|
@@ -66,7 +68,25 @@ exports[`matches snapshot 1`] = `
|
|
|
66
68
|
],
|
|
67
69
|
},
|
|
68
70
|
"script": [
|
|
69
|
-
"echo
|
|
71
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
72
|
+
"export ENV_SHORT="dev"",
|
|
73
|
+
"export APP_DIR="www"",
|
|
74
|
+
"export ENV_TYPE="dev"",
|
|
75
|
+
"export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"",
|
|
76
|
+
"export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"",
|
|
77
|
+
"export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\///'); [ -z "$tag" ] && echo "v0.0.0" || echo "$tag")"",
|
|
78
|
+
"export HOST="$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
79
|
+
"export ROOT_URL="https://$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
80
|
+
"export HOST_INTERNAL="$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
81
|
+
"export HOST_CANONICAL="$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
82
|
+
"export ROOT_URL_INTERNAL="https://$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
83
|
+
"export DEPLOY_CLOUD_RUN_PROJECT_ID="asdf"",
|
|
84
|
+
"export DEPLOY_CLOUD_RUN_REGION="asia-east1"",
|
|
85
|
+
"export GCLOUD_DEPLOY_credentialsKey="$CL_dev_www_GCLOUD_DEPLOY_credentialsKey"",
|
|
86
|
+
"export GCLOUD_RUN_canonicalHostSuffix="$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix"",
|
|
87
|
+
"export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOST\\",\\"ROOT_URL\\",\\"HOST_INTERNAL\\",\\"HOST_CANONICAL\\",\\"ROOT_URL_INTERNAL\\",\\"DEPLOY_CLOUD_RUN_PROJECT_ID\\",\\"DEPLOY_CLOUD_RUN_REGION\\",\\"GCLOUD_DEPLOY_credentialsKey\\",\\"GCLOUD_RUN_canonicalHostSuffix\\"]"",
|
|
88
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
89
|
+
"echo '{"id":"$(git describe --tags 2>/dev/null || git rev-parse HEAD)","time":"$CI_JOB_STARTED_AT"}' > www/__build_info.json",
|
|
70
90
|
"echo -e "\\e[0Ksection_start:$(date +%s):nodeinstall[collapsed=true]\\r\\e[0KEnsure node version"",
|
|
71
91
|
"if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi",
|
|
72
92
|
"if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi",
|
|
@@ -83,25 +103,9 @@ exports[`matches snapshot 1`] = `
|
|
|
83
103
|
],
|
|
84
104
|
"stage": "build",
|
|
85
105
|
"variables": {
|
|
86
|
-
"APP_DIR": "www",
|
|
87
|
-
"BUILD_INFO_BUILD_TIME": "01-01-2023 12:13:14",
|
|
88
|
-
"BUILD_INFO_CURRENT_VERSION": "3.2.1",
|
|
89
|
-
"BUILD_INFO_ID": "some-id",
|
|
90
|
-
"DEPLOY_CLOUD_RUN_PROJECT_ID": "asdf",
|
|
91
|
-
"DEPLOY_CLOUD_RUN_REGION": "asia-east1",
|
|
92
|
-
"ENV_SHORT": "dev",
|
|
93
|
-
"ENV_TYPE": "dev",
|
|
94
|
-
"GCLOUD_DEPLOY_credentialsKey": "$CL_dev_www_GCLOUD_DEPLOY_credentialsKey",
|
|
95
|
-
"GCLOUD_RUN_canonicalHostSuffix": "$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix",
|
|
96
|
-
"HOST": "pan-test-app-dev-www-unknown-host.example.com",
|
|
97
|
-
"HOST_CANONICAL": "pan-test-app-dev-www-unknown-host.example.com",
|
|
98
|
-
"HOST_INTERNAL": "pan-test-app-dev-www-unknown-host.example.com",
|
|
99
106
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
100
107
|
"KUBERNETES_MEMORY_LIMIT": "4Gi",
|
|
101
108
|
"KUBERNETES_MEMORY_REQUEST": "2Gi",
|
|
102
|
-
"ROOT_URL": "https://pan-test-app-dev-www-unknown-host.example.com",
|
|
103
|
-
"ROOT_URL_INTERNAL": "https://pan-test-app-dev-www-unknown-host.example.com",
|
|
104
|
-
"_ALL_ENV_VAR_KEYS": "["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOST","ROOT_URL","HOST_CANONICAL","ROOT_URL_INTERNAL","HOST_INTERNAL","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]",
|
|
105
109
|
},
|
|
106
110
|
},
|
|
107
111
|
"www 🔨 docker | dev ": {
|
|
@@ -118,6 +122,14 @@ exports[`matches snapshot 1`] = `
|
|
|
118
122
|
],
|
|
119
123
|
},
|
|
120
124
|
"script": [
|
|
125
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
126
|
+
"export APP_DIR="www"",
|
|
127
|
+
"export DOCKER_DIR="."",
|
|
128
|
+
"export DOCKER_REGISTRY="asia-east1-docker.pkg.dev"",
|
|
129
|
+
"export DOCKER_IMAGE="asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/dev/www"",
|
|
130
|
+
"export DOCKER_CACHE_IMAGE="asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www"",
|
|
131
|
+
"export DOCKER_IMAGE_TAG="$CI_COMMIT_SHA"",
|
|
132
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
121
133
|
"ensureNginxDockerfile",
|
|
122
134
|
"echo -e "\\e[0Ksection_start:$(date +%s):docker-login[collapsed=true]\\r\\e[0KDocker Login"",
|
|
123
135
|
"gcloud auth activate-service-account --key-file=<(echo "$CL_dev_www_GCLOUD_DEPLOY_credentialsKey")",
|
|
@@ -142,17 +154,9 @@ exports[`matches snapshot 1`] = `
|
|
|
142
154
|
],
|
|
143
155
|
"stage": "build",
|
|
144
156
|
"variables": {
|
|
145
|
-
"APP_DIR": "www",
|
|
146
|
-
"DOCKERFILE_ADDITIONS": undefined,
|
|
147
|
-
"DOCKERFILE_ADDITIONS_END": undefined,
|
|
148
157
|
"DOCKER_BUILDKIT": "1",
|
|
149
|
-
"DOCKER_CACHE_IMAGE": "asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www",
|
|
150
|
-
"DOCKER_DIR": ".",
|
|
151
158
|
"DOCKER_DRIVER": "overlay2",
|
|
152
159
|
"DOCKER_HOST": "tcp://0.0.0.0:2375",
|
|
153
|
-
"DOCKER_IMAGE": "asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/dev/www",
|
|
154
|
-
"DOCKER_IMAGE_TAG": "$CI_COMMIT_SHA",
|
|
155
|
-
"DOCKER_REGISTRY": "asia-east1-docker.pkg.dev",
|
|
156
160
|
"DOCKER_TLS_CERTDIR": "",
|
|
157
161
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
158
162
|
"KUBERNETES_MEMORY_LIMIT": "2Gi",
|
|
@@ -162,15 +166,15 @@ exports[`matches snapshot 1`] = `
|
|
|
162
166
|
"www 🚀 Deploy | dev ": {
|
|
163
167
|
"allow_failure": false,
|
|
164
168
|
"artifacts": {
|
|
165
|
-
"
|
|
166
|
-
"
|
|
167
|
-
|
|
169
|
+
"reports": {
|
|
170
|
+
"dotenv": "gitlab_environment.env",
|
|
171
|
+
},
|
|
168
172
|
},
|
|
169
173
|
"environment": {
|
|
170
174
|
"auto_stop_in": "4 weeks",
|
|
171
175
|
"name": "dev/www",
|
|
172
176
|
"on_stop": "www 🛑 Stop ⚠️ | dev ",
|
|
173
|
-
"url": "
|
|
177
|
+
"url": "$CL_GITLAB_ENVIRONMENT_URL",
|
|
174
178
|
},
|
|
175
179
|
"image": "path/to/docker/gcloud:the-version",
|
|
176
180
|
"interruptible": true,
|
|
@@ -213,13 +217,71 @@ exports[`matches snapshot 1`] = `
|
|
|
213
217
|
},
|
|
214
218
|
],
|
|
215
219
|
"script": [
|
|
220
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
221
|
+
"export ENV_SHORT="dev"",
|
|
222
|
+
"export APP_DIR="www"",
|
|
223
|
+
"export ENV_TYPE="dev"",
|
|
224
|
+
"export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"",
|
|
225
|
+
"export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"",
|
|
226
|
+
"export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\///'); [ -z "$tag" ] && echo "v0.0.0" || echo "$tag")"",
|
|
227
|
+
"export HOST="$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
228
|
+
"export ROOT_URL="https://$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
229
|
+
"export HOST_INTERNAL="$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
230
|
+
"export HOST_CANONICAL="$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
231
|
+
"export ROOT_URL_INTERNAL="https://$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
232
|
+
"export DEPLOY_CLOUD_RUN_PROJECT_ID="asdf"",
|
|
233
|
+
"export DEPLOY_CLOUD_RUN_REGION="asia-east1"",
|
|
234
|
+
"export GCLOUD_DEPLOY_credentialsKey="$CL_dev_www_GCLOUD_DEPLOY_credentialsKey"",
|
|
235
|
+
"export GCLOUD_RUN_canonicalHostSuffix="$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix"",
|
|
236
|
+
"export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOST\\",\\"ROOT_URL\\",\\"HOST_INTERNAL\\",\\"HOST_CANONICAL\\",\\"ROOT_URL_INTERNAL\\",\\"DEPLOY_CLOUD_RUN_PROJECT_ID\\",\\"DEPLOY_CLOUD_RUN_REGION\\",\\"GCLOUD_DEPLOY_credentialsKey\\",\\"GCLOUD_RUN_canonicalHostSuffix\\"]"",
|
|
237
|
+
"export DOCKER_REGISTRY="asia-east1-docker.pkg.dev"",
|
|
238
|
+
"export DOCKER_IMAGE="asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/dev/www"",
|
|
239
|
+
"export DOCKER_CACHE_IMAGE="asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www"",
|
|
240
|
+
"export DOCKER_IMAGE_TAG="$CI_COMMIT_SHA"",
|
|
241
|
+
"export CLOUDSDK_CORE_DISABLE_PROMPTS="1"",
|
|
242
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
216
243
|
"echo -e "\\e[0Ksection_start:$(date +%s):prepare[collapsed=true]\\r\\e[0KPrepare..."",
|
|
217
244
|
"gcloud auth activate-service-account --key-file=<(echo "$CL_dev_www_GCLOUD_DEPLOY_credentialsKey")",
|
|
218
245
|
"export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe asdf --format="value(projectNumber)")",
|
|
219
246
|
"echo "GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER"",
|
|
220
247
|
"echo -e "\\e[0Ksection_end:$(date +%s):prepare\\r\\e[0K"",
|
|
248
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):writeenvvars[collapsed=true]\\r\\e[0KWrite env vars to file"",
|
|
249
|
+
"cat > ____envvars.yaml <<EOF
|
|
250
|
+
ENV_SHORT: |-
|
|
251
|
+
dev
|
|
252
|
+
APP_DIR: |-
|
|
253
|
+
www
|
|
254
|
+
ENV_TYPE: |-
|
|
255
|
+
dev
|
|
256
|
+
BUILD_INFO_BUILD_ID: |-
|
|
257
|
+
$(printf %s "$(git describe --tags 2>/dev/null || git rev-parse HEAD)" | sed 's/^/ /')
|
|
258
|
+
BUILD_INFO_BUILD_TIME: |-
|
|
259
|
+
$(printf %s "$CI_JOB_STARTED_AT" | sed 's/^/ /')
|
|
260
|
+
BUILD_INFO_CURRENT_VERSION: |-
|
|
261
|
+
$(printf %s "$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\///'); [ -z "$tag" ] && echo "v0.0.0" || echo "$tag")" | sed 's/^/ /')
|
|
262
|
+
HOST: |-
|
|
263
|
+
$(printf %s "$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
264
|
+
ROOT_URL: |-
|
|
265
|
+
$(printf %s "https://$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
266
|
+
HOST_INTERNAL: |-
|
|
267
|
+
$(printf %s "$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
268
|
+
HOST_CANONICAL: |-
|
|
269
|
+
$(printf %s "$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
270
|
+
ROOT_URL_INTERNAL: |-
|
|
271
|
+
$(printf %s "https://$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
272
|
+
DEPLOY_CLOUD_RUN_PROJECT_ID: |-
|
|
273
|
+
asdf
|
|
274
|
+
DEPLOY_CLOUD_RUN_REGION: |-
|
|
275
|
+
asia-east1
|
|
276
|
+
GCLOUD_RUN_canonicalHostSuffix: |-
|
|
277
|
+
$(printf %s "$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | sed 's/^/ /')
|
|
278
|
+
_ALL_ENV_VAR_KEYS: |-
|
|
279
|
+
["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOST","ROOT_URL","HOST_INTERNAL","HOST_CANONICAL","ROOT_URL_INTERNAL","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]
|
|
280
|
+
|
|
281
|
+
EOF
|
|
282
|
+
",
|
|
283
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):writeenvvars\\r\\e[0K"",
|
|
221
284
|
"echo -e "\\e[0Ksection_start:$(date +%s):deploy[collapsed=true]\\r\\e[0KDeploy to cloud run"",
|
|
222
|
-
"echo "$ENV_VARS" > ____envvars.yaml",
|
|
223
285
|
"gcloud run deploy pan-test-app-dev-www --command="" --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=custom,cloud-run-service-name=pan-test-app-dev-www --env-vars-file=____envvars.yaml --min-instances=0 --max-instances=100 --cpu-throttling --allow-unauthenticated --ingress=all --cpu-boost",
|
|
224
286
|
"echo -e "\\e[0Ksection_end:$(date +%s):deploy\\r\\e[0K"",
|
|
225
287
|
"echo -e "\\e[0Ksection_start:$(date +%s):cleanup[collapsed=true]\\r\\e[0KCleanup"",
|
|
@@ -228,69 +290,27 @@ exports[`matches snapshot 1`] = `
|
|
|
228
290
|
"gcloud artifacts docker images list asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www --sort-by=~CREATE_TIME --format="value(version)" | tail -n +2 | while read -r version; do gcloud artifacts docker images delete asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www@$version --quiet --delete-tags; done",
|
|
229
291
|
"echo -e "\\e[0Ksection_end:$(date +%s):cleanup\\r\\e[0K"",
|
|
230
292
|
"echo Uploading SBOM to Dependency Track",
|
|
231
|
-
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "https
|
|
232
|
-
|
|
233
|
-
"services": [
|
|
234
|
-
{
|
|
235
|
-
"command": [
|
|
236
|
-
"--tls=false",
|
|
237
|
-
],
|
|
238
|
-
"name": "docker:24.0.6-dind",
|
|
239
|
-
},
|
|
293
|
+
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "https://$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" "__sbom.json" vex.json || true",
|
|
294
|
+
"echo "CL_GITLAB_ENVIRONMENT_URL=https://$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" >> gitlab_environment.env",
|
|
240
295
|
],
|
|
241
296
|
"stage": "deploy dev",
|
|
242
297
|
"variables": {
|
|
243
|
-
"APP_DIR": "www",
|
|
244
|
-
"BUILD_INFO_BUILD_TIME": "01-01-2023 12:13:14",
|
|
245
|
-
"BUILD_INFO_CURRENT_VERSION": "3.2.1",
|
|
246
|
-
"BUILD_INFO_ID": "some-id",
|
|
247
|
-
"CLOUDSDK_CORE_DISABLE_PROMPTS": "1",
|
|
248
|
-
"DEPLOY_CLOUD_RUN_PROJECT_ID": "asdf",
|
|
249
|
-
"DEPLOY_CLOUD_RUN_REGION": "asia-east1",
|
|
250
|
-
"DOCKER_BUILDKIT": "1",
|
|
251
|
-
"DOCKER_CACHE_IMAGE": "asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www",
|
|
252
|
-
"DOCKER_DRIVER": "overlay2",
|
|
253
|
-
"DOCKER_HOST": "tcp://0.0.0.0:2375",
|
|
254
|
-
"DOCKER_IMAGE": "asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/dev/www",
|
|
255
|
-
"DOCKER_IMAGE_TAG": "$CI_COMMIT_SHA",
|
|
256
|
-
"DOCKER_REGISTRY": "asia-east1-docker.pkg.dev",
|
|
257
|
-
"DOCKER_TLS_CERTDIR": "",
|
|
258
|
-
"ENV_SHORT": "dev",
|
|
259
|
-
"ENV_TYPE": "dev",
|
|
260
|
-
"ENV_VARS": "ENV_SHORT: 'dev'
|
|
261
|
-
APP_DIR: 'www'
|
|
262
|
-
ENV_TYPE: 'dev'
|
|
263
|
-
BUILD_INFO_ID: 'some-id'
|
|
264
|
-
BUILD_INFO_BUILD_TIME: '01-01-2023 12:13:14'
|
|
265
|
-
BUILD_INFO_CURRENT_VERSION: '3.2.1'
|
|
266
|
-
HOST: 'pan-test-app-dev-www-unknown-host.example.com'
|
|
267
|
-
ROOT_URL: 'https://pan-test-app-dev-www-unknown-host.example.com'
|
|
268
|
-
HOST_CANONICAL: 'pan-test-app-dev-www-unknown-host.example.com'
|
|
269
|
-
ROOT_URL_INTERNAL: 'https://pan-test-app-dev-www-unknown-host.example.com'
|
|
270
|
-
HOST_INTERNAL: 'pan-test-app-dev-www-unknown-host.example.com'
|
|
271
|
-
DEPLOY_CLOUD_RUN_PROJECT_ID: 'asdf'
|
|
272
|
-
DEPLOY_CLOUD_RUN_REGION: 'asia-east1'
|
|
273
|
-
GCLOUD_RUN_canonicalHostSuffix: '$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix'
|
|
274
|
-
_ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOST","ROOT_URL","HOST_CANONICAL","ROOT_URL_INTERNAL","HOST_INTERNAL","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]'
|
|
275
|
-
",
|
|
276
|
-
"GCLOUD_DEPLOY_credentialsKey": "$CL_dev_www_GCLOUD_DEPLOY_credentialsKey",
|
|
277
|
-
"GCLOUD_RUN_canonicalHostSuffix": "$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix",
|
|
278
|
-
"HOST": "pan-test-app-dev-www-unknown-host.example.com",
|
|
279
|
-
"HOST_CANONICAL": "pan-test-app-dev-www-unknown-host.example.com",
|
|
280
|
-
"HOST_INTERNAL": "pan-test-app-dev-www-unknown-host.example.com",
|
|
281
298
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
282
299
|
"KUBERNETES_MEMORY_LIMIT": "400Mi",
|
|
283
300
|
"KUBERNETES_MEMORY_REQUEST": "200Mi",
|
|
284
|
-
"ROOT_URL": "https://pan-test-app-dev-www-unknown-host.example.com",
|
|
285
|
-
"ROOT_URL_INTERNAL": "https://pan-test-app-dev-www-unknown-host.example.com",
|
|
286
|
-
"_ALL_ENV_VAR_KEYS": "["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOST","ROOT_URL","HOST_CANONICAL","ROOT_URL_INTERNAL","HOST_INTERNAL","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]",
|
|
287
301
|
},
|
|
288
302
|
},
|
|
289
303
|
"www 🛑 Stop ⚠️ | dev ": {
|
|
304
|
+
"allow_failure": true,
|
|
305
|
+
"artifacts": {
|
|
306
|
+
"reports": {
|
|
307
|
+
"dotenv": "gitlab_environment.env",
|
|
308
|
+
},
|
|
309
|
+
},
|
|
290
310
|
"environment": {
|
|
291
311
|
"action": "stop",
|
|
292
312
|
"name": "dev/www",
|
|
293
|
-
"url": "
|
|
313
|
+
"url": "$CL_GITLAB_ENVIRONMENT_URL",
|
|
294
314
|
},
|
|
295
315
|
"image": "path/to/docker/gcloud:the-version",
|
|
296
316
|
"interruptible": true,
|
|
@@ -304,28 +324,29 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
304
324
|
},
|
|
305
325
|
"rules": [
|
|
306
326
|
{
|
|
307
|
-
"allow_failure": true,
|
|
308
327
|
"if": "$CI_COMMIT_BRANCH =~ /^[0-9]+\\.([0-9]+|x)\\.x$/",
|
|
309
328
|
"when": "on_success",
|
|
310
329
|
},
|
|
311
330
|
{
|
|
312
|
-
"allow_failure": true,
|
|
313
331
|
"when": "manual",
|
|
314
332
|
},
|
|
315
333
|
],
|
|
316
334
|
"script": [
|
|
335
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
336
|
+
"export CLOUDSDK_CORE_DISABLE_PROMPTS="1"",
|
|
337
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
317
338
|
"set +e",
|
|
318
339
|
"gcloud auth activate-service-account --key-file=<(echo "$CL_dev_www_GCLOUD_DEPLOY_credentialsKey")",
|
|
319
340
|
"gcloud run services delete pan-test-app-dev-www --project=asdf --region=asia-east1",
|
|
320
341
|
"gcloud artifacts docker images delete asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/dev/www --quiet --delete-tags",
|
|
321
342
|
"gcloud artifacts docker images list asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www --sort-by=~CREATE_TIME --format="value(version)" | tail -n +2 | while read -r version; do gcloud artifacts docker images delete asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www@$version --quiet --delete-tags; done",
|
|
322
343
|
"echo Disabling component in Dependency Track",
|
|
323
|
-
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/www" "https
|
|
344
|
+
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/www" "https://$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" || true",
|
|
324
345
|
"set -e",
|
|
346
|
+
"echo "CL_GITLAB_ENVIRONMENT_URL=https://$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" >> gitlab_environment.env",
|
|
325
347
|
],
|
|
326
348
|
"stage": "stop dev",
|
|
327
349
|
"variables": {
|
|
328
|
-
"CLOUDSDK_CORE_DISABLE_PROMPTS": "1",
|
|
329
350
|
"GIT_STRATEGY": "none",
|
|
330
351
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
331
352
|
"KUBERNETES_MEMORY_LIMIT": "400Mi",
|
|
@@ -353,6 +374,9 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
353
374
|
],
|
|
354
375
|
},
|
|
355
376
|
"script": [
|
|
377
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
378
|
+
"export APP_PATH="www"",
|
|
379
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
356
380
|
"audit",
|
|
357
381
|
],
|
|
358
382
|
"services": [
|
|
@@ -365,7 +389,6 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
365
389
|
],
|
|
366
390
|
"stage": "test",
|
|
367
391
|
"variables": {
|
|
368
|
-
"APP_PATH": "www",
|
|
369
392
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
370
393
|
"KUBERNETES_MEMORY_LIMIT": "4Gi",
|
|
371
394
|
"KUBERNETES_MEMORY_REQUEST": "2Gi",
|
|
@@ -392,6 +415,9 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
392
415
|
],
|
|
393
416
|
},
|
|
394
417
|
"script": [
|
|
418
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
419
|
+
"export APP_PATH="www"",
|
|
420
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
395
421
|
"test",
|
|
396
422
|
],
|
|
397
423
|
"services": [
|
|
@@ -404,7 +430,6 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
404
430
|
],
|
|
405
431
|
"stage": "test",
|
|
406
432
|
"variables": {
|
|
407
|
-
"APP_PATH": "www",
|
|
408
433
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
409
434
|
"KUBERNETES_MEMORY_LIMIT": "4Gi",
|
|
410
435
|
"KUBERNETES_MEMORY_REQUEST": "2Gi",
|
|
@@ -428,6 +453,8 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
428
453
|
],
|
|
429
454
|
},
|
|
430
455
|
"script": [
|
|
456
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
457
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
431
458
|
"trivy fs --quiet --format cyclonedx --output "__sbom.json" www",
|
|
432
459
|
],
|
|
433
460
|
"stage": "build",
|
|
@@ -480,7 +507,7 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
480
507
|
],
|
|
481
508
|
"variables": {
|
|
482
509
|
"FF_USE_FASTZIP": "true",
|
|
483
|
-
"GIT_DEPTH": 1,
|
|
510
|
+
"GIT_DEPTH": "1",
|
|
484
511
|
},
|
|
485
512
|
"workflow": {
|
|
486
513
|
"rules": [
|
|
@@ -530,6 +557,9 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
530
557
|
],
|
|
531
558
|
},
|
|
532
559
|
"script": [
|
|
560
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
561
|
+
"export APP_PATH="www"",
|
|
562
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
533
563
|
"lint",
|
|
534
564
|
],
|
|
535
565
|
"services": [
|
|
@@ -542,7 +572,6 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
542
572
|
],
|
|
543
573
|
"stage": "test",
|
|
544
574
|
"variables": {
|
|
545
|
-
"APP_PATH": "www",
|
|
546
575
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
547
576
|
"KUBERNETES_MEMORY_LIMIT": "4Gi",
|
|
548
577
|
"KUBERNETES_MEMORY_REQUEST": "2Gi",
|
|
@@ -571,7 +600,25 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
571
600
|
],
|
|
572
601
|
},
|
|
573
602
|
"script": [
|
|
574
|
-
"echo
|
|
603
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
604
|
+
"export ENV_SHORT="review"",
|
|
605
|
+
"export APP_DIR="www"",
|
|
606
|
+
"export ENV_TYPE="review"",
|
|
607
|
+
"export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"",
|
|
608
|
+
"export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"",
|
|
609
|
+
"export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\///'); [ -z "$tag" ] && echo "v0.0.0" || echo "$tag")"",
|
|
610
|
+
"export HOST="$(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-www-$CL_review_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
611
|
+
"export ROOT_URL="https://$(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-www-$CL_review_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
612
|
+
"export HOST_INTERNAL="$(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-www-$CL_review_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
613
|
+
"export HOST_CANONICAL="$(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-www-$CL_review_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
614
|
+
"export ROOT_URL_INTERNAL="https://$(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-www-$CL_review_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
615
|
+
"export DEPLOY_CLOUD_RUN_PROJECT_ID="asdf"",
|
|
616
|
+
"export DEPLOY_CLOUD_RUN_REGION="asia-east1"",
|
|
617
|
+
"export GCLOUD_DEPLOY_credentialsKey="$CL_review_www_GCLOUD_DEPLOY_credentialsKey"",
|
|
618
|
+
"export GCLOUD_RUN_canonicalHostSuffix="$CL_review_www_GCLOUD_RUN_canonicalHostSuffix"",
|
|
619
|
+
"export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOST\\",\\"ROOT_URL\\",\\"HOST_INTERNAL\\",\\"HOST_CANONICAL\\",\\"ROOT_URL_INTERNAL\\",\\"DEPLOY_CLOUD_RUN_PROJECT_ID\\",\\"DEPLOY_CLOUD_RUN_REGION\\",\\"GCLOUD_DEPLOY_credentialsKey\\",\\"GCLOUD_RUN_canonicalHostSuffix\\"]"",
|
|
620
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
621
|
+
"echo '{"id":"$(git describe --tags 2>/dev/null || git rev-parse HEAD)","time":"$CI_JOB_STARTED_AT"}' > www/__build_info.json",
|
|
575
622
|
"echo -e "\\e[0Ksection_start:$(date +%s):nodeinstall[collapsed=true]\\r\\e[0KEnsure node version"",
|
|
576
623
|
"if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi",
|
|
577
624
|
"if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi",
|
|
@@ -588,25 +635,9 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
588
635
|
],
|
|
589
636
|
"stage": "build",
|
|
590
637
|
"variables": {
|
|
591
|
-
"APP_DIR": "www",
|
|
592
|
-
"BUILD_INFO_BUILD_TIME": "01-01-2023 12:13:14",
|
|
593
|
-
"BUILD_INFO_CURRENT_VERSION": "3.2.1",
|
|
594
|
-
"BUILD_INFO_ID": "some-id",
|
|
595
|
-
"DEPLOY_CLOUD_RUN_PROJECT_ID": "asdf",
|
|
596
|
-
"DEPLOY_CLOUD_RUN_REGION": "asia-east1",
|
|
597
|
-
"ENV_SHORT": "review",
|
|
598
|
-
"ENV_TYPE": "review",
|
|
599
|
-
"GCLOUD_DEPLOY_credentialsKey": "$CL_review_www_GCLOUD_DEPLOY_credentialsKey",
|
|
600
|
-
"GCLOUD_RUN_canonicalHostSuffix": "$CL_review_www_GCLOUD_RUN_canonicalHostSuffix",
|
|
601
|
-
"HOST": "pan-test-app-review-mr1234-www-unknown-host.example.com",
|
|
602
|
-
"HOST_CANONICAL": "pan-test-app-review-mr1234-www-unknown-host.example.com",
|
|
603
|
-
"HOST_INTERNAL": "pan-test-app-review-mr1234-www-unknown-host.example.com",
|
|
604
638
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
605
639
|
"KUBERNETES_MEMORY_LIMIT": "4Gi",
|
|
606
640
|
"KUBERNETES_MEMORY_REQUEST": "2Gi",
|
|
607
|
-
"ROOT_URL": "https://pan-test-app-review-mr1234-www-unknown-host.example.com",
|
|
608
|
-
"ROOT_URL_INTERNAL": "https://pan-test-app-review-mr1234-www-unknown-host.example.com",
|
|
609
|
-
"_ALL_ENV_VAR_KEYS": "["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOST","ROOT_URL","HOST_CANONICAL","ROOT_URL_INTERNAL","HOST_INTERNAL","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]",
|
|
610
641
|
},
|
|
611
642
|
},
|
|
612
643
|
"www 🔨 docker | review ": {
|
|
@@ -623,6 +654,14 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
623
654
|
],
|
|
624
655
|
},
|
|
625
656
|
"script": [
|
|
657
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
658
|
+
"export APP_DIR="www"",
|
|
659
|
+
"export DOCKER_DIR="."",
|
|
660
|
+
"export DOCKER_REGISTRY="asia-east1-docker.pkg.dev"",
|
|
661
|
+
"export DOCKER_IMAGE="asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/review/www/$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })"",
|
|
662
|
+
"export DOCKER_CACHE_IMAGE="asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www"",
|
|
663
|
+
"export DOCKER_IMAGE_TAG="$CI_COMMIT_SHA"",
|
|
664
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
626
665
|
"ensureNginxDockerfile",
|
|
627
666
|
"echo -e "\\e[0Ksection_start:$(date +%s):docker-login[collapsed=true]\\r\\e[0KDocker Login"",
|
|
628
667
|
"gcloud auth activate-service-account --key-file=<(echo "$CL_review_www_GCLOUD_DEPLOY_credentialsKey")",
|
|
@@ -647,17 +686,9 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
647
686
|
],
|
|
648
687
|
"stage": "build",
|
|
649
688
|
"variables": {
|
|
650
|
-
"APP_DIR": "www",
|
|
651
|
-
"DOCKERFILE_ADDITIONS": undefined,
|
|
652
|
-
"DOCKERFILE_ADDITIONS_END": undefined,
|
|
653
689
|
"DOCKER_BUILDKIT": "1",
|
|
654
|
-
"DOCKER_CACHE_IMAGE": "asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www",
|
|
655
|
-
"DOCKER_DIR": ".",
|
|
656
690
|
"DOCKER_DRIVER": "overlay2",
|
|
657
691
|
"DOCKER_HOST": "tcp://0.0.0.0:2375",
|
|
658
|
-
"DOCKER_IMAGE": "asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/review/www/mr1234",
|
|
659
|
-
"DOCKER_IMAGE_TAG": "$CI_COMMIT_SHA",
|
|
660
|
-
"DOCKER_REGISTRY": "asia-east1-docker.pkg.dev",
|
|
661
692
|
"DOCKER_TLS_CERTDIR": "",
|
|
662
693
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
663
694
|
"KUBERNETES_MEMORY_LIMIT": "2Gi",
|
|
@@ -667,15 +698,15 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
667
698
|
"www 🚀 Deploy | review ": {
|
|
668
699
|
"allow_failure": false,
|
|
669
700
|
"artifacts": {
|
|
670
|
-
"
|
|
671
|
-
"
|
|
672
|
-
|
|
701
|
+
"reports": {
|
|
702
|
+
"dotenv": "gitlab_environment.env",
|
|
703
|
+
},
|
|
673
704
|
},
|
|
674
705
|
"environment": {
|
|
675
706
|
"auto_stop_in": "1 week",
|
|
676
|
-
"name": "review/
|
|
707
|
+
"name": "review/$CI_COMMIT_REF_NAME/www",
|
|
677
708
|
"on_stop": "www 🛑 Stop ⚠️ | review ",
|
|
678
|
-
"url": "
|
|
709
|
+
"url": "$CL_GITLAB_ENVIRONMENT_URL",
|
|
679
710
|
},
|
|
680
711
|
"image": "path/to/docker/gcloud:the-version",
|
|
681
712
|
"interruptible": true,
|
|
@@ -718,87 +749,103 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
718
749
|
},
|
|
719
750
|
],
|
|
720
751
|
"script": [
|
|
752
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
753
|
+
"export ENV_SHORT="review"",
|
|
754
|
+
"export APP_DIR="www"",
|
|
755
|
+
"export ENV_TYPE="review"",
|
|
756
|
+
"export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"",
|
|
757
|
+
"export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"",
|
|
758
|
+
"export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\///'); [ -z "$tag" ] && echo "v0.0.0" || echo "$tag")"",
|
|
759
|
+
"export HOST="$(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-www-$CL_review_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
760
|
+
"export ROOT_URL="https://$(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-www-$CL_review_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
761
|
+
"export HOST_INTERNAL="$(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-www-$CL_review_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
762
|
+
"export HOST_CANONICAL="$(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-www-$CL_review_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
763
|
+
"export ROOT_URL_INTERNAL="https://$(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-www-$CL_review_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
764
|
+
"export DEPLOY_CLOUD_RUN_PROJECT_ID="asdf"",
|
|
765
|
+
"export DEPLOY_CLOUD_RUN_REGION="asia-east1"",
|
|
766
|
+
"export GCLOUD_DEPLOY_credentialsKey="$CL_review_www_GCLOUD_DEPLOY_credentialsKey"",
|
|
767
|
+
"export GCLOUD_RUN_canonicalHostSuffix="$CL_review_www_GCLOUD_RUN_canonicalHostSuffix"",
|
|
768
|
+
"export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOST\\",\\"ROOT_URL\\",\\"HOST_INTERNAL\\",\\"HOST_CANONICAL\\",\\"ROOT_URL_INTERNAL\\",\\"DEPLOY_CLOUD_RUN_PROJECT_ID\\",\\"DEPLOY_CLOUD_RUN_REGION\\",\\"GCLOUD_DEPLOY_credentialsKey\\",\\"GCLOUD_RUN_canonicalHostSuffix\\"]"",
|
|
769
|
+
"export DOCKER_REGISTRY="asia-east1-docker.pkg.dev"",
|
|
770
|
+
"export DOCKER_IMAGE="asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/review/www/$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })"",
|
|
771
|
+
"export DOCKER_CACHE_IMAGE="asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www"",
|
|
772
|
+
"export DOCKER_IMAGE_TAG="$CI_COMMIT_SHA"",
|
|
773
|
+
"export CLOUDSDK_CORE_DISABLE_PROMPTS="1"",
|
|
774
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
721
775
|
"echo -e "\\e[0Ksection_start:$(date +%s):prepare[collapsed=true]\\r\\e[0KPrepare..."",
|
|
722
776
|
"gcloud auth activate-service-account --key-file=<(echo "$CL_review_www_GCLOUD_DEPLOY_credentialsKey")",
|
|
723
777
|
"export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe asdf --format="value(projectNumber)")",
|
|
724
778
|
"echo "GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER"",
|
|
725
779
|
"echo -e "\\e[0Ksection_end:$(date +%s):prepare\\r\\e[0K"",
|
|
780
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):writeenvvars[collapsed=true]\\r\\e[0KWrite env vars to file"",
|
|
781
|
+
"cat > ____envvars.yaml <<EOF
|
|
782
|
+
ENV_SHORT: |-
|
|
783
|
+
review
|
|
784
|
+
APP_DIR: |-
|
|
785
|
+
www
|
|
786
|
+
ENV_TYPE: |-
|
|
787
|
+
review
|
|
788
|
+
BUILD_INFO_BUILD_ID: |-
|
|
789
|
+
$(printf %s "$(git describe --tags 2>/dev/null || git rev-parse HEAD)" | sed 's/^/ /')
|
|
790
|
+
BUILD_INFO_BUILD_TIME: |-
|
|
791
|
+
$(printf %s "$CI_JOB_STARTED_AT" | sed 's/^/ /')
|
|
792
|
+
BUILD_INFO_CURRENT_VERSION: |-
|
|
793
|
+
$(printf %s "$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\///'); [ -z "$tag" ] && echo "v0.0.0" || echo "$tag")" | sed 's/^/ /')
|
|
794
|
+
HOST: |-
|
|
795
|
+
$(printf %s "$(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-www-$CL_review_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
796
|
+
ROOT_URL: |-
|
|
797
|
+
$(printf %s "https://$(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-www-$CL_review_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
798
|
+
HOST_INTERNAL: |-
|
|
799
|
+
$(printf %s "$(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-www-$CL_review_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
800
|
+
HOST_CANONICAL: |-
|
|
801
|
+
$(printf %s "$(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-www-$CL_review_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
802
|
+
ROOT_URL_INTERNAL: |-
|
|
803
|
+
$(printf %s "https://$(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-www-$CL_review_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
804
|
+
DEPLOY_CLOUD_RUN_PROJECT_ID: |-
|
|
805
|
+
asdf
|
|
806
|
+
DEPLOY_CLOUD_RUN_REGION: |-
|
|
807
|
+
asia-east1
|
|
808
|
+
GCLOUD_RUN_canonicalHostSuffix: |-
|
|
809
|
+
$(printf %s "$CL_review_www_GCLOUD_RUN_canonicalHostSuffix" | sed 's/^/ /')
|
|
810
|
+
_ALL_ENV_VAR_KEYS: |-
|
|
811
|
+
["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOST","ROOT_URL","HOST_INTERNAL","HOST_CANONICAL","ROOT_URL_INTERNAL","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]
|
|
812
|
+
|
|
813
|
+
EOF
|
|
814
|
+
",
|
|
815
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):writeenvvars\\r\\e[0K"",
|
|
726
816
|
"echo -e "\\e[0Ksection_start:$(date +%s):deploy[collapsed=true]\\r\\e[0KDeploy to cloud run"",
|
|
727
|
-
"echo "$
|
|
728
|
-
"gcloud run deploy pan-test-app-review-mr1234-www --command="" --image=asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/review/www/mr1234:$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=custom,cloud-run-service-name=pan-test-app-review-mr1234-www --env-vars-file=____envvars.yaml --min-instances=0 --max-instances=100 --cpu-throttling --allow-unauthenticated --ingress=all --cpu-boost",
|
|
817
|
+
"gcloud run deploy $(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-www" | awk '{print tolower($0)}') --command="" --image=asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/review/www/$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }):$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=custom,cloud-run-service-name=$(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-www" | awk '{print tolower($0)}') --env-vars-file=____envvars.yaml --min-instances=0 --max-instances=100 --cpu-throttling --allow-unauthenticated --ingress=all --cpu-boost",
|
|
729
818
|
"echo -e "\\e[0Ksection_end:$(date +%s):deploy\\r\\e[0K"",
|
|
730
819
|
"echo -e "\\e[0Ksection_start:$(date +%s):cleanup[collapsed=true]\\r\\e[0KCleanup"",
|
|
731
|
-
"gcloud run revisions list --project=asdf --region=asia-east1 --service
|
|
732
|
-
"gcloud artifacts docker images list asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/review/www
|
|
820
|
+
"gcloud run revisions list --project=asdf --region=asia-east1 --service=$(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-www" | awk '{print tolower($0)}') --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",
|
|
821
|
+
"gcloud artifacts docker images list asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/review/www/$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }) --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/www/$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })@$version --quiet --delete-tags; done",
|
|
733
822
|
"gcloud artifacts docker images list asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www --sort-by=~CREATE_TIME --format="value(version)" | tail -n +2 | while read -r version; do gcloud artifacts docker images delete asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www@$version --quiet --delete-tags; done",
|
|
734
823
|
"set +e",
|
|
735
824
|
"gcloud artifacts docker images delete asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/review/www --quiet --delete-tags",
|
|
736
825
|
"set -e",
|
|
737
826
|
"echo -e "\\e[0Ksection_end:$(date +%s):cleanup\\r\\e[0K"",
|
|
738
827
|
"echo Uploading SBOM to Dependency Track",
|
|
739
|
-
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "https
|
|
740
|
-
|
|
741
|
-
"services": [
|
|
742
|
-
{
|
|
743
|
-
"command": [
|
|
744
|
-
"--tls=false",
|
|
745
|
-
],
|
|
746
|
-
"name": "docker:24.0.6-dind",
|
|
747
|
-
},
|
|
828
|
+
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "https://$(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-www-$CL_review_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" "__sbom.json" vex.json || true",
|
|
829
|
+
"echo "CL_GITLAB_ENVIRONMENT_URL=https://$(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-www-$CL_review_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" >> gitlab_environment.env",
|
|
748
830
|
],
|
|
749
831
|
"stage": "deploy review",
|
|
750
832
|
"variables": {
|
|
751
|
-
"APP_DIR": "www",
|
|
752
|
-
"BUILD_INFO_BUILD_TIME": "01-01-2023 12:13:14",
|
|
753
|
-
"BUILD_INFO_CURRENT_VERSION": "3.2.1",
|
|
754
|
-
"BUILD_INFO_ID": "some-id",
|
|
755
|
-
"CLOUDSDK_CORE_DISABLE_PROMPTS": "1",
|
|
756
|
-
"DEPLOY_CLOUD_RUN_PROJECT_ID": "asdf",
|
|
757
|
-
"DEPLOY_CLOUD_RUN_REGION": "asia-east1",
|
|
758
|
-
"DOCKER_BUILDKIT": "1",
|
|
759
|
-
"DOCKER_CACHE_IMAGE": "asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www",
|
|
760
|
-
"DOCKER_DRIVER": "overlay2",
|
|
761
|
-
"DOCKER_HOST": "tcp://0.0.0.0:2375",
|
|
762
|
-
"DOCKER_IMAGE": "asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/review/www/mr1234",
|
|
763
|
-
"DOCKER_IMAGE_TAG": "$CI_COMMIT_SHA",
|
|
764
|
-
"DOCKER_REGISTRY": "asia-east1-docker.pkg.dev",
|
|
765
|
-
"DOCKER_TLS_CERTDIR": "",
|
|
766
|
-
"ENV_SHORT": "review",
|
|
767
|
-
"ENV_TYPE": "review",
|
|
768
|
-
"ENV_VARS": "ENV_SHORT: 'review'
|
|
769
|
-
APP_DIR: 'www'
|
|
770
|
-
ENV_TYPE: 'review'
|
|
771
|
-
BUILD_INFO_ID: 'some-id'
|
|
772
|
-
BUILD_INFO_BUILD_TIME: '01-01-2023 12:13:14'
|
|
773
|
-
BUILD_INFO_CURRENT_VERSION: '3.2.1'
|
|
774
|
-
HOST: 'pan-test-app-review-mr1234-www-unknown-host.example.com'
|
|
775
|
-
ROOT_URL: 'https://pan-test-app-review-mr1234-www-unknown-host.example.com'
|
|
776
|
-
HOST_CANONICAL: 'pan-test-app-review-mr1234-www-unknown-host.example.com'
|
|
777
|
-
ROOT_URL_INTERNAL: 'https://pan-test-app-review-mr1234-www-unknown-host.example.com'
|
|
778
|
-
HOST_INTERNAL: 'pan-test-app-review-mr1234-www-unknown-host.example.com'
|
|
779
|
-
DEPLOY_CLOUD_RUN_PROJECT_ID: 'asdf'
|
|
780
|
-
DEPLOY_CLOUD_RUN_REGION: 'asia-east1'
|
|
781
|
-
GCLOUD_RUN_canonicalHostSuffix: '$CL_review_www_GCLOUD_RUN_canonicalHostSuffix'
|
|
782
|
-
_ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOST","ROOT_URL","HOST_CANONICAL","ROOT_URL_INTERNAL","HOST_INTERNAL","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]'
|
|
783
|
-
",
|
|
784
|
-
"GCLOUD_DEPLOY_credentialsKey": "$CL_review_www_GCLOUD_DEPLOY_credentialsKey",
|
|
785
|
-
"GCLOUD_RUN_canonicalHostSuffix": "$CL_review_www_GCLOUD_RUN_canonicalHostSuffix",
|
|
786
|
-
"HOST": "pan-test-app-review-mr1234-www-unknown-host.example.com",
|
|
787
|
-
"HOST_CANONICAL": "pan-test-app-review-mr1234-www-unknown-host.example.com",
|
|
788
|
-
"HOST_INTERNAL": "pan-test-app-review-mr1234-www-unknown-host.example.com",
|
|
789
833
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
790
834
|
"KUBERNETES_MEMORY_LIMIT": "400Mi",
|
|
791
835
|
"KUBERNETES_MEMORY_REQUEST": "200Mi",
|
|
792
|
-
"ROOT_URL": "https://pan-test-app-review-mr1234-www-unknown-host.example.com",
|
|
793
|
-
"ROOT_URL_INTERNAL": "https://pan-test-app-review-mr1234-www-unknown-host.example.com",
|
|
794
|
-
"_ALL_ENV_VAR_KEYS": "["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOST","ROOT_URL","HOST_CANONICAL","ROOT_URL_INTERNAL","HOST_INTERNAL","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]",
|
|
795
836
|
},
|
|
796
837
|
},
|
|
797
838
|
"www 🛑 Stop ⚠️ | review ": {
|
|
839
|
+
"allow_failure": true,
|
|
840
|
+
"artifacts": {
|
|
841
|
+
"reports": {
|
|
842
|
+
"dotenv": "gitlab_environment.env",
|
|
843
|
+
},
|
|
844
|
+
},
|
|
798
845
|
"environment": {
|
|
799
846
|
"action": "stop",
|
|
800
|
-
"name": "review/
|
|
801
|
-
"url": "
|
|
847
|
+
"name": "review/$CI_COMMIT_REF_NAME/www",
|
|
848
|
+
"url": "$CL_GITLAB_ENVIRONMENT_URL",
|
|
802
849
|
},
|
|
803
850
|
"image": "path/to/docker/gcloud:the-version",
|
|
804
851
|
"interruptible": true,
|
|
@@ -812,31 +859,32 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
812
859
|
},
|
|
813
860
|
"rules": [
|
|
814
861
|
{
|
|
815
|
-
"allow_failure": true,
|
|
816
862
|
"if": "$CI_COMMIT_BRANCH =~ /^[0-9]+\\.([0-9]+|x)\\.x$/",
|
|
817
863
|
"when": "on_success",
|
|
818
864
|
},
|
|
819
865
|
{
|
|
820
|
-
"allow_failure": true,
|
|
821
866
|
"when": "manual",
|
|
822
867
|
},
|
|
823
868
|
],
|
|
824
869
|
"script": [
|
|
870
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
871
|
+
"export CLOUDSDK_CORE_DISABLE_PROMPTS="1"",
|
|
872
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
825
873
|
"set +e",
|
|
826
874
|
"gcloud auth activate-service-account --key-file=<(echo "$CL_review_www_GCLOUD_DEPLOY_credentialsKey")",
|
|
827
|
-
"gcloud run services delete pan-test-app-review-
|
|
828
|
-
"gcloud artifacts docker images delete asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/review/www
|
|
875
|
+
"gcloud run services delete $(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-www" | awk '{print tolower($0)}') --project=asdf --region=asia-east1",
|
|
876
|
+
"gcloud artifacts docker images delete asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/review/www/$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; }) --quiet --delete-tags",
|
|
829
877
|
"gcloud artifacts docker images list asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www --sort-by=~CREATE_TIME --format="value(version)" | tail -n +2 | while read -r version; do gcloud artifacts docker images delete asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www@$version --quiet --delete-tags; done",
|
|
830
878
|
"set +e",
|
|
831
879
|
"gcloud artifacts docker images delete asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/review/www --quiet --delete-tags",
|
|
832
880
|
"set -e",
|
|
833
881
|
"echo Disabling component in Dependency Track",
|
|
834
|
-
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/www" "https
|
|
882
|
+
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/www" "https://$(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-www-$CL_review_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" || true",
|
|
835
883
|
"set -e",
|
|
884
|
+
"echo "CL_GITLAB_ENVIRONMENT_URL=https://$(printf %s "pan-test-app-review-$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })-www-$CL_review_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" >> gitlab_environment.env",
|
|
836
885
|
],
|
|
837
886
|
"stage": "stop review",
|
|
838
887
|
"variables": {
|
|
839
|
-
"CLOUDSDK_CORE_DISABLE_PROMPTS": "1",
|
|
840
888
|
"GIT_STRATEGY": "none",
|
|
841
889
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
842
890
|
"KUBERNETES_MEMORY_LIMIT": "400Mi",
|
|
@@ -864,6 +912,9 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
864
912
|
],
|
|
865
913
|
},
|
|
866
914
|
"script": [
|
|
915
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
916
|
+
"export APP_PATH="www"",
|
|
917
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
867
918
|
"audit",
|
|
868
919
|
],
|
|
869
920
|
"services": [
|
|
@@ -876,7 +927,6 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
876
927
|
],
|
|
877
928
|
"stage": "test",
|
|
878
929
|
"variables": {
|
|
879
|
-
"APP_PATH": "www",
|
|
880
930
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
881
931
|
"KUBERNETES_MEMORY_LIMIT": "4Gi",
|
|
882
932
|
"KUBERNETES_MEMORY_REQUEST": "2Gi",
|
|
@@ -903,6 +953,9 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
903
953
|
],
|
|
904
954
|
},
|
|
905
955
|
"script": [
|
|
956
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
957
|
+
"export APP_PATH="www"",
|
|
958
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
906
959
|
"test",
|
|
907
960
|
],
|
|
908
961
|
"services": [
|
|
@@ -915,7 +968,6 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
915
968
|
],
|
|
916
969
|
"stage": "test",
|
|
917
970
|
"variables": {
|
|
918
|
-
"APP_PATH": "www",
|
|
919
971
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
920
972
|
"KUBERNETES_MEMORY_LIMIT": "4Gi",
|
|
921
973
|
"KUBERNETES_MEMORY_REQUEST": "2Gi",
|
|
@@ -939,6 +991,8 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
939
991
|
],
|
|
940
992
|
},
|
|
941
993
|
"script": [
|
|
994
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
995
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
942
996
|
"trivy fs --quiet --format cyclonedx --output "__sbom.json" www",
|
|
943
997
|
],
|
|
944
998
|
"stage": "build",
|
|
@@ -991,7 +1045,7 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
991
1045
|
],
|
|
992
1046
|
"variables": {
|
|
993
1047
|
"FF_USE_FASTZIP": "true",
|
|
994
|
-
"GIT_DEPTH": 1,
|
|
1048
|
+
"GIT_DEPTH": "1",
|
|
995
1049
|
},
|
|
996
1050
|
"workflow": {
|
|
997
1051
|
"rules": [
|
|
@@ -1044,7 +1098,25 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
1044
1098
|
],
|
|
1045
1099
|
},
|
|
1046
1100
|
"script": [
|
|
1047
|
-
"echo
|
|
1101
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
1102
|
+
"export ENV_SHORT="prod"",
|
|
1103
|
+
"export APP_DIR="www"",
|
|
1104
|
+
"export ENV_TYPE="prod"",
|
|
1105
|
+
"export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"",
|
|
1106
|
+
"export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"",
|
|
1107
|
+
"export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\///'); [ -z "$tag" ] && echo "v0.0.0" || echo "$tag")"",
|
|
1108
|
+
"export HOST="$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
1109
|
+
"export ROOT_URL="https://$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
1110
|
+
"export HOST_INTERNAL="$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
1111
|
+
"export HOST_CANONICAL="$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
1112
|
+
"export ROOT_URL_INTERNAL="https://$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
1113
|
+
"export DEPLOY_CLOUD_RUN_PROJECT_ID="asdf"",
|
|
1114
|
+
"export DEPLOY_CLOUD_RUN_REGION="asia-east1"",
|
|
1115
|
+
"export GCLOUD_DEPLOY_credentialsKey="$CL_prod_www_GCLOUD_DEPLOY_credentialsKey"",
|
|
1116
|
+
"export GCLOUD_RUN_canonicalHostSuffix="$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix"",
|
|
1117
|
+
"export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOST\\",\\"ROOT_URL\\",\\"HOST_INTERNAL\\",\\"HOST_CANONICAL\\",\\"ROOT_URL_INTERNAL\\",\\"DEPLOY_CLOUD_RUN_PROJECT_ID\\",\\"DEPLOY_CLOUD_RUN_REGION\\",\\"GCLOUD_DEPLOY_credentialsKey\\",\\"GCLOUD_RUN_canonicalHostSuffix\\"]"",
|
|
1118
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
1119
|
+
"echo '{"id":"$(git describe --tags 2>/dev/null || git rev-parse HEAD)","time":"$CI_JOB_STARTED_AT"}' > www/__build_info.json",
|
|
1048
1120
|
"echo -e "\\e[0Ksection_start:$(date +%s):nodeinstall[collapsed=true]\\r\\e[0KEnsure node version"",
|
|
1049
1121
|
"if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi",
|
|
1050
1122
|
"if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi",
|
|
@@ -1061,25 +1133,9 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
1061
1133
|
],
|
|
1062
1134
|
"stage": "build",
|
|
1063
1135
|
"variables": {
|
|
1064
|
-
"APP_DIR": "www",
|
|
1065
|
-
"BUILD_INFO_BUILD_TIME": "01-01-2023 12:13:14",
|
|
1066
|
-
"BUILD_INFO_CURRENT_VERSION": "3.2.1",
|
|
1067
|
-
"BUILD_INFO_ID": "some-id",
|
|
1068
|
-
"DEPLOY_CLOUD_RUN_PROJECT_ID": "asdf",
|
|
1069
|
-
"DEPLOY_CLOUD_RUN_REGION": "asia-east1",
|
|
1070
|
-
"ENV_SHORT": "prod",
|
|
1071
|
-
"ENV_TYPE": "prod",
|
|
1072
|
-
"GCLOUD_DEPLOY_credentialsKey": "$CL_prod_www_GCLOUD_DEPLOY_credentialsKey",
|
|
1073
|
-
"GCLOUD_RUN_canonicalHostSuffix": "$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix",
|
|
1074
|
-
"HOST": "pan-test-app-prod-www-unknown-host.example.com",
|
|
1075
|
-
"HOST_CANONICAL": "pan-test-app-prod-www-unknown-host.example.com",
|
|
1076
|
-
"HOST_INTERNAL": "pan-test-app-prod-www-unknown-host.example.com",
|
|
1077
1136
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
1078
1137
|
"KUBERNETES_MEMORY_LIMIT": "4Gi",
|
|
1079
1138
|
"KUBERNETES_MEMORY_REQUEST": "2Gi",
|
|
1080
|
-
"ROOT_URL": "https://pan-test-app-prod-www-unknown-host.example.com",
|
|
1081
|
-
"ROOT_URL_INTERNAL": "https://pan-test-app-prod-www-unknown-host.example.com",
|
|
1082
|
-
"_ALL_ENV_VAR_KEYS": "["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOST","ROOT_URL","HOST_CANONICAL","ROOT_URL_INTERNAL","HOST_INTERNAL","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]",
|
|
1083
1139
|
},
|
|
1084
1140
|
},
|
|
1085
1141
|
"www 🔨 app | stage ": {
|
|
@@ -1105,7 +1161,25 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
1105
1161
|
],
|
|
1106
1162
|
},
|
|
1107
1163
|
"script": [
|
|
1108
|
-
"echo
|
|
1164
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
1165
|
+
"export ENV_SHORT="stage"",
|
|
1166
|
+
"export APP_DIR="www"",
|
|
1167
|
+
"export ENV_TYPE="stage"",
|
|
1168
|
+
"export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"",
|
|
1169
|
+
"export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"",
|
|
1170
|
+
"export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\///'); [ -z "$tag" ] && echo "v0.0.0" || echo "$tag")"",
|
|
1171
|
+
"export HOST="$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
1172
|
+
"export ROOT_URL="https://$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
1173
|
+
"export HOST_INTERNAL="$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
1174
|
+
"export HOST_CANONICAL="$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
1175
|
+
"export ROOT_URL_INTERNAL="https://$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
1176
|
+
"export DEPLOY_CLOUD_RUN_PROJECT_ID="asdf"",
|
|
1177
|
+
"export DEPLOY_CLOUD_RUN_REGION="asia-east1"",
|
|
1178
|
+
"export GCLOUD_DEPLOY_credentialsKey="$CL_stage_www_GCLOUD_DEPLOY_credentialsKey"",
|
|
1179
|
+
"export GCLOUD_RUN_canonicalHostSuffix="$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix"",
|
|
1180
|
+
"export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOST\\",\\"ROOT_URL\\",\\"HOST_INTERNAL\\",\\"HOST_CANONICAL\\",\\"ROOT_URL_INTERNAL\\",\\"DEPLOY_CLOUD_RUN_PROJECT_ID\\",\\"DEPLOY_CLOUD_RUN_REGION\\",\\"GCLOUD_DEPLOY_credentialsKey\\",\\"GCLOUD_RUN_canonicalHostSuffix\\"]"",
|
|
1181
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
1182
|
+
"echo '{"id":"$(git describe --tags 2>/dev/null || git rev-parse HEAD)","time":"$CI_JOB_STARTED_AT"}' > www/__build_info.json",
|
|
1109
1183
|
"echo -e "\\e[0Ksection_start:$(date +%s):nodeinstall[collapsed=true]\\r\\e[0KEnsure node version"",
|
|
1110
1184
|
"if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi",
|
|
1111
1185
|
"if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi",
|
|
@@ -1122,25 +1196,9 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
1122
1196
|
],
|
|
1123
1197
|
"stage": "build",
|
|
1124
1198
|
"variables": {
|
|
1125
|
-
"APP_DIR": "www",
|
|
1126
|
-
"BUILD_INFO_BUILD_TIME": "01-01-2023 12:13:14",
|
|
1127
|
-
"BUILD_INFO_CURRENT_VERSION": "3.2.1",
|
|
1128
|
-
"BUILD_INFO_ID": "some-id",
|
|
1129
|
-
"DEPLOY_CLOUD_RUN_PROJECT_ID": "asdf",
|
|
1130
|
-
"DEPLOY_CLOUD_RUN_REGION": "asia-east1",
|
|
1131
|
-
"ENV_SHORT": "stage",
|
|
1132
|
-
"ENV_TYPE": "stage",
|
|
1133
|
-
"GCLOUD_DEPLOY_credentialsKey": "$CL_stage_www_GCLOUD_DEPLOY_credentialsKey",
|
|
1134
|
-
"GCLOUD_RUN_canonicalHostSuffix": "$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix",
|
|
1135
|
-
"HOST": "pan-test-app-stage-www-unknown-host.example.com",
|
|
1136
|
-
"HOST_CANONICAL": "pan-test-app-stage-www-unknown-host.example.com",
|
|
1137
|
-
"HOST_INTERNAL": "pan-test-app-stage-www-unknown-host.example.com",
|
|
1138
1199
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
1139
1200
|
"KUBERNETES_MEMORY_LIMIT": "4Gi",
|
|
1140
1201
|
"KUBERNETES_MEMORY_REQUEST": "2Gi",
|
|
1141
|
-
"ROOT_URL": "https://pan-test-app-stage-www-unknown-host.example.com",
|
|
1142
|
-
"ROOT_URL_INTERNAL": "https://pan-test-app-stage-www-unknown-host.example.com",
|
|
1143
|
-
"_ALL_ENV_VAR_KEYS": "["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOST","ROOT_URL","HOST_CANONICAL","ROOT_URL_INTERNAL","HOST_INTERNAL","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]",
|
|
1144
1202
|
},
|
|
1145
1203
|
},
|
|
1146
1204
|
"www 🔨 docker | prod ": {
|
|
@@ -1157,6 +1215,14 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
1157
1215
|
],
|
|
1158
1216
|
},
|
|
1159
1217
|
"script": [
|
|
1218
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
1219
|
+
"export APP_DIR="www"",
|
|
1220
|
+
"export DOCKER_DIR="."",
|
|
1221
|
+
"export DOCKER_REGISTRY="asia-east1-docker.pkg.dev"",
|
|
1222
|
+
"export DOCKER_IMAGE="asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/prod/www"",
|
|
1223
|
+
"export DOCKER_CACHE_IMAGE="asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www"",
|
|
1224
|
+
"export DOCKER_IMAGE_TAG="$CI_COMMIT_SHA"",
|
|
1225
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
1160
1226
|
"ensureNginxDockerfile",
|
|
1161
1227
|
"echo -e "\\e[0Ksection_start:$(date +%s):docker-login[collapsed=true]\\r\\e[0KDocker Login"",
|
|
1162
1228
|
"gcloud auth activate-service-account --key-file=<(echo "$CL_prod_www_GCLOUD_DEPLOY_credentialsKey")",
|
|
@@ -1181,17 +1247,9 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
1181
1247
|
],
|
|
1182
1248
|
"stage": "build",
|
|
1183
1249
|
"variables": {
|
|
1184
|
-
"APP_DIR": "www",
|
|
1185
|
-
"DOCKERFILE_ADDITIONS": undefined,
|
|
1186
|
-
"DOCKERFILE_ADDITIONS_END": undefined,
|
|
1187
1250
|
"DOCKER_BUILDKIT": "1",
|
|
1188
|
-
"DOCKER_CACHE_IMAGE": "asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www",
|
|
1189
|
-
"DOCKER_DIR": ".",
|
|
1190
1251
|
"DOCKER_DRIVER": "overlay2",
|
|
1191
1252
|
"DOCKER_HOST": "tcp://0.0.0.0:2375",
|
|
1192
|
-
"DOCKER_IMAGE": "asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/prod/www",
|
|
1193
|
-
"DOCKER_IMAGE_TAG": "$CI_COMMIT_SHA",
|
|
1194
|
-
"DOCKER_REGISTRY": "asia-east1-docker.pkg.dev",
|
|
1195
1253
|
"DOCKER_TLS_CERTDIR": "",
|
|
1196
1254
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
1197
1255
|
"KUBERNETES_MEMORY_LIMIT": "2Gi",
|
|
@@ -1212,6 +1270,14 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
1212
1270
|
],
|
|
1213
1271
|
},
|
|
1214
1272
|
"script": [
|
|
1273
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
1274
|
+
"export APP_DIR="www"",
|
|
1275
|
+
"export DOCKER_DIR="."",
|
|
1276
|
+
"export DOCKER_REGISTRY="asia-east1-docker.pkg.dev"",
|
|
1277
|
+
"export DOCKER_IMAGE="asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/stage/www"",
|
|
1278
|
+
"export DOCKER_CACHE_IMAGE="asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www"",
|
|
1279
|
+
"export DOCKER_IMAGE_TAG="$CI_COMMIT_SHA"",
|
|
1280
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
1215
1281
|
"ensureNginxDockerfile",
|
|
1216
1282
|
"echo -e "\\e[0Ksection_start:$(date +%s):docker-login[collapsed=true]\\r\\e[0KDocker Login"",
|
|
1217
1283
|
"gcloud auth activate-service-account --key-file=<(echo "$CL_stage_www_GCLOUD_DEPLOY_credentialsKey")",
|
|
@@ -1236,17 +1302,9 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
1236
1302
|
],
|
|
1237
1303
|
"stage": "build",
|
|
1238
1304
|
"variables": {
|
|
1239
|
-
"APP_DIR": "www",
|
|
1240
|
-
"DOCKERFILE_ADDITIONS": undefined,
|
|
1241
|
-
"DOCKERFILE_ADDITIONS_END": undefined,
|
|
1242
1305
|
"DOCKER_BUILDKIT": "1",
|
|
1243
|
-
"DOCKER_CACHE_IMAGE": "asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www",
|
|
1244
|
-
"DOCKER_DIR": ".",
|
|
1245
1306
|
"DOCKER_DRIVER": "overlay2",
|
|
1246
1307
|
"DOCKER_HOST": "tcp://0.0.0.0:2375",
|
|
1247
|
-
"DOCKER_IMAGE": "asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/stage/www",
|
|
1248
|
-
"DOCKER_IMAGE_TAG": "$CI_COMMIT_SHA",
|
|
1249
|
-
"DOCKER_REGISTRY": "asia-east1-docker.pkg.dev",
|
|
1250
1308
|
"DOCKER_TLS_CERTDIR": "",
|
|
1251
1309
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
1252
1310
|
"KUBERNETES_MEMORY_LIMIT": "2Gi",
|
|
@@ -1256,15 +1314,15 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
1256
1314
|
"www 🚀 Deploy | prod ": {
|
|
1257
1315
|
"allow_failure": true,
|
|
1258
1316
|
"artifacts": {
|
|
1259
|
-
"
|
|
1260
|
-
"
|
|
1261
|
-
|
|
1317
|
+
"reports": {
|
|
1318
|
+
"dotenv": "gitlab_environment.env",
|
|
1319
|
+
},
|
|
1262
1320
|
},
|
|
1263
1321
|
"environment": {
|
|
1264
1322
|
"auto_stop_in": undefined,
|
|
1265
1323
|
"name": "prod/www",
|
|
1266
1324
|
"on_stop": "www 🛑 Stop ⚠️ | prod ",
|
|
1267
|
-
"url": "
|
|
1325
|
+
"url": "$CL_GITLAB_ENVIRONMENT_URL",
|
|
1268
1326
|
},
|
|
1269
1327
|
"image": "path/to/docker/gcloud:the-version",
|
|
1270
1328
|
"interruptible": true,
|
|
@@ -1295,13 +1353,71 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
1295
1353
|
},
|
|
1296
1354
|
],
|
|
1297
1355
|
"script": [
|
|
1356
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
1357
|
+
"export ENV_SHORT="prod"",
|
|
1358
|
+
"export APP_DIR="www"",
|
|
1359
|
+
"export ENV_TYPE="prod"",
|
|
1360
|
+
"export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"",
|
|
1361
|
+
"export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"",
|
|
1362
|
+
"export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\///'); [ -z "$tag" ] && echo "v0.0.0" || echo "$tag")"",
|
|
1363
|
+
"export HOST="$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
1364
|
+
"export ROOT_URL="https://$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
1365
|
+
"export HOST_INTERNAL="$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
1366
|
+
"export HOST_CANONICAL="$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
1367
|
+
"export ROOT_URL_INTERNAL="https://$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
1368
|
+
"export DEPLOY_CLOUD_RUN_PROJECT_ID="asdf"",
|
|
1369
|
+
"export DEPLOY_CLOUD_RUN_REGION="asia-east1"",
|
|
1370
|
+
"export GCLOUD_DEPLOY_credentialsKey="$CL_prod_www_GCLOUD_DEPLOY_credentialsKey"",
|
|
1371
|
+
"export GCLOUD_RUN_canonicalHostSuffix="$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix"",
|
|
1372
|
+
"export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOST\\",\\"ROOT_URL\\",\\"HOST_INTERNAL\\",\\"HOST_CANONICAL\\",\\"ROOT_URL_INTERNAL\\",\\"DEPLOY_CLOUD_RUN_PROJECT_ID\\",\\"DEPLOY_CLOUD_RUN_REGION\\",\\"GCLOUD_DEPLOY_credentialsKey\\",\\"GCLOUD_RUN_canonicalHostSuffix\\"]"",
|
|
1373
|
+
"export DOCKER_REGISTRY="asia-east1-docker.pkg.dev"",
|
|
1374
|
+
"export DOCKER_IMAGE="asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/prod/www"",
|
|
1375
|
+
"export DOCKER_CACHE_IMAGE="asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www"",
|
|
1376
|
+
"export DOCKER_IMAGE_TAG="$CI_COMMIT_SHA"",
|
|
1377
|
+
"export CLOUDSDK_CORE_DISABLE_PROMPTS="1"",
|
|
1378
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
1298
1379
|
"echo -e "\\e[0Ksection_start:$(date +%s):prepare[collapsed=true]\\r\\e[0KPrepare..."",
|
|
1299
1380
|
"gcloud auth activate-service-account --key-file=<(echo "$CL_prod_www_GCLOUD_DEPLOY_credentialsKey")",
|
|
1300
1381
|
"export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe asdf --format="value(projectNumber)")",
|
|
1301
1382
|
"echo "GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER"",
|
|
1302
1383
|
"echo -e "\\e[0Ksection_end:$(date +%s):prepare\\r\\e[0K"",
|
|
1384
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):writeenvvars[collapsed=true]\\r\\e[0KWrite env vars to file"",
|
|
1385
|
+
"cat > ____envvars.yaml <<EOF
|
|
1386
|
+
ENV_SHORT: |-
|
|
1387
|
+
prod
|
|
1388
|
+
APP_DIR: |-
|
|
1389
|
+
www
|
|
1390
|
+
ENV_TYPE: |-
|
|
1391
|
+
prod
|
|
1392
|
+
BUILD_INFO_BUILD_ID: |-
|
|
1393
|
+
$(printf %s "$(git describe --tags 2>/dev/null || git rev-parse HEAD)" | sed 's/^/ /')
|
|
1394
|
+
BUILD_INFO_BUILD_TIME: |-
|
|
1395
|
+
$(printf %s "$CI_JOB_STARTED_AT" | sed 's/^/ /')
|
|
1396
|
+
BUILD_INFO_CURRENT_VERSION: |-
|
|
1397
|
+
$(printf %s "$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\///'); [ -z "$tag" ] && echo "v0.0.0" || echo "$tag")" | sed 's/^/ /')
|
|
1398
|
+
HOST: |-
|
|
1399
|
+
$(printf %s "$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
1400
|
+
ROOT_URL: |-
|
|
1401
|
+
$(printf %s "https://$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
1402
|
+
HOST_INTERNAL: |-
|
|
1403
|
+
$(printf %s "$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
1404
|
+
HOST_CANONICAL: |-
|
|
1405
|
+
$(printf %s "$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
1406
|
+
ROOT_URL_INTERNAL: |-
|
|
1407
|
+
$(printf %s "https://$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
1408
|
+
DEPLOY_CLOUD_RUN_PROJECT_ID: |-
|
|
1409
|
+
asdf
|
|
1410
|
+
DEPLOY_CLOUD_RUN_REGION: |-
|
|
1411
|
+
asia-east1
|
|
1412
|
+
GCLOUD_RUN_canonicalHostSuffix: |-
|
|
1413
|
+
$(printf %s "$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | sed 's/^/ /')
|
|
1414
|
+
_ALL_ENV_VAR_KEYS: |-
|
|
1415
|
+
["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOST","ROOT_URL","HOST_INTERNAL","HOST_CANONICAL","ROOT_URL_INTERNAL","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]
|
|
1416
|
+
|
|
1417
|
+
EOF
|
|
1418
|
+
",
|
|
1419
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):writeenvvars\\r\\e[0K"",
|
|
1303
1420
|
"echo -e "\\e[0Ksection_start:$(date +%s):deploy[collapsed=true]\\r\\e[0KDeploy to cloud run"",
|
|
1304
|
-
"echo "$ENV_VARS" > ____envvars.yaml",
|
|
1305
1421
|
"gcloud run deploy pan-test-app-prod-www --command="" --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=custom,cloud-run-service-name=pan-test-app-prod-www --env-vars-file=____envvars.yaml --min-instances=0 --max-instances=100 --cpu-throttling --allow-unauthenticated --ingress=all --cpu-boost",
|
|
1306
1422
|
"echo -e "\\e[0Ksection_end:$(date +%s):deploy\\r\\e[0K"",
|
|
1307
1423
|
"echo -e "\\e[0Ksection_start:$(date +%s):cleanup[collapsed=true]\\r\\e[0KCleanup"",
|
|
@@ -1310,76 +1426,28 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
1310
1426
|
"gcloud artifacts docker images list asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www --sort-by=~CREATE_TIME --format="value(version)" | tail -n +2 | while read -r version; do gcloud artifacts docker images delete asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www@$version --quiet --delete-tags; done",
|
|
1311
1427
|
"echo -e "\\e[0Ksection_end:$(date +%s):cleanup\\r\\e[0K"",
|
|
1312
1428
|
"echo Uploading SBOM to Dependency Track",
|
|
1313
|
-
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "https
|
|
1314
|
-
|
|
1315
|
-
"services": [
|
|
1316
|
-
{
|
|
1317
|
-
"command": [
|
|
1318
|
-
"--tls=false",
|
|
1319
|
-
],
|
|
1320
|
-
"name": "docker:24.0.6-dind",
|
|
1321
|
-
},
|
|
1429
|
+
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "https://$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" "__sbom.json" vex.json || true",
|
|
1430
|
+
"echo "CL_GITLAB_ENVIRONMENT_URL=https://$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" >> gitlab_environment.env",
|
|
1322
1431
|
],
|
|
1323
1432
|
"stage": "deploy prod",
|
|
1324
1433
|
"variables": {
|
|
1325
|
-
"APP_DIR": "www",
|
|
1326
|
-
"BUILD_INFO_BUILD_TIME": "01-01-2023 12:13:14",
|
|
1327
|
-
"BUILD_INFO_CURRENT_VERSION": "3.2.1",
|
|
1328
|
-
"BUILD_INFO_ID": "some-id",
|
|
1329
|
-
"CLOUDSDK_CORE_DISABLE_PROMPTS": "1",
|
|
1330
|
-
"DEPLOY_CLOUD_RUN_PROJECT_ID": "asdf",
|
|
1331
|
-
"DEPLOY_CLOUD_RUN_REGION": "asia-east1",
|
|
1332
|
-
"DOCKER_BUILDKIT": "1",
|
|
1333
|
-
"DOCKER_CACHE_IMAGE": "asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www",
|
|
1334
|
-
"DOCKER_DRIVER": "overlay2",
|
|
1335
|
-
"DOCKER_HOST": "tcp://0.0.0.0:2375",
|
|
1336
|
-
"DOCKER_IMAGE": "asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/prod/www",
|
|
1337
|
-
"DOCKER_IMAGE_TAG": "$CI_COMMIT_SHA",
|
|
1338
|
-
"DOCKER_REGISTRY": "asia-east1-docker.pkg.dev",
|
|
1339
|
-
"DOCKER_TLS_CERTDIR": "",
|
|
1340
|
-
"ENV_SHORT": "prod",
|
|
1341
|
-
"ENV_TYPE": "prod",
|
|
1342
|
-
"ENV_VARS": "ENV_SHORT: 'prod'
|
|
1343
|
-
APP_DIR: 'www'
|
|
1344
|
-
ENV_TYPE: 'prod'
|
|
1345
|
-
BUILD_INFO_ID: 'some-id'
|
|
1346
|
-
BUILD_INFO_BUILD_TIME: '01-01-2023 12:13:14'
|
|
1347
|
-
BUILD_INFO_CURRENT_VERSION: '3.2.1'
|
|
1348
|
-
HOST: 'pan-test-app-prod-www-unknown-host.example.com'
|
|
1349
|
-
ROOT_URL: 'https://pan-test-app-prod-www-unknown-host.example.com'
|
|
1350
|
-
HOST_CANONICAL: 'pan-test-app-prod-www-unknown-host.example.com'
|
|
1351
|
-
ROOT_URL_INTERNAL: 'https://pan-test-app-prod-www-unknown-host.example.com'
|
|
1352
|
-
HOST_INTERNAL: 'pan-test-app-prod-www-unknown-host.example.com'
|
|
1353
|
-
DEPLOY_CLOUD_RUN_PROJECT_ID: 'asdf'
|
|
1354
|
-
DEPLOY_CLOUD_RUN_REGION: 'asia-east1'
|
|
1355
|
-
GCLOUD_RUN_canonicalHostSuffix: '$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix'
|
|
1356
|
-
_ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOST","ROOT_URL","HOST_CANONICAL","ROOT_URL_INTERNAL","HOST_INTERNAL","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]'
|
|
1357
|
-
",
|
|
1358
|
-
"GCLOUD_DEPLOY_credentialsKey": "$CL_prod_www_GCLOUD_DEPLOY_credentialsKey",
|
|
1359
|
-
"GCLOUD_RUN_canonicalHostSuffix": "$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix",
|
|
1360
|
-
"HOST": "pan-test-app-prod-www-unknown-host.example.com",
|
|
1361
|
-
"HOST_CANONICAL": "pan-test-app-prod-www-unknown-host.example.com",
|
|
1362
|
-
"HOST_INTERNAL": "pan-test-app-prod-www-unknown-host.example.com",
|
|
1363
1434
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
1364
1435
|
"KUBERNETES_MEMORY_LIMIT": "400Mi",
|
|
1365
1436
|
"KUBERNETES_MEMORY_REQUEST": "200Mi",
|
|
1366
|
-
"ROOT_URL": "https://pan-test-app-prod-www-unknown-host.example.com",
|
|
1367
|
-
"ROOT_URL_INTERNAL": "https://pan-test-app-prod-www-unknown-host.example.com",
|
|
1368
|
-
"_ALL_ENV_VAR_KEYS": "["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOST","ROOT_URL","HOST_CANONICAL","ROOT_URL_INTERNAL","HOST_INTERNAL","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]",
|
|
1369
1437
|
},
|
|
1370
1438
|
},
|
|
1371
1439
|
"www 🚀 Deploy | stage ": {
|
|
1372
1440
|
"allow_failure": false,
|
|
1373
1441
|
"artifacts": {
|
|
1374
|
-
"
|
|
1375
|
-
"
|
|
1376
|
-
|
|
1442
|
+
"reports": {
|
|
1443
|
+
"dotenv": "gitlab_environment.env",
|
|
1444
|
+
},
|
|
1377
1445
|
},
|
|
1378
1446
|
"environment": {
|
|
1379
1447
|
"auto_stop_in": undefined,
|
|
1380
1448
|
"name": "stage/www",
|
|
1381
1449
|
"on_stop": "www 🛑 Stop ⚠️ | stage ",
|
|
1382
|
-
"url": "
|
|
1450
|
+
"url": "$CL_GITLAB_ENVIRONMENT_URL",
|
|
1383
1451
|
},
|
|
1384
1452
|
"image": "path/to/docker/gcloud:the-version",
|
|
1385
1453
|
"interruptible": true,
|
|
@@ -1410,13 +1478,71 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
1410
1478
|
},
|
|
1411
1479
|
],
|
|
1412
1480
|
"script": [
|
|
1481
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
1482
|
+
"export ENV_SHORT="stage"",
|
|
1483
|
+
"export APP_DIR="www"",
|
|
1484
|
+
"export ENV_TYPE="stage"",
|
|
1485
|
+
"export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"",
|
|
1486
|
+
"export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"",
|
|
1487
|
+
"export BUILD_INFO_CURRENT_VERSION="$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\///'); [ -z "$tag" ] && echo "v0.0.0" || echo "$tag")"",
|
|
1488
|
+
"export HOST="$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
1489
|
+
"export ROOT_URL="https://$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
1490
|
+
"export HOST_INTERNAL="$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
1491
|
+
"export HOST_CANONICAL="$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
1492
|
+
"export ROOT_URL_INTERNAL="https://$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
1493
|
+
"export DEPLOY_CLOUD_RUN_PROJECT_ID="asdf"",
|
|
1494
|
+
"export DEPLOY_CLOUD_RUN_REGION="asia-east1"",
|
|
1495
|
+
"export GCLOUD_DEPLOY_credentialsKey="$CL_stage_www_GCLOUD_DEPLOY_credentialsKey"",
|
|
1496
|
+
"export GCLOUD_RUN_canonicalHostSuffix="$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix"",
|
|
1497
|
+
"export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOST\\",\\"ROOT_URL\\",\\"HOST_INTERNAL\\",\\"HOST_CANONICAL\\",\\"ROOT_URL_INTERNAL\\",\\"DEPLOY_CLOUD_RUN_PROJECT_ID\\",\\"DEPLOY_CLOUD_RUN_REGION\\",\\"GCLOUD_DEPLOY_credentialsKey\\",\\"GCLOUD_RUN_canonicalHostSuffix\\"]"",
|
|
1498
|
+
"export DOCKER_REGISTRY="asia-east1-docker.pkg.dev"",
|
|
1499
|
+
"export DOCKER_IMAGE="asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/stage/www"",
|
|
1500
|
+
"export DOCKER_CACHE_IMAGE="asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www"",
|
|
1501
|
+
"export DOCKER_IMAGE_TAG="$CI_COMMIT_SHA"",
|
|
1502
|
+
"export CLOUDSDK_CORE_DISABLE_PROMPTS="1"",
|
|
1503
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
1413
1504
|
"echo -e "\\e[0Ksection_start:$(date +%s):prepare[collapsed=true]\\r\\e[0KPrepare..."",
|
|
1414
1505
|
"gcloud auth activate-service-account --key-file=<(echo "$CL_stage_www_GCLOUD_DEPLOY_credentialsKey")",
|
|
1415
1506
|
"export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe asdf --format="value(projectNumber)")",
|
|
1416
1507
|
"echo "GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER"",
|
|
1417
1508
|
"echo -e "\\e[0Ksection_end:$(date +%s):prepare\\r\\e[0K"",
|
|
1509
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):writeenvvars[collapsed=true]\\r\\e[0KWrite env vars to file"",
|
|
1510
|
+
"cat > ____envvars.yaml <<EOF
|
|
1511
|
+
ENV_SHORT: |-
|
|
1512
|
+
stage
|
|
1513
|
+
APP_DIR: |-
|
|
1514
|
+
www
|
|
1515
|
+
ENV_TYPE: |-
|
|
1516
|
+
stage
|
|
1517
|
+
BUILD_INFO_BUILD_ID: |-
|
|
1518
|
+
$(printf %s "$(git describe --tags 2>/dev/null || git rev-parse HEAD)" | sed 's/^/ /')
|
|
1519
|
+
BUILD_INFO_BUILD_TIME: |-
|
|
1520
|
+
$(printf %s "$CI_JOB_STARTED_AT" | sed 's/^/ /')
|
|
1521
|
+
BUILD_INFO_CURRENT_VERSION: |-
|
|
1522
|
+
$(printf %s "$(tag=$(git ls-remote origin "refs/tags/v*[0-9]" 2>/dev/null | cut -f 2- | sort -V | tail -1 | sed 's/refs\\/tags\\///'); [ -z "$tag" ] && echo "v0.0.0" || echo "$tag")" | sed 's/^/ /')
|
|
1523
|
+
HOST: |-
|
|
1524
|
+
$(printf %s "$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
1525
|
+
ROOT_URL: |-
|
|
1526
|
+
$(printf %s "https://$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
1527
|
+
HOST_INTERNAL: |-
|
|
1528
|
+
$(printf %s "$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
1529
|
+
HOST_CANONICAL: |-
|
|
1530
|
+
$(printf %s "$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
1531
|
+
ROOT_URL_INTERNAL: |-
|
|
1532
|
+
$(printf %s "https://$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
1533
|
+
DEPLOY_CLOUD_RUN_PROJECT_ID: |-
|
|
1534
|
+
asdf
|
|
1535
|
+
DEPLOY_CLOUD_RUN_REGION: |-
|
|
1536
|
+
asia-east1
|
|
1537
|
+
GCLOUD_RUN_canonicalHostSuffix: |-
|
|
1538
|
+
$(printf %s "$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | sed 's/^/ /')
|
|
1539
|
+
_ALL_ENV_VAR_KEYS: |-
|
|
1540
|
+
["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOST","ROOT_URL","HOST_INTERNAL","HOST_CANONICAL","ROOT_URL_INTERNAL","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]
|
|
1541
|
+
|
|
1542
|
+
EOF
|
|
1543
|
+
",
|
|
1544
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):writeenvvars\\r\\e[0K"",
|
|
1418
1545
|
"echo -e "\\e[0Ksection_start:$(date +%s):deploy[collapsed=true]\\r\\e[0KDeploy to cloud run"",
|
|
1419
|
-
"echo "$ENV_VARS" > ____envvars.yaml",
|
|
1420
1546
|
"gcloud run deploy pan-test-app-stage-www --command="" --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=custom,cloud-run-service-name=pan-test-app-stage-www --env-vars-file=____envvars.yaml --min-instances=0 --max-instances=100 --cpu-throttling --allow-unauthenticated --ingress=all --cpu-boost",
|
|
1421
1547
|
"echo -e "\\e[0Ksection_end:$(date +%s):deploy\\r\\e[0K"",
|
|
1422
1548
|
"echo -e "\\e[0Ksection_start:$(date +%s):cleanup[collapsed=true]\\r\\e[0KCleanup"",
|
|
@@ -1425,69 +1551,27 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
1425
1551
|
"gcloud artifacts docker images list asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www --sort-by=~CREATE_TIME --format="value(version)" | tail -n +2 | while read -r version; do gcloud artifacts docker images delete asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www@$version --quiet --delete-tags; done",
|
|
1426
1552
|
"echo -e "\\e[0Ksection_end:$(date +%s):cleanup\\r\\e[0K"",
|
|
1427
1553
|
"echo Uploading SBOM to Dependency Track",
|
|
1428
|
-
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "https
|
|
1429
|
-
|
|
1430
|
-
"services": [
|
|
1431
|
-
{
|
|
1432
|
-
"command": [
|
|
1433
|
-
"--tls=false",
|
|
1434
|
-
],
|
|
1435
|
-
"name": "docker:24.0.6-dind",
|
|
1436
|
-
},
|
|
1554
|
+
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "https://$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" "__sbom.json" vex.json || true",
|
|
1555
|
+
"echo "CL_GITLAB_ENVIRONMENT_URL=https://$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" >> gitlab_environment.env",
|
|
1437
1556
|
],
|
|
1438
1557
|
"stage": "deploy stage",
|
|
1439
1558
|
"variables": {
|
|
1440
|
-
"APP_DIR": "www",
|
|
1441
|
-
"BUILD_INFO_BUILD_TIME": "01-01-2023 12:13:14",
|
|
1442
|
-
"BUILD_INFO_CURRENT_VERSION": "3.2.1",
|
|
1443
|
-
"BUILD_INFO_ID": "some-id",
|
|
1444
|
-
"CLOUDSDK_CORE_DISABLE_PROMPTS": "1",
|
|
1445
|
-
"DEPLOY_CLOUD_RUN_PROJECT_ID": "asdf",
|
|
1446
|
-
"DEPLOY_CLOUD_RUN_REGION": "asia-east1",
|
|
1447
|
-
"DOCKER_BUILDKIT": "1",
|
|
1448
|
-
"DOCKER_CACHE_IMAGE": "asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www",
|
|
1449
|
-
"DOCKER_DRIVER": "overlay2",
|
|
1450
|
-
"DOCKER_HOST": "tcp://0.0.0.0:2375",
|
|
1451
|
-
"DOCKER_IMAGE": "asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/stage/www",
|
|
1452
|
-
"DOCKER_IMAGE_TAG": "$CI_COMMIT_SHA",
|
|
1453
|
-
"DOCKER_REGISTRY": "asia-east1-docker.pkg.dev",
|
|
1454
|
-
"DOCKER_TLS_CERTDIR": "",
|
|
1455
|
-
"ENV_SHORT": "stage",
|
|
1456
|
-
"ENV_TYPE": "stage",
|
|
1457
|
-
"ENV_VARS": "ENV_SHORT: 'stage'
|
|
1458
|
-
APP_DIR: 'www'
|
|
1459
|
-
ENV_TYPE: 'stage'
|
|
1460
|
-
BUILD_INFO_ID: 'some-id'
|
|
1461
|
-
BUILD_INFO_BUILD_TIME: '01-01-2023 12:13:14'
|
|
1462
|
-
BUILD_INFO_CURRENT_VERSION: '3.2.1'
|
|
1463
|
-
HOST: 'pan-test-app-stage-www-unknown-host.example.com'
|
|
1464
|
-
ROOT_URL: 'https://pan-test-app-stage-www-unknown-host.example.com'
|
|
1465
|
-
HOST_CANONICAL: 'pan-test-app-stage-www-unknown-host.example.com'
|
|
1466
|
-
ROOT_URL_INTERNAL: 'https://pan-test-app-stage-www-unknown-host.example.com'
|
|
1467
|
-
HOST_INTERNAL: 'pan-test-app-stage-www-unknown-host.example.com'
|
|
1468
|
-
DEPLOY_CLOUD_RUN_PROJECT_ID: 'asdf'
|
|
1469
|
-
DEPLOY_CLOUD_RUN_REGION: 'asia-east1'
|
|
1470
|
-
GCLOUD_RUN_canonicalHostSuffix: '$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix'
|
|
1471
|
-
_ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOST","ROOT_URL","HOST_CANONICAL","ROOT_URL_INTERNAL","HOST_INTERNAL","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]'
|
|
1472
|
-
",
|
|
1473
|
-
"GCLOUD_DEPLOY_credentialsKey": "$CL_stage_www_GCLOUD_DEPLOY_credentialsKey",
|
|
1474
|
-
"GCLOUD_RUN_canonicalHostSuffix": "$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix",
|
|
1475
|
-
"HOST": "pan-test-app-stage-www-unknown-host.example.com",
|
|
1476
|
-
"HOST_CANONICAL": "pan-test-app-stage-www-unknown-host.example.com",
|
|
1477
|
-
"HOST_INTERNAL": "pan-test-app-stage-www-unknown-host.example.com",
|
|
1478
1559
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
1479
1560
|
"KUBERNETES_MEMORY_LIMIT": "400Mi",
|
|
1480
1561
|
"KUBERNETES_MEMORY_REQUEST": "200Mi",
|
|
1481
|
-
"ROOT_URL": "https://pan-test-app-stage-www-unknown-host.example.com",
|
|
1482
|
-
"ROOT_URL_INTERNAL": "https://pan-test-app-stage-www-unknown-host.example.com",
|
|
1483
|
-
"_ALL_ENV_VAR_KEYS": "["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOST","ROOT_URL","HOST_CANONICAL","ROOT_URL_INTERNAL","HOST_INTERNAL","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]",
|
|
1484
1562
|
},
|
|
1485
1563
|
},
|
|
1486
1564
|
"www 🛑 Stop ⚠️ | prod ": {
|
|
1565
|
+
"allow_failure": true,
|
|
1566
|
+
"artifacts": {
|
|
1567
|
+
"reports": {
|
|
1568
|
+
"dotenv": "gitlab_environment.env",
|
|
1569
|
+
},
|
|
1570
|
+
},
|
|
1487
1571
|
"environment": {
|
|
1488
1572
|
"action": "stop",
|
|
1489
1573
|
"name": "prod/www",
|
|
1490
|
-
"url": "
|
|
1574
|
+
"url": "$CL_GITLAB_ENVIRONMENT_URL",
|
|
1491
1575
|
},
|
|
1492
1576
|
"image": "path/to/docker/gcloud:the-version",
|
|
1493
1577
|
"interruptible": true,
|
|
@@ -1501,28 +1585,29 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
1501
1585
|
},
|
|
1502
1586
|
"rules": [
|
|
1503
1587
|
{
|
|
1504
|
-
"allow_failure": true,
|
|
1505
1588
|
"if": "$CI_COMMIT_BRANCH =~ /^[0-9]+\\.([0-9]+|x)\\.x$/",
|
|
1506
1589
|
"when": "on_success",
|
|
1507
1590
|
},
|
|
1508
1591
|
{
|
|
1509
|
-
"allow_failure": true,
|
|
1510
1592
|
"when": "manual",
|
|
1511
1593
|
},
|
|
1512
1594
|
],
|
|
1513
1595
|
"script": [
|
|
1596
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
1597
|
+
"export CLOUDSDK_CORE_DISABLE_PROMPTS="1"",
|
|
1598
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
1514
1599
|
"set +e",
|
|
1515
1600
|
"gcloud auth activate-service-account --key-file=<(echo "$CL_prod_www_GCLOUD_DEPLOY_credentialsKey")",
|
|
1516
1601
|
"gcloud run services delete pan-test-app-prod-www --project=asdf --region=asia-east1",
|
|
1517
1602
|
"gcloud artifacts docker images delete asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/prod/www --quiet --delete-tags",
|
|
1518
1603
|
"gcloud artifacts docker images list asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www --sort-by=~CREATE_TIME --format="value(version)" | tail -n +2 | while read -r version; do gcloud artifacts docker images delete asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www@$version --quiet --delete-tags; done",
|
|
1519
1604
|
"echo Disabling component in Dependency Track",
|
|
1520
|
-
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/www" "https
|
|
1605
|
+
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/www" "https://$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" || true",
|
|
1521
1606
|
"set -e",
|
|
1607
|
+
"echo "CL_GITLAB_ENVIRONMENT_URL=https://$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" >> gitlab_environment.env",
|
|
1522
1608
|
],
|
|
1523
1609
|
"stage": "stop prod",
|
|
1524
1610
|
"variables": {
|
|
1525
|
-
"CLOUDSDK_CORE_DISABLE_PROMPTS": "1",
|
|
1526
1611
|
"GIT_STRATEGY": "none",
|
|
1527
1612
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
1528
1613
|
"KUBERNETES_MEMORY_LIMIT": "400Mi",
|
|
@@ -1530,10 +1615,16 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
1530
1615
|
},
|
|
1531
1616
|
},
|
|
1532
1617
|
"www 🛑 Stop ⚠️ | stage ": {
|
|
1618
|
+
"allow_failure": true,
|
|
1619
|
+
"artifacts": {
|
|
1620
|
+
"reports": {
|
|
1621
|
+
"dotenv": "gitlab_environment.env",
|
|
1622
|
+
},
|
|
1623
|
+
},
|
|
1533
1624
|
"environment": {
|
|
1534
1625
|
"action": "stop",
|
|
1535
1626
|
"name": "stage/www",
|
|
1536
|
-
"url": "
|
|
1627
|
+
"url": "$CL_GITLAB_ENVIRONMENT_URL",
|
|
1537
1628
|
},
|
|
1538
1629
|
"image": "path/to/docker/gcloud:the-version",
|
|
1539
1630
|
"interruptible": true,
|
|
@@ -1547,28 +1638,29 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
1547
1638
|
},
|
|
1548
1639
|
"rules": [
|
|
1549
1640
|
{
|
|
1550
|
-
"allow_failure": true,
|
|
1551
1641
|
"if": "$CI_COMMIT_BRANCH =~ /^[0-9]+\\.([0-9]+|x)\\.x$/",
|
|
1552
1642
|
"when": "on_success",
|
|
1553
1643
|
},
|
|
1554
1644
|
{
|
|
1555
|
-
"allow_failure": true,
|
|
1556
1645
|
"when": "manual",
|
|
1557
1646
|
},
|
|
1558
1647
|
],
|
|
1559
1648
|
"script": [
|
|
1649
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
1650
|
+
"export CLOUDSDK_CORE_DISABLE_PROMPTS="1"",
|
|
1651
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
1560
1652
|
"set +e",
|
|
1561
1653
|
"gcloud auth activate-service-account --key-file=<(echo "$CL_stage_www_GCLOUD_DEPLOY_credentialsKey")",
|
|
1562
1654
|
"gcloud run services delete pan-test-app-stage-www --project=asdf --region=asia-east1",
|
|
1563
1655
|
"gcloud artifacts docker images delete asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/stage/www --quiet --delete-tags",
|
|
1564
1656
|
"gcloud artifacts docker images list asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www --sort-by=~CREATE_TIME --format="value(version)" | tail -n +2 | while read -r version; do gcloud artifacts docker images delete asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www@$version --quiet --delete-tags; done",
|
|
1565
1657
|
"echo Disabling component in Dependency Track",
|
|
1566
|
-
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/www" "https
|
|
1658
|
+
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/www" "https://$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" || true",
|
|
1567
1659
|
"set -e",
|
|
1660
|
+
"echo "CL_GITLAB_ENVIRONMENT_URL=https://$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" >> gitlab_environment.env",
|
|
1568
1661
|
],
|
|
1569
1662
|
"stage": "stop stage",
|
|
1570
1663
|
"variables": {
|
|
1571
|
-
"CLOUDSDK_CORE_DISABLE_PROMPTS": "1",
|
|
1572
1664
|
"GIT_STRATEGY": "none",
|
|
1573
1665
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
1574
1666
|
"KUBERNETES_MEMORY_LIMIT": "400Mi",
|
|
@@ -1593,6 +1685,8 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
1593
1685
|
],
|
|
1594
1686
|
},
|
|
1595
1687
|
"script": [
|
|
1688
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
1689
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
1596
1690
|
"trivy fs --quiet --format cyclonedx --output "__sbom.json" www",
|
|
1597
1691
|
],
|
|
1598
1692
|
"stage": "build",
|
|
@@ -1616,6 +1710,8 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
1616
1710
|
],
|
|
1617
1711
|
},
|
|
1618
1712
|
"script": [
|
|
1713
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
1714
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
1619
1715
|
"trivy fs --quiet --format cyclonedx --output "__sbom.json" www",
|
|
1620
1716
|
],
|
|
1621
1717
|
"stage": "build",
|
|
@@ -1668,7 +1764,7 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
1668
1764
|
],
|
|
1669
1765
|
"variables": {
|
|
1670
1766
|
"FF_USE_FASTZIP": "true",
|
|
1671
|
-
"GIT_DEPTH": 1,
|
|
1767
|
+
"GIT_DEPTH": "1",
|
|
1672
1768
|
},
|
|
1673
1769
|
"workflow": {
|
|
1674
1770
|
"rules": [
|