@catladder/pipeline 1.144.0 → 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
|
@@ -28,7 +28,25 @@ exports[`matches snapshot 1`] = `
|
|
|
28
28
|
],
|
|
29
29
|
},
|
|
30
30
|
"script": [
|
|
31
|
-
"echo
|
|
31
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
32
|
+
"export ENV_SHORT="dev"",
|
|
33
|
+
"export APP_DIR="www"",
|
|
34
|
+
"export ENV_TYPE="dev"",
|
|
35
|
+
"export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"",
|
|
36
|
+
"export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"",
|
|
37
|
+
"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")"",
|
|
38
|
+
"export HOST="$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
39
|
+
"export ROOT_URL="https://$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
40
|
+
"export HOST_INTERNAL="$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
41
|
+
"export HOST_CANONICAL="$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
42
|
+
"export ROOT_URL_INTERNAL="https://$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
43
|
+
"export DEPLOY_CLOUD_RUN_PROJECT_ID="asdf"",
|
|
44
|
+
"export DEPLOY_CLOUD_RUN_REGION="asia-east1"",
|
|
45
|
+
"export GCLOUD_DEPLOY_credentialsKey="$CL_dev_www_GCLOUD_DEPLOY_credentialsKey"",
|
|
46
|
+
"export GCLOUD_RUN_canonicalHostSuffix="$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix"",
|
|
47
|
+
"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\\"]"",
|
|
48
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
49
|
+
"echo '{"id":"$(git describe --tags 2>/dev/null || git rev-parse HEAD)","time":"$CI_JOB_STARTED_AT"}' > www/__build_info.json",
|
|
32
50
|
"echo -e "\\e[0Ksection_start:$(date +%s):nodeinstall[collapsed=true]\\r\\e[0KEnsure node version"",
|
|
33
51
|
"if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi",
|
|
34
52
|
"if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi",
|
|
@@ -37,25 +55,9 @@ exports[`matches snapshot 1`] = `
|
|
|
37
55
|
],
|
|
38
56
|
"stage": "build",
|
|
39
57
|
"variables": {
|
|
40
|
-
"APP_DIR": "www",
|
|
41
|
-
"BUILD_INFO_BUILD_TIME": "01-01-2023 12:13:14",
|
|
42
|
-
"BUILD_INFO_CURRENT_VERSION": "3.2.1",
|
|
43
|
-
"BUILD_INFO_ID": "some-id",
|
|
44
|
-
"DEPLOY_CLOUD_RUN_PROJECT_ID": "asdf",
|
|
45
|
-
"DEPLOY_CLOUD_RUN_REGION": "asia-east1",
|
|
46
|
-
"ENV_SHORT": "dev",
|
|
47
|
-
"ENV_TYPE": "dev",
|
|
48
|
-
"GCLOUD_DEPLOY_credentialsKey": "$CL_dev_www_GCLOUD_DEPLOY_credentialsKey",
|
|
49
|
-
"GCLOUD_RUN_canonicalHostSuffix": "$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix",
|
|
50
|
-
"HOST": "pan-test-app-dev-www-unknown-host.example.com",
|
|
51
|
-
"HOST_CANONICAL": "pan-test-app-dev-www-unknown-host.example.com",
|
|
52
|
-
"HOST_INTERNAL": "pan-test-app-dev-www-unknown-host.example.com",
|
|
53
58
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
54
59
|
"KUBERNETES_MEMORY_LIMIT": "4Gi",
|
|
55
60
|
"KUBERNETES_MEMORY_REQUEST": "2Gi",
|
|
56
|
-
"ROOT_URL": "https://pan-test-app-dev-www-unknown-host.example.com",
|
|
57
|
-
"ROOT_URL_INTERNAL": "https://pan-test-app-dev-www-unknown-host.example.com",
|
|
58
|
-
"_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"]",
|
|
59
61
|
},
|
|
60
62
|
},
|
|
61
63
|
"www 🔨 docker | dev ": {
|
|
@@ -72,6 +74,14 @@ exports[`matches snapshot 1`] = `
|
|
|
72
74
|
],
|
|
73
75
|
},
|
|
74
76
|
"script": [
|
|
77
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
78
|
+
"export APP_DIR="www"",
|
|
79
|
+
"export DOCKER_DIR="."",
|
|
80
|
+
"export DOCKER_REGISTRY="asia-east1-docker.pkg.dev"",
|
|
81
|
+
"export DOCKER_IMAGE="asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/dev/www"",
|
|
82
|
+
"export DOCKER_CACHE_IMAGE="asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www"",
|
|
83
|
+
"export DOCKER_IMAGE_TAG="$CI_COMMIT_SHA"",
|
|
84
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
75
85
|
"ensureNginxDockerfile",
|
|
76
86
|
"echo -e "\\e[0Ksection_start:$(date +%s):docker-login[collapsed=true]\\r\\e[0KDocker Login"",
|
|
77
87
|
"gcloud auth activate-service-account --key-file=<(echo "$CL_dev_www_GCLOUD_DEPLOY_credentialsKey")",
|
|
@@ -96,17 +106,9 @@ exports[`matches snapshot 1`] = `
|
|
|
96
106
|
],
|
|
97
107
|
"stage": "build",
|
|
98
108
|
"variables": {
|
|
99
|
-
"APP_DIR": "www",
|
|
100
|
-
"DOCKERFILE_ADDITIONS": undefined,
|
|
101
|
-
"DOCKERFILE_ADDITIONS_END": undefined,
|
|
102
109
|
"DOCKER_BUILDKIT": "1",
|
|
103
|
-
"DOCKER_CACHE_IMAGE": "asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www",
|
|
104
|
-
"DOCKER_DIR": ".",
|
|
105
110
|
"DOCKER_DRIVER": "overlay2",
|
|
106
111
|
"DOCKER_HOST": "tcp://0.0.0.0:2375",
|
|
107
|
-
"DOCKER_IMAGE": "asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/dev/www",
|
|
108
|
-
"DOCKER_IMAGE_TAG": "$CI_COMMIT_SHA",
|
|
109
|
-
"DOCKER_REGISTRY": "asia-east1-docker.pkg.dev",
|
|
110
112
|
"DOCKER_TLS_CERTDIR": "",
|
|
111
113
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
112
114
|
"KUBERNETES_MEMORY_LIMIT": "2Gi",
|
|
@@ -116,15 +118,15 @@ exports[`matches snapshot 1`] = `
|
|
|
116
118
|
"www 🚀 Deploy | dev ": {
|
|
117
119
|
"allow_failure": false,
|
|
118
120
|
"artifacts": {
|
|
119
|
-
"
|
|
120
|
-
"
|
|
121
|
-
|
|
121
|
+
"reports": {
|
|
122
|
+
"dotenv": "gitlab_environment.env",
|
|
123
|
+
},
|
|
122
124
|
},
|
|
123
125
|
"environment": {
|
|
124
126
|
"auto_stop_in": "4 weeks",
|
|
125
127
|
"name": "dev/www",
|
|
126
128
|
"on_stop": "www 🛑 Stop ⚠️ | dev ",
|
|
127
|
-
"url": "
|
|
129
|
+
"url": "$CL_GITLAB_ENVIRONMENT_URL",
|
|
128
130
|
},
|
|
129
131
|
"image": "path/to/docker/gcloud:the-version",
|
|
130
132
|
"interruptible": true,
|
|
@@ -155,13 +157,71 @@ exports[`matches snapshot 1`] = `
|
|
|
155
157
|
},
|
|
156
158
|
],
|
|
157
159
|
"script": [
|
|
160
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
161
|
+
"export ENV_SHORT="dev"",
|
|
162
|
+
"export APP_DIR="www"",
|
|
163
|
+
"export ENV_TYPE="dev"",
|
|
164
|
+
"export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"",
|
|
165
|
+
"export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"",
|
|
166
|
+
"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")"",
|
|
167
|
+
"export HOST="$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
168
|
+
"export ROOT_URL="https://$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
169
|
+
"export HOST_INTERNAL="$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
170
|
+
"export HOST_CANONICAL="$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
171
|
+
"export ROOT_URL_INTERNAL="https://$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
172
|
+
"export DEPLOY_CLOUD_RUN_PROJECT_ID="asdf"",
|
|
173
|
+
"export DEPLOY_CLOUD_RUN_REGION="asia-east1"",
|
|
174
|
+
"export GCLOUD_DEPLOY_credentialsKey="$CL_dev_www_GCLOUD_DEPLOY_credentialsKey"",
|
|
175
|
+
"export GCLOUD_RUN_canonicalHostSuffix="$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix"",
|
|
176
|
+
"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\\"]"",
|
|
177
|
+
"export DOCKER_REGISTRY="asia-east1-docker.pkg.dev"",
|
|
178
|
+
"export DOCKER_IMAGE="asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/dev/www"",
|
|
179
|
+
"export DOCKER_CACHE_IMAGE="asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www"",
|
|
180
|
+
"export DOCKER_IMAGE_TAG="$CI_COMMIT_SHA"",
|
|
181
|
+
"export CLOUDSDK_CORE_DISABLE_PROMPTS="1"",
|
|
182
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
158
183
|
"echo -e "\\e[0Ksection_start:$(date +%s):prepare[collapsed=true]\\r\\e[0KPrepare..."",
|
|
159
184
|
"gcloud auth activate-service-account --key-file=<(echo "$CL_dev_www_GCLOUD_DEPLOY_credentialsKey")",
|
|
160
185
|
"export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe asdf --format="value(projectNumber)")",
|
|
161
186
|
"echo "GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER"",
|
|
162
187
|
"echo -e "\\e[0Ksection_end:$(date +%s):prepare\\r\\e[0K"",
|
|
188
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):writeenvvars[collapsed=true]\\r\\e[0KWrite env vars to file"",
|
|
189
|
+
"cat > ____envvars.yaml <<EOF
|
|
190
|
+
ENV_SHORT: |-
|
|
191
|
+
dev
|
|
192
|
+
APP_DIR: |-
|
|
193
|
+
www
|
|
194
|
+
ENV_TYPE: |-
|
|
195
|
+
dev
|
|
196
|
+
BUILD_INFO_BUILD_ID: |-
|
|
197
|
+
$(printf %s "$(git describe --tags 2>/dev/null || git rev-parse HEAD)" | sed 's/^/ /')
|
|
198
|
+
BUILD_INFO_BUILD_TIME: |-
|
|
199
|
+
$(printf %s "$CI_JOB_STARTED_AT" | sed 's/^/ /')
|
|
200
|
+
BUILD_INFO_CURRENT_VERSION: |-
|
|
201
|
+
$(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/^/ /')
|
|
202
|
+
HOST: |-
|
|
203
|
+
$(printf %s "$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
204
|
+
ROOT_URL: |-
|
|
205
|
+
$(printf %s "https://$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
206
|
+
HOST_INTERNAL: |-
|
|
207
|
+
$(printf %s "$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
208
|
+
HOST_CANONICAL: |-
|
|
209
|
+
$(printf %s "$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
210
|
+
ROOT_URL_INTERNAL: |-
|
|
211
|
+
$(printf %s "https://$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
212
|
+
DEPLOY_CLOUD_RUN_PROJECT_ID: |-
|
|
213
|
+
asdf
|
|
214
|
+
DEPLOY_CLOUD_RUN_REGION: |-
|
|
215
|
+
asia-east1
|
|
216
|
+
GCLOUD_RUN_canonicalHostSuffix: |-
|
|
217
|
+
$(printf %s "$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | sed 's/^/ /')
|
|
218
|
+
_ALL_ENV_VAR_KEYS: |-
|
|
219
|
+
["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"]
|
|
220
|
+
|
|
221
|
+
EOF
|
|
222
|
+
",
|
|
223
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):writeenvvars\\r\\e[0K"",
|
|
163
224
|
"echo -e "\\e[0Ksection_start:$(date +%s):deploy[collapsed=true]\\r\\e[0KDeploy to cloud run"",
|
|
164
|
-
"echo "$ENV_VARS" > ____envvars.yaml",
|
|
165
225
|
"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",
|
|
166
226
|
"echo -e "\\e[0Ksection_end:$(date +%s):deploy\\r\\e[0K"",
|
|
167
227
|
"echo -e "\\e[0Ksection_start:$(date +%s):cleanup[collapsed=true]\\r\\e[0KCleanup"",
|
|
@@ -170,69 +230,27 @@ exports[`matches snapshot 1`] = `
|
|
|
170
230
|
"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",
|
|
171
231
|
"echo -e "\\e[0Ksection_end:$(date +%s):cleanup\\r\\e[0K"",
|
|
172
232
|
"echo Uploading SBOM to Dependency Track",
|
|
173
|
-
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "https
|
|
174
|
-
|
|
175
|
-
"services": [
|
|
176
|
-
{
|
|
177
|
-
"command": [
|
|
178
|
-
"--tls=false",
|
|
179
|
-
],
|
|
180
|
-
"name": "docker:24.0.6-dind",
|
|
181
|
-
},
|
|
233
|
+
"/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",
|
|
234
|
+
"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",
|
|
182
235
|
],
|
|
183
236
|
"stage": "deploy dev",
|
|
184
237
|
"variables": {
|
|
185
|
-
"APP_DIR": "www",
|
|
186
|
-
"BUILD_INFO_BUILD_TIME": "01-01-2023 12:13:14",
|
|
187
|
-
"BUILD_INFO_CURRENT_VERSION": "3.2.1",
|
|
188
|
-
"BUILD_INFO_ID": "some-id",
|
|
189
|
-
"CLOUDSDK_CORE_DISABLE_PROMPTS": "1",
|
|
190
|
-
"DEPLOY_CLOUD_RUN_PROJECT_ID": "asdf",
|
|
191
|
-
"DEPLOY_CLOUD_RUN_REGION": "asia-east1",
|
|
192
|
-
"DOCKER_BUILDKIT": "1",
|
|
193
|
-
"DOCKER_CACHE_IMAGE": "asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www",
|
|
194
|
-
"DOCKER_DRIVER": "overlay2",
|
|
195
|
-
"DOCKER_HOST": "tcp://0.0.0.0:2375",
|
|
196
|
-
"DOCKER_IMAGE": "asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/dev/www",
|
|
197
|
-
"DOCKER_IMAGE_TAG": "$CI_COMMIT_SHA",
|
|
198
|
-
"DOCKER_REGISTRY": "asia-east1-docker.pkg.dev",
|
|
199
|
-
"DOCKER_TLS_CERTDIR": "",
|
|
200
|
-
"ENV_SHORT": "dev",
|
|
201
|
-
"ENV_TYPE": "dev",
|
|
202
|
-
"ENV_VARS": "ENV_SHORT: 'dev'
|
|
203
|
-
APP_DIR: 'www'
|
|
204
|
-
ENV_TYPE: 'dev'
|
|
205
|
-
BUILD_INFO_ID: 'some-id'
|
|
206
|
-
BUILD_INFO_BUILD_TIME: '01-01-2023 12:13:14'
|
|
207
|
-
BUILD_INFO_CURRENT_VERSION: '3.2.1'
|
|
208
|
-
HOST: 'pan-test-app-dev-www-unknown-host.example.com'
|
|
209
|
-
ROOT_URL: 'https://pan-test-app-dev-www-unknown-host.example.com'
|
|
210
|
-
HOST_CANONICAL: 'pan-test-app-dev-www-unknown-host.example.com'
|
|
211
|
-
ROOT_URL_INTERNAL: 'https://pan-test-app-dev-www-unknown-host.example.com'
|
|
212
|
-
HOST_INTERNAL: 'pan-test-app-dev-www-unknown-host.example.com'
|
|
213
|
-
DEPLOY_CLOUD_RUN_PROJECT_ID: 'asdf'
|
|
214
|
-
DEPLOY_CLOUD_RUN_REGION: 'asia-east1'
|
|
215
|
-
GCLOUD_RUN_canonicalHostSuffix: '$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix'
|
|
216
|
-
_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"]'
|
|
217
|
-
",
|
|
218
|
-
"GCLOUD_DEPLOY_credentialsKey": "$CL_dev_www_GCLOUD_DEPLOY_credentialsKey",
|
|
219
|
-
"GCLOUD_RUN_canonicalHostSuffix": "$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix",
|
|
220
|
-
"HOST": "pan-test-app-dev-www-unknown-host.example.com",
|
|
221
|
-
"HOST_CANONICAL": "pan-test-app-dev-www-unknown-host.example.com",
|
|
222
|
-
"HOST_INTERNAL": "pan-test-app-dev-www-unknown-host.example.com",
|
|
223
238
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
224
239
|
"KUBERNETES_MEMORY_LIMIT": "400Mi",
|
|
225
240
|
"KUBERNETES_MEMORY_REQUEST": "200Mi",
|
|
226
|
-
"ROOT_URL": "https://pan-test-app-dev-www-unknown-host.example.com",
|
|
227
|
-
"ROOT_URL_INTERNAL": "https://pan-test-app-dev-www-unknown-host.example.com",
|
|
228
|
-
"_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"]",
|
|
229
241
|
},
|
|
230
242
|
},
|
|
231
243
|
"www 🛑 Stop ⚠️ | dev ": {
|
|
244
|
+
"allow_failure": true,
|
|
245
|
+
"artifacts": {
|
|
246
|
+
"reports": {
|
|
247
|
+
"dotenv": "gitlab_environment.env",
|
|
248
|
+
},
|
|
249
|
+
},
|
|
232
250
|
"environment": {
|
|
233
251
|
"action": "stop",
|
|
234
252
|
"name": "dev/www",
|
|
235
|
-
"url": "
|
|
253
|
+
"url": "$CL_GITLAB_ENVIRONMENT_URL",
|
|
236
254
|
},
|
|
237
255
|
"image": "path/to/docker/gcloud:the-version",
|
|
238
256
|
"interruptible": true,
|
|
@@ -246,28 +264,29 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
246
264
|
},
|
|
247
265
|
"rules": [
|
|
248
266
|
{
|
|
249
|
-
"allow_failure": true,
|
|
250
267
|
"if": "$CI_COMMIT_BRANCH =~ /^[0-9]+\\.([0-9]+|x)\\.x$/",
|
|
251
268
|
"when": "on_success",
|
|
252
269
|
},
|
|
253
270
|
{
|
|
254
|
-
"allow_failure": true,
|
|
255
271
|
"when": "manual",
|
|
256
272
|
},
|
|
257
273
|
],
|
|
258
274
|
"script": [
|
|
275
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
276
|
+
"export CLOUDSDK_CORE_DISABLE_PROMPTS="1"",
|
|
277
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
259
278
|
"set +e",
|
|
260
279
|
"gcloud auth activate-service-account --key-file=<(echo "$CL_dev_www_GCLOUD_DEPLOY_credentialsKey")",
|
|
261
280
|
"gcloud run services delete pan-test-app-dev-www --project=asdf --region=asia-east1",
|
|
262
281
|
"gcloud artifacts docker images delete asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/dev/www --quiet --delete-tags",
|
|
263
282
|
"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",
|
|
264
283
|
"echo Disabling component in Dependency Track",
|
|
265
|
-
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/www" "https
|
|
284
|
+
"/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",
|
|
266
285
|
"set -e",
|
|
286
|
+
"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",
|
|
267
287
|
],
|
|
268
288
|
"stage": "stop dev",
|
|
269
289
|
"variables": {
|
|
270
|
-
"CLOUDSDK_CORE_DISABLE_PROMPTS": "1",
|
|
271
290
|
"GIT_STRATEGY": "none",
|
|
272
291
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
273
292
|
"KUBERNETES_MEMORY_LIMIT": "400Mi",
|
|
@@ -292,6 +311,8 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
292
311
|
],
|
|
293
312
|
},
|
|
294
313
|
"script": [
|
|
314
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
315
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
295
316
|
"trivy fs --quiet --format cyclonedx --output "__sbom.json" www",
|
|
296
317
|
],
|
|
297
318
|
"stage": "build",
|
|
@@ -344,7 +365,7 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
344
365
|
],
|
|
345
366
|
"variables": {
|
|
346
367
|
"FF_USE_FASTZIP": "true",
|
|
347
|
-
"GIT_DEPTH": 1,
|
|
368
|
+
"GIT_DEPTH": "1",
|
|
348
369
|
},
|
|
349
370
|
"workflow": {
|
|
350
371
|
"rules": [
|
|
@@ -397,7 +418,25 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
397
418
|
],
|
|
398
419
|
},
|
|
399
420
|
"script": [
|
|
400
|
-
"echo
|
|
421
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
422
|
+
"export ENV_SHORT="review"",
|
|
423
|
+
"export APP_DIR="www"",
|
|
424
|
+
"export ENV_TYPE="review"",
|
|
425
|
+
"export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"",
|
|
426
|
+
"export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"",
|
|
427
|
+
"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")"",
|
|
428
|
+
"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)}')"",
|
|
429
|
+
"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)}')"",
|
|
430
|
+
"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)}')"",
|
|
431
|
+
"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)}')"",
|
|
432
|
+
"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)}')"",
|
|
433
|
+
"export DEPLOY_CLOUD_RUN_PROJECT_ID="asdf"",
|
|
434
|
+
"export DEPLOY_CLOUD_RUN_REGION="asia-east1"",
|
|
435
|
+
"export GCLOUD_DEPLOY_credentialsKey="$CL_review_www_GCLOUD_DEPLOY_credentialsKey"",
|
|
436
|
+
"export GCLOUD_RUN_canonicalHostSuffix="$CL_review_www_GCLOUD_RUN_canonicalHostSuffix"",
|
|
437
|
+
"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\\"]"",
|
|
438
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
439
|
+
"echo '{"id":"$(git describe --tags 2>/dev/null || git rev-parse HEAD)","time":"$CI_JOB_STARTED_AT"}' > www/__build_info.json",
|
|
401
440
|
"echo -e "\\e[0Ksection_start:$(date +%s):nodeinstall[collapsed=true]\\r\\e[0KEnsure node version"",
|
|
402
441
|
"if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi",
|
|
403
442
|
"if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi",
|
|
@@ -406,25 +445,9 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
406
445
|
],
|
|
407
446
|
"stage": "build",
|
|
408
447
|
"variables": {
|
|
409
|
-
"APP_DIR": "www",
|
|
410
|
-
"BUILD_INFO_BUILD_TIME": "01-01-2023 12:13:14",
|
|
411
|
-
"BUILD_INFO_CURRENT_VERSION": "3.2.1",
|
|
412
|
-
"BUILD_INFO_ID": "some-id",
|
|
413
|
-
"DEPLOY_CLOUD_RUN_PROJECT_ID": "asdf",
|
|
414
|
-
"DEPLOY_CLOUD_RUN_REGION": "asia-east1",
|
|
415
|
-
"ENV_SHORT": "review",
|
|
416
|
-
"ENV_TYPE": "review",
|
|
417
|
-
"GCLOUD_DEPLOY_credentialsKey": "$CL_review_www_GCLOUD_DEPLOY_credentialsKey",
|
|
418
|
-
"GCLOUD_RUN_canonicalHostSuffix": "$CL_review_www_GCLOUD_RUN_canonicalHostSuffix",
|
|
419
|
-
"HOST": "pan-test-app-review-mr1234-www-unknown-host.example.com",
|
|
420
|
-
"HOST_CANONICAL": "pan-test-app-review-mr1234-www-unknown-host.example.com",
|
|
421
|
-
"HOST_INTERNAL": "pan-test-app-review-mr1234-www-unknown-host.example.com",
|
|
422
448
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
423
449
|
"KUBERNETES_MEMORY_LIMIT": "4Gi",
|
|
424
450
|
"KUBERNETES_MEMORY_REQUEST": "2Gi",
|
|
425
|
-
"ROOT_URL": "https://pan-test-app-review-mr1234-www-unknown-host.example.com",
|
|
426
|
-
"ROOT_URL_INTERNAL": "https://pan-test-app-review-mr1234-www-unknown-host.example.com",
|
|
427
|
-
"_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"]",
|
|
428
451
|
},
|
|
429
452
|
},
|
|
430
453
|
"www 🔨 docker | review ": {
|
|
@@ -441,6 +464,14 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
441
464
|
],
|
|
442
465
|
},
|
|
443
466
|
"script": [
|
|
467
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
468
|
+
"export APP_DIR="www"",
|
|
469
|
+
"export DOCKER_DIR="."",
|
|
470
|
+
"export DOCKER_REGISTRY="asia-east1-docker.pkg.dev"",
|
|
471
|
+
"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"; })"",
|
|
472
|
+
"export DOCKER_CACHE_IMAGE="asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www"",
|
|
473
|
+
"export DOCKER_IMAGE_TAG="$CI_COMMIT_SHA"",
|
|
474
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
444
475
|
"ensureNginxDockerfile",
|
|
445
476
|
"echo -e "\\e[0Ksection_start:$(date +%s):docker-login[collapsed=true]\\r\\e[0KDocker Login"",
|
|
446
477
|
"gcloud auth activate-service-account --key-file=<(echo "$CL_review_www_GCLOUD_DEPLOY_credentialsKey")",
|
|
@@ -465,17 +496,9 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
465
496
|
],
|
|
466
497
|
"stage": "build",
|
|
467
498
|
"variables": {
|
|
468
|
-
"APP_DIR": "www",
|
|
469
|
-
"DOCKERFILE_ADDITIONS": undefined,
|
|
470
|
-
"DOCKERFILE_ADDITIONS_END": undefined,
|
|
471
499
|
"DOCKER_BUILDKIT": "1",
|
|
472
|
-
"DOCKER_CACHE_IMAGE": "asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www",
|
|
473
|
-
"DOCKER_DIR": ".",
|
|
474
500
|
"DOCKER_DRIVER": "overlay2",
|
|
475
501
|
"DOCKER_HOST": "tcp://0.0.0.0:2375",
|
|
476
|
-
"DOCKER_IMAGE": "asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/review/www/mr1234",
|
|
477
|
-
"DOCKER_IMAGE_TAG": "$CI_COMMIT_SHA",
|
|
478
|
-
"DOCKER_REGISTRY": "asia-east1-docker.pkg.dev",
|
|
479
502
|
"DOCKER_TLS_CERTDIR": "",
|
|
480
503
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
481
504
|
"KUBERNETES_MEMORY_LIMIT": "2Gi",
|
|
@@ -485,15 +508,15 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
485
508
|
"www 🚀 Deploy | review ": {
|
|
486
509
|
"allow_failure": false,
|
|
487
510
|
"artifacts": {
|
|
488
|
-
"
|
|
489
|
-
"
|
|
490
|
-
|
|
511
|
+
"reports": {
|
|
512
|
+
"dotenv": "gitlab_environment.env",
|
|
513
|
+
},
|
|
491
514
|
},
|
|
492
515
|
"environment": {
|
|
493
516
|
"auto_stop_in": "1 week",
|
|
494
|
-
"name": "review/
|
|
517
|
+
"name": "review/$CI_COMMIT_REF_NAME/www",
|
|
495
518
|
"on_stop": "www 🛑 Stop ⚠️ | review ",
|
|
496
|
-
"url": "
|
|
519
|
+
"url": "$CL_GITLAB_ENVIRONMENT_URL",
|
|
497
520
|
},
|
|
498
521
|
"image": "path/to/docker/gcloud:the-version",
|
|
499
522
|
"interruptible": true,
|
|
@@ -524,87 +547,103 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
524
547
|
},
|
|
525
548
|
],
|
|
526
549
|
"script": [
|
|
550
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
551
|
+
"export ENV_SHORT="review"",
|
|
552
|
+
"export APP_DIR="www"",
|
|
553
|
+
"export ENV_TYPE="review"",
|
|
554
|
+
"export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"",
|
|
555
|
+
"export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"",
|
|
556
|
+
"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")"",
|
|
557
|
+
"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)}')"",
|
|
558
|
+
"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)}')"",
|
|
559
|
+
"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)}')"",
|
|
560
|
+
"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)}')"",
|
|
561
|
+
"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)}')"",
|
|
562
|
+
"export DEPLOY_CLOUD_RUN_PROJECT_ID="asdf"",
|
|
563
|
+
"export DEPLOY_CLOUD_RUN_REGION="asia-east1"",
|
|
564
|
+
"export GCLOUD_DEPLOY_credentialsKey="$CL_review_www_GCLOUD_DEPLOY_credentialsKey"",
|
|
565
|
+
"export GCLOUD_RUN_canonicalHostSuffix="$CL_review_www_GCLOUD_RUN_canonicalHostSuffix"",
|
|
566
|
+
"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\\"]"",
|
|
567
|
+
"export DOCKER_REGISTRY="asia-east1-docker.pkg.dev"",
|
|
568
|
+
"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"; })"",
|
|
569
|
+
"export DOCKER_CACHE_IMAGE="asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www"",
|
|
570
|
+
"export DOCKER_IMAGE_TAG="$CI_COMMIT_SHA"",
|
|
571
|
+
"export CLOUDSDK_CORE_DISABLE_PROMPTS="1"",
|
|
572
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
527
573
|
"echo -e "\\e[0Ksection_start:$(date +%s):prepare[collapsed=true]\\r\\e[0KPrepare..."",
|
|
528
574
|
"gcloud auth activate-service-account --key-file=<(echo "$CL_review_www_GCLOUD_DEPLOY_credentialsKey")",
|
|
529
575
|
"export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe asdf --format="value(projectNumber)")",
|
|
530
576
|
"echo "GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER"",
|
|
531
577
|
"echo -e "\\e[0Ksection_end:$(date +%s):prepare\\r\\e[0K"",
|
|
578
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):writeenvvars[collapsed=true]\\r\\e[0KWrite env vars to file"",
|
|
579
|
+
"cat > ____envvars.yaml <<EOF
|
|
580
|
+
ENV_SHORT: |-
|
|
581
|
+
review
|
|
582
|
+
APP_DIR: |-
|
|
583
|
+
www
|
|
584
|
+
ENV_TYPE: |-
|
|
585
|
+
review
|
|
586
|
+
BUILD_INFO_BUILD_ID: |-
|
|
587
|
+
$(printf %s "$(git describe --tags 2>/dev/null || git rev-parse HEAD)" | sed 's/^/ /')
|
|
588
|
+
BUILD_INFO_BUILD_TIME: |-
|
|
589
|
+
$(printf %s "$CI_JOB_STARTED_AT" | sed 's/^/ /')
|
|
590
|
+
BUILD_INFO_CURRENT_VERSION: |-
|
|
591
|
+
$(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/^/ /')
|
|
592
|
+
HOST: |-
|
|
593
|
+
$(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/^/ /')
|
|
594
|
+
ROOT_URL: |-
|
|
595
|
+
$(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/^/ /')
|
|
596
|
+
HOST_INTERNAL: |-
|
|
597
|
+
$(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/^/ /')
|
|
598
|
+
HOST_CANONICAL: |-
|
|
599
|
+
$(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/^/ /')
|
|
600
|
+
ROOT_URL_INTERNAL: |-
|
|
601
|
+
$(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/^/ /')
|
|
602
|
+
DEPLOY_CLOUD_RUN_PROJECT_ID: |-
|
|
603
|
+
asdf
|
|
604
|
+
DEPLOY_CLOUD_RUN_REGION: |-
|
|
605
|
+
asia-east1
|
|
606
|
+
GCLOUD_RUN_canonicalHostSuffix: |-
|
|
607
|
+
$(printf %s "$CL_review_www_GCLOUD_RUN_canonicalHostSuffix" | sed 's/^/ /')
|
|
608
|
+
_ALL_ENV_VAR_KEYS: |-
|
|
609
|
+
["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"]
|
|
610
|
+
|
|
611
|
+
EOF
|
|
612
|
+
",
|
|
613
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):writeenvvars\\r\\e[0K"",
|
|
532
614
|
"echo -e "\\e[0Ksection_start:$(date +%s):deploy[collapsed=true]\\r\\e[0KDeploy to cloud run"",
|
|
533
|
-
"echo "$
|
|
534
|
-
"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",
|
|
615
|
+
"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",
|
|
535
616
|
"echo -e "\\e[0Ksection_end:$(date +%s):deploy\\r\\e[0K"",
|
|
536
617
|
"echo -e "\\e[0Ksection_start:$(date +%s):cleanup[collapsed=true]\\r\\e[0KCleanup"",
|
|
537
|
-
"gcloud run revisions list --project=asdf --region=asia-east1 --service
|
|
538
|
-
"gcloud artifacts docker images list asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/review/www
|
|
618
|
+
"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",
|
|
619
|
+
"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",
|
|
539
620
|
"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",
|
|
540
621
|
"set +e",
|
|
541
622
|
"gcloud artifacts docker images delete asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/review/www --quiet --delete-tags",
|
|
542
623
|
"set -e",
|
|
543
624
|
"echo -e "\\e[0Ksection_end:$(date +%s):cleanup\\r\\e[0K"",
|
|
544
625
|
"echo Uploading SBOM to Dependency Track",
|
|
545
|
-
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "https
|
|
546
|
-
|
|
547
|
-
"services": [
|
|
548
|
-
{
|
|
549
|
-
"command": [
|
|
550
|
-
"--tls=false",
|
|
551
|
-
],
|
|
552
|
-
"name": "docker:24.0.6-dind",
|
|
553
|
-
},
|
|
626
|
+
"/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",
|
|
627
|
+
"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",
|
|
554
628
|
],
|
|
555
629
|
"stage": "deploy review",
|
|
556
630
|
"variables": {
|
|
557
|
-
"APP_DIR": "www",
|
|
558
|
-
"BUILD_INFO_BUILD_TIME": "01-01-2023 12:13:14",
|
|
559
|
-
"BUILD_INFO_CURRENT_VERSION": "3.2.1",
|
|
560
|
-
"BUILD_INFO_ID": "some-id",
|
|
561
|
-
"CLOUDSDK_CORE_DISABLE_PROMPTS": "1",
|
|
562
|
-
"DEPLOY_CLOUD_RUN_PROJECT_ID": "asdf",
|
|
563
|
-
"DEPLOY_CLOUD_RUN_REGION": "asia-east1",
|
|
564
|
-
"DOCKER_BUILDKIT": "1",
|
|
565
|
-
"DOCKER_CACHE_IMAGE": "asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www",
|
|
566
|
-
"DOCKER_DRIVER": "overlay2",
|
|
567
|
-
"DOCKER_HOST": "tcp://0.0.0.0:2375",
|
|
568
|
-
"DOCKER_IMAGE": "asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/review/www/mr1234",
|
|
569
|
-
"DOCKER_IMAGE_TAG": "$CI_COMMIT_SHA",
|
|
570
|
-
"DOCKER_REGISTRY": "asia-east1-docker.pkg.dev",
|
|
571
|
-
"DOCKER_TLS_CERTDIR": "",
|
|
572
|
-
"ENV_SHORT": "review",
|
|
573
|
-
"ENV_TYPE": "review",
|
|
574
|
-
"ENV_VARS": "ENV_SHORT: 'review'
|
|
575
|
-
APP_DIR: 'www'
|
|
576
|
-
ENV_TYPE: 'review'
|
|
577
|
-
BUILD_INFO_ID: 'some-id'
|
|
578
|
-
BUILD_INFO_BUILD_TIME: '01-01-2023 12:13:14'
|
|
579
|
-
BUILD_INFO_CURRENT_VERSION: '3.2.1'
|
|
580
|
-
HOST: 'pan-test-app-review-mr1234-www-unknown-host.example.com'
|
|
581
|
-
ROOT_URL: 'https://pan-test-app-review-mr1234-www-unknown-host.example.com'
|
|
582
|
-
HOST_CANONICAL: 'pan-test-app-review-mr1234-www-unknown-host.example.com'
|
|
583
|
-
ROOT_URL_INTERNAL: 'https://pan-test-app-review-mr1234-www-unknown-host.example.com'
|
|
584
|
-
HOST_INTERNAL: 'pan-test-app-review-mr1234-www-unknown-host.example.com'
|
|
585
|
-
DEPLOY_CLOUD_RUN_PROJECT_ID: 'asdf'
|
|
586
|
-
DEPLOY_CLOUD_RUN_REGION: 'asia-east1'
|
|
587
|
-
GCLOUD_RUN_canonicalHostSuffix: '$CL_review_www_GCLOUD_RUN_canonicalHostSuffix'
|
|
588
|
-
_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"]'
|
|
589
|
-
",
|
|
590
|
-
"GCLOUD_DEPLOY_credentialsKey": "$CL_review_www_GCLOUD_DEPLOY_credentialsKey",
|
|
591
|
-
"GCLOUD_RUN_canonicalHostSuffix": "$CL_review_www_GCLOUD_RUN_canonicalHostSuffix",
|
|
592
|
-
"HOST": "pan-test-app-review-mr1234-www-unknown-host.example.com",
|
|
593
|
-
"HOST_CANONICAL": "pan-test-app-review-mr1234-www-unknown-host.example.com",
|
|
594
|
-
"HOST_INTERNAL": "pan-test-app-review-mr1234-www-unknown-host.example.com",
|
|
595
631
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
596
632
|
"KUBERNETES_MEMORY_LIMIT": "400Mi",
|
|
597
633
|
"KUBERNETES_MEMORY_REQUEST": "200Mi",
|
|
598
|
-
"ROOT_URL": "https://pan-test-app-review-mr1234-www-unknown-host.example.com",
|
|
599
|
-
"ROOT_URL_INTERNAL": "https://pan-test-app-review-mr1234-www-unknown-host.example.com",
|
|
600
|
-
"_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"]",
|
|
601
634
|
},
|
|
602
635
|
},
|
|
603
636
|
"www 🛑 Stop ⚠️ | review ": {
|
|
637
|
+
"allow_failure": true,
|
|
638
|
+
"artifacts": {
|
|
639
|
+
"reports": {
|
|
640
|
+
"dotenv": "gitlab_environment.env",
|
|
641
|
+
},
|
|
642
|
+
},
|
|
604
643
|
"environment": {
|
|
605
644
|
"action": "stop",
|
|
606
|
-
"name": "review/
|
|
607
|
-
"url": "
|
|
645
|
+
"name": "review/$CI_COMMIT_REF_NAME/www",
|
|
646
|
+
"url": "$CL_GITLAB_ENVIRONMENT_URL",
|
|
608
647
|
},
|
|
609
648
|
"image": "path/to/docker/gcloud:the-version",
|
|
610
649
|
"interruptible": true,
|
|
@@ -618,31 +657,32 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
618
657
|
},
|
|
619
658
|
"rules": [
|
|
620
659
|
{
|
|
621
|
-
"allow_failure": true,
|
|
622
660
|
"if": "$CI_COMMIT_BRANCH =~ /^[0-9]+\\.([0-9]+|x)\\.x$/",
|
|
623
661
|
"when": "on_success",
|
|
624
662
|
},
|
|
625
663
|
{
|
|
626
|
-
"allow_failure": true,
|
|
627
664
|
"when": "manual",
|
|
628
665
|
},
|
|
629
666
|
],
|
|
630
667
|
"script": [
|
|
668
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
669
|
+
"export CLOUDSDK_CORE_DISABLE_PROMPTS="1"",
|
|
670
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
631
671
|
"set +e",
|
|
632
672
|
"gcloud auth activate-service-account --key-file=<(echo "$CL_review_www_GCLOUD_DEPLOY_credentialsKey")",
|
|
633
|
-
"gcloud run services delete pan-test-app-review-
|
|
634
|
-
"gcloud artifacts docker images delete asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/review/www
|
|
673
|
+
"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",
|
|
674
|
+
"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",
|
|
635
675
|
"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",
|
|
636
676
|
"set +e",
|
|
637
677
|
"gcloud artifacts docker images delete asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/review/www --quiet --delete-tags",
|
|
638
678
|
"set -e",
|
|
639
679
|
"echo Disabling component in Dependency Track",
|
|
640
|
-
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/www" "https
|
|
680
|
+
"/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",
|
|
641
681
|
"set -e",
|
|
682
|
+
"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",
|
|
642
683
|
],
|
|
643
684
|
"stage": "stop review",
|
|
644
685
|
"variables": {
|
|
645
|
-
"CLOUDSDK_CORE_DISABLE_PROMPTS": "1",
|
|
646
686
|
"GIT_STRATEGY": "none",
|
|
647
687
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
648
688
|
"KUBERNETES_MEMORY_LIMIT": "400Mi",
|
|
@@ -667,6 +707,8 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
667
707
|
],
|
|
668
708
|
},
|
|
669
709
|
"script": [
|
|
710
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
711
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
670
712
|
"trivy fs --quiet --format cyclonedx --output "__sbom.json" www",
|
|
671
713
|
],
|
|
672
714
|
"stage": "build",
|
|
@@ -719,7 +761,7 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
719
761
|
],
|
|
720
762
|
"variables": {
|
|
721
763
|
"FF_USE_FASTZIP": "true",
|
|
722
|
-
"GIT_DEPTH": 1,
|
|
764
|
+
"GIT_DEPTH": "1",
|
|
723
765
|
},
|
|
724
766
|
"workflow": {
|
|
725
767
|
"rules": [
|
|
@@ -772,7 +814,25 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
772
814
|
],
|
|
773
815
|
},
|
|
774
816
|
"script": [
|
|
775
|
-
"echo
|
|
817
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
818
|
+
"export ENV_SHORT="prod"",
|
|
819
|
+
"export APP_DIR="www"",
|
|
820
|
+
"export ENV_TYPE="prod"",
|
|
821
|
+
"export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"",
|
|
822
|
+
"export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"",
|
|
823
|
+
"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")"",
|
|
824
|
+
"export HOST="$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
825
|
+
"export ROOT_URL="https://$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
826
|
+
"export HOST_INTERNAL="$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
827
|
+
"export HOST_CANONICAL="$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
828
|
+
"export ROOT_URL_INTERNAL="https://$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
829
|
+
"export DEPLOY_CLOUD_RUN_PROJECT_ID="asdf"",
|
|
830
|
+
"export DEPLOY_CLOUD_RUN_REGION="asia-east1"",
|
|
831
|
+
"export GCLOUD_DEPLOY_credentialsKey="$CL_prod_www_GCLOUD_DEPLOY_credentialsKey"",
|
|
832
|
+
"export GCLOUD_RUN_canonicalHostSuffix="$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix"",
|
|
833
|
+
"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\\"]"",
|
|
834
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
835
|
+
"echo '{"id":"$(git describe --tags 2>/dev/null || git rev-parse HEAD)","time":"$CI_JOB_STARTED_AT"}' > www/__build_info.json",
|
|
776
836
|
"echo -e "\\e[0Ksection_start:$(date +%s):nodeinstall[collapsed=true]\\r\\e[0KEnsure node version"",
|
|
777
837
|
"if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi",
|
|
778
838
|
"if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi",
|
|
@@ -781,25 +841,9 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
781
841
|
],
|
|
782
842
|
"stage": "build",
|
|
783
843
|
"variables": {
|
|
784
|
-
"APP_DIR": "www",
|
|
785
|
-
"BUILD_INFO_BUILD_TIME": "01-01-2023 12:13:14",
|
|
786
|
-
"BUILD_INFO_CURRENT_VERSION": "3.2.1",
|
|
787
|
-
"BUILD_INFO_ID": "some-id",
|
|
788
|
-
"DEPLOY_CLOUD_RUN_PROJECT_ID": "asdf",
|
|
789
|
-
"DEPLOY_CLOUD_RUN_REGION": "asia-east1",
|
|
790
|
-
"ENV_SHORT": "prod",
|
|
791
|
-
"ENV_TYPE": "prod",
|
|
792
|
-
"GCLOUD_DEPLOY_credentialsKey": "$CL_prod_www_GCLOUD_DEPLOY_credentialsKey",
|
|
793
|
-
"GCLOUD_RUN_canonicalHostSuffix": "$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix",
|
|
794
|
-
"HOST": "pan-test-app-prod-www-unknown-host.example.com",
|
|
795
|
-
"HOST_CANONICAL": "pan-test-app-prod-www-unknown-host.example.com",
|
|
796
|
-
"HOST_INTERNAL": "pan-test-app-prod-www-unknown-host.example.com",
|
|
797
844
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
798
845
|
"KUBERNETES_MEMORY_LIMIT": "4Gi",
|
|
799
846
|
"KUBERNETES_MEMORY_REQUEST": "2Gi",
|
|
800
|
-
"ROOT_URL": "https://pan-test-app-prod-www-unknown-host.example.com",
|
|
801
|
-
"ROOT_URL_INTERNAL": "https://pan-test-app-prod-www-unknown-host.example.com",
|
|
802
|
-
"_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"]",
|
|
803
847
|
},
|
|
804
848
|
},
|
|
805
849
|
"www 🔨 app | stage ": {
|
|
@@ -825,7 +869,25 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
825
869
|
],
|
|
826
870
|
},
|
|
827
871
|
"script": [
|
|
828
|
-
"echo
|
|
872
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
873
|
+
"export ENV_SHORT="stage"",
|
|
874
|
+
"export APP_DIR="www"",
|
|
875
|
+
"export ENV_TYPE="stage"",
|
|
876
|
+
"export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"",
|
|
877
|
+
"export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"",
|
|
878
|
+
"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")"",
|
|
879
|
+
"export HOST="$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
880
|
+
"export ROOT_URL="https://$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
881
|
+
"export HOST_INTERNAL="$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
882
|
+
"export HOST_CANONICAL="$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
883
|
+
"export ROOT_URL_INTERNAL="https://$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
884
|
+
"export DEPLOY_CLOUD_RUN_PROJECT_ID="asdf"",
|
|
885
|
+
"export DEPLOY_CLOUD_RUN_REGION="asia-east1"",
|
|
886
|
+
"export GCLOUD_DEPLOY_credentialsKey="$CL_stage_www_GCLOUD_DEPLOY_credentialsKey"",
|
|
887
|
+
"export GCLOUD_RUN_canonicalHostSuffix="$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix"",
|
|
888
|
+
"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\\"]"",
|
|
889
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
890
|
+
"echo '{"id":"$(git describe --tags 2>/dev/null || git rev-parse HEAD)","time":"$CI_JOB_STARTED_AT"}' > www/__build_info.json",
|
|
829
891
|
"echo -e "\\e[0Ksection_start:$(date +%s):nodeinstall[collapsed=true]\\r\\e[0KEnsure node version"",
|
|
830
892
|
"if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi",
|
|
831
893
|
"if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi",
|
|
@@ -834,25 +896,9 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
834
896
|
],
|
|
835
897
|
"stage": "build",
|
|
836
898
|
"variables": {
|
|
837
|
-
"APP_DIR": "www",
|
|
838
|
-
"BUILD_INFO_BUILD_TIME": "01-01-2023 12:13:14",
|
|
839
|
-
"BUILD_INFO_CURRENT_VERSION": "3.2.1",
|
|
840
|
-
"BUILD_INFO_ID": "some-id",
|
|
841
|
-
"DEPLOY_CLOUD_RUN_PROJECT_ID": "asdf",
|
|
842
|
-
"DEPLOY_CLOUD_RUN_REGION": "asia-east1",
|
|
843
|
-
"ENV_SHORT": "stage",
|
|
844
|
-
"ENV_TYPE": "stage",
|
|
845
|
-
"GCLOUD_DEPLOY_credentialsKey": "$CL_stage_www_GCLOUD_DEPLOY_credentialsKey",
|
|
846
|
-
"GCLOUD_RUN_canonicalHostSuffix": "$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix",
|
|
847
|
-
"HOST": "pan-test-app-stage-www-unknown-host.example.com",
|
|
848
|
-
"HOST_CANONICAL": "pan-test-app-stage-www-unknown-host.example.com",
|
|
849
|
-
"HOST_INTERNAL": "pan-test-app-stage-www-unknown-host.example.com",
|
|
850
899
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
851
900
|
"KUBERNETES_MEMORY_LIMIT": "4Gi",
|
|
852
901
|
"KUBERNETES_MEMORY_REQUEST": "2Gi",
|
|
853
|
-
"ROOT_URL": "https://pan-test-app-stage-www-unknown-host.example.com",
|
|
854
|
-
"ROOT_URL_INTERNAL": "https://pan-test-app-stage-www-unknown-host.example.com",
|
|
855
|
-
"_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"]",
|
|
856
902
|
},
|
|
857
903
|
},
|
|
858
904
|
"www 🔨 docker | prod ": {
|
|
@@ -869,6 +915,14 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
869
915
|
],
|
|
870
916
|
},
|
|
871
917
|
"script": [
|
|
918
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
919
|
+
"export APP_DIR="www"",
|
|
920
|
+
"export DOCKER_DIR="."",
|
|
921
|
+
"export DOCKER_REGISTRY="asia-east1-docker.pkg.dev"",
|
|
922
|
+
"export DOCKER_IMAGE="asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/prod/www"",
|
|
923
|
+
"export DOCKER_CACHE_IMAGE="asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www"",
|
|
924
|
+
"export DOCKER_IMAGE_TAG="$CI_COMMIT_SHA"",
|
|
925
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
872
926
|
"ensureNginxDockerfile",
|
|
873
927
|
"echo -e "\\e[0Ksection_start:$(date +%s):docker-login[collapsed=true]\\r\\e[0KDocker Login"",
|
|
874
928
|
"gcloud auth activate-service-account --key-file=<(echo "$CL_prod_www_GCLOUD_DEPLOY_credentialsKey")",
|
|
@@ -893,17 +947,9 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
893
947
|
],
|
|
894
948
|
"stage": "build",
|
|
895
949
|
"variables": {
|
|
896
|
-
"APP_DIR": "www",
|
|
897
|
-
"DOCKERFILE_ADDITIONS": undefined,
|
|
898
|
-
"DOCKERFILE_ADDITIONS_END": undefined,
|
|
899
950
|
"DOCKER_BUILDKIT": "1",
|
|
900
|
-
"DOCKER_CACHE_IMAGE": "asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www",
|
|
901
|
-
"DOCKER_DIR": ".",
|
|
902
951
|
"DOCKER_DRIVER": "overlay2",
|
|
903
952
|
"DOCKER_HOST": "tcp://0.0.0.0:2375",
|
|
904
|
-
"DOCKER_IMAGE": "asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/prod/www",
|
|
905
|
-
"DOCKER_IMAGE_TAG": "$CI_COMMIT_SHA",
|
|
906
|
-
"DOCKER_REGISTRY": "asia-east1-docker.pkg.dev",
|
|
907
953
|
"DOCKER_TLS_CERTDIR": "",
|
|
908
954
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
909
955
|
"KUBERNETES_MEMORY_LIMIT": "2Gi",
|
|
@@ -924,6 +970,14 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
924
970
|
],
|
|
925
971
|
},
|
|
926
972
|
"script": [
|
|
973
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
974
|
+
"export APP_DIR="www"",
|
|
975
|
+
"export DOCKER_DIR="."",
|
|
976
|
+
"export DOCKER_REGISTRY="asia-east1-docker.pkg.dev"",
|
|
977
|
+
"export DOCKER_IMAGE="asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/stage/www"",
|
|
978
|
+
"export DOCKER_CACHE_IMAGE="asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www"",
|
|
979
|
+
"export DOCKER_IMAGE_TAG="$CI_COMMIT_SHA"",
|
|
980
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
927
981
|
"ensureNginxDockerfile",
|
|
928
982
|
"echo -e "\\e[0Ksection_start:$(date +%s):docker-login[collapsed=true]\\r\\e[0KDocker Login"",
|
|
929
983
|
"gcloud auth activate-service-account --key-file=<(echo "$CL_stage_www_GCLOUD_DEPLOY_credentialsKey")",
|
|
@@ -948,17 +1002,9 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
948
1002
|
],
|
|
949
1003
|
"stage": "build",
|
|
950
1004
|
"variables": {
|
|
951
|
-
"APP_DIR": "www",
|
|
952
|
-
"DOCKERFILE_ADDITIONS": undefined,
|
|
953
|
-
"DOCKERFILE_ADDITIONS_END": undefined,
|
|
954
1005
|
"DOCKER_BUILDKIT": "1",
|
|
955
|
-
"DOCKER_CACHE_IMAGE": "asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www",
|
|
956
|
-
"DOCKER_DIR": ".",
|
|
957
1006
|
"DOCKER_DRIVER": "overlay2",
|
|
958
1007
|
"DOCKER_HOST": "tcp://0.0.0.0:2375",
|
|
959
|
-
"DOCKER_IMAGE": "asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/stage/www",
|
|
960
|
-
"DOCKER_IMAGE_TAG": "$CI_COMMIT_SHA",
|
|
961
|
-
"DOCKER_REGISTRY": "asia-east1-docker.pkg.dev",
|
|
962
1008
|
"DOCKER_TLS_CERTDIR": "",
|
|
963
1009
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
964
1010
|
"KUBERNETES_MEMORY_LIMIT": "2Gi",
|
|
@@ -968,15 +1014,15 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
968
1014
|
"www 🚀 Deploy | prod ": {
|
|
969
1015
|
"allow_failure": true,
|
|
970
1016
|
"artifacts": {
|
|
971
|
-
"
|
|
972
|
-
"
|
|
973
|
-
|
|
1017
|
+
"reports": {
|
|
1018
|
+
"dotenv": "gitlab_environment.env",
|
|
1019
|
+
},
|
|
974
1020
|
},
|
|
975
1021
|
"environment": {
|
|
976
1022
|
"auto_stop_in": undefined,
|
|
977
1023
|
"name": "prod/www",
|
|
978
1024
|
"on_stop": "www 🛑 Stop ⚠️ | prod ",
|
|
979
|
-
"url": "
|
|
1025
|
+
"url": "$CL_GITLAB_ENVIRONMENT_URL",
|
|
980
1026
|
},
|
|
981
1027
|
"image": "path/to/docker/gcloud:the-version",
|
|
982
1028
|
"interruptible": true,
|
|
@@ -1007,13 +1053,71 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
1007
1053
|
},
|
|
1008
1054
|
],
|
|
1009
1055
|
"script": [
|
|
1056
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
1057
|
+
"export ENV_SHORT="prod"",
|
|
1058
|
+
"export APP_DIR="www"",
|
|
1059
|
+
"export ENV_TYPE="prod"",
|
|
1060
|
+
"export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"",
|
|
1061
|
+
"export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"",
|
|
1062
|
+
"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")"",
|
|
1063
|
+
"export HOST="$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
1064
|
+
"export ROOT_URL="https://$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
1065
|
+
"export HOST_INTERNAL="$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
1066
|
+
"export HOST_CANONICAL="$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
1067
|
+
"export ROOT_URL_INTERNAL="https://$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
1068
|
+
"export DEPLOY_CLOUD_RUN_PROJECT_ID="asdf"",
|
|
1069
|
+
"export DEPLOY_CLOUD_RUN_REGION="asia-east1"",
|
|
1070
|
+
"export GCLOUD_DEPLOY_credentialsKey="$CL_prod_www_GCLOUD_DEPLOY_credentialsKey"",
|
|
1071
|
+
"export GCLOUD_RUN_canonicalHostSuffix="$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix"",
|
|
1072
|
+
"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\\"]"",
|
|
1073
|
+
"export DOCKER_REGISTRY="asia-east1-docker.pkg.dev"",
|
|
1074
|
+
"export DOCKER_IMAGE="asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/prod/www"",
|
|
1075
|
+
"export DOCKER_CACHE_IMAGE="asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www"",
|
|
1076
|
+
"export DOCKER_IMAGE_TAG="$CI_COMMIT_SHA"",
|
|
1077
|
+
"export CLOUDSDK_CORE_DISABLE_PROMPTS="1"",
|
|
1078
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
1010
1079
|
"echo -e "\\e[0Ksection_start:$(date +%s):prepare[collapsed=true]\\r\\e[0KPrepare..."",
|
|
1011
1080
|
"gcloud auth activate-service-account --key-file=<(echo "$CL_prod_www_GCLOUD_DEPLOY_credentialsKey")",
|
|
1012
1081
|
"export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe asdf --format="value(projectNumber)")",
|
|
1013
1082
|
"echo "GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER"",
|
|
1014
1083
|
"echo -e "\\e[0Ksection_end:$(date +%s):prepare\\r\\e[0K"",
|
|
1084
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):writeenvvars[collapsed=true]\\r\\e[0KWrite env vars to file"",
|
|
1085
|
+
"cat > ____envvars.yaml <<EOF
|
|
1086
|
+
ENV_SHORT: |-
|
|
1087
|
+
prod
|
|
1088
|
+
APP_DIR: |-
|
|
1089
|
+
www
|
|
1090
|
+
ENV_TYPE: |-
|
|
1091
|
+
prod
|
|
1092
|
+
BUILD_INFO_BUILD_ID: |-
|
|
1093
|
+
$(printf %s "$(git describe --tags 2>/dev/null || git rev-parse HEAD)" | sed 's/^/ /')
|
|
1094
|
+
BUILD_INFO_BUILD_TIME: |-
|
|
1095
|
+
$(printf %s "$CI_JOB_STARTED_AT" | sed 's/^/ /')
|
|
1096
|
+
BUILD_INFO_CURRENT_VERSION: |-
|
|
1097
|
+
$(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/^/ /')
|
|
1098
|
+
HOST: |-
|
|
1099
|
+
$(printf %s "$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
1100
|
+
ROOT_URL: |-
|
|
1101
|
+
$(printf %s "https://$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
1102
|
+
HOST_INTERNAL: |-
|
|
1103
|
+
$(printf %s "$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
1104
|
+
HOST_CANONICAL: |-
|
|
1105
|
+
$(printf %s "$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
1106
|
+
ROOT_URL_INTERNAL: |-
|
|
1107
|
+
$(printf %s "https://$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
1108
|
+
DEPLOY_CLOUD_RUN_PROJECT_ID: |-
|
|
1109
|
+
asdf
|
|
1110
|
+
DEPLOY_CLOUD_RUN_REGION: |-
|
|
1111
|
+
asia-east1
|
|
1112
|
+
GCLOUD_RUN_canonicalHostSuffix: |-
|
|
1113
|
+
$(printf %s "$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | sed 's/^/ /')
|
|
1114
|
+
_ALL_ENV_VAR_KEYS: |-
|
|
1115
|
+
["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"]
|
|
1116
|
+
|
|
1117
|
+
EOF
|
|
1118
|
+
",
|
|
1119
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):writeenvvars\\r\\e[0K"",
|
|
1015
1120
|
"echo -e "\\e[0Ksection_start:$(date +%s):deploy[collapsed=true]\\r\\e[0KDeploy to cloud run"",
|
|
1016
|
-
"echo "$ENV_VARS" > ____envvars.yaml",
|
|
1017
1121
|
"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",
|
|
1018
1122
|
"echo -e "\\e[0Ksection_end:$(date +%s):deploy\\r\\e[0K"",
|
|
1019
1123
|
"echo -e "\\e[0Ksection_start:$(date +%s):cleanup[collapsed=true]\\r\\e[0KCleanup"",
|
|
@@ -1022,76 +1126,28 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
1022
1126
|
"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",
|
|
1023
1127
|
"echo -e "\\e[0Ksection_end:$(date +%s):cleanup\\r\\e[0K"",
|
|
1024
1128
|
"echo Uploading SBOM to Dependency Track",
|
|
1025
|
-
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "https
|
|
1026
|
-
|
|
1027
|
-
"services": [
|
|
1028
|
-
{
|
|
1029
|
-
"command": [
|
|
1030
|
-
"--tls=false",
|
|
1031
|
-
],
|
|
1032
|
-
"name": "docker:24.0.6-dind",
|
|
1033
|
-
},
|
|
1129
|
+
"/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",
|
|
1130
|
+
"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",
|
|
1034
1131
|
],
|
|
1035
1132
|
"stage": "deploy prod",
|
|
1036
1133
|
"variables": {
|
|
1037
|
-
"APP_DIR": "www",
|
|
1038
|
-
"BUILD_INFO_BUILD_TIME": "01-01-2023 12:13:14",
|
|
1039
|
-
"BUILD_INFO_CURRENT_VERSION": "3.2.1",
|
|
1040
|
-
"BUILD_INFO_ID": "some-id",
|
|
1041
|
-
"CLOUDSDK_CORE_DISABLE_PROMPTS": "1",
|
|
1042
|
-
"DEPLOY_CLOUD_RUN_PROJECT_ID": "asdf",
|
|
1043
|
-
"DEPLOY_CLOUD_RUN_REGION": "asia-east1",
|
|
1044
|
-
"DOCKER_BUILDKIT": "1",
|
|
1045
|
-
"DOCKER_CACHE_IMAGE": "asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www",
|
|
1046
|
-
"DOCKER_DRIVER": "overlay2",
|
|
1047
|
-
"DOCKER_HOST": "tcp://0.0.0.0:2375",
|
|
1048
|
-
"DOCKER_IMAGE": "asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/prod/www",
|
|
1049
|
-
"DOCKER_IMAGE_TAG": "$CI_COMMIT_SHA",
|
|
1050
|
-
"DOCKER_REGISTRY": "asia-east1-docker.pkg.dev",
|
|
1051
|
-
"DOCKER_TLS_CERTDIR": "",
|
|
1052
|
-
"ENV_SHORT": "prod",
|
|
1053
|
-
"ENV_TYPE": "prod",
|
|
1054
|
-
"ENV_VARS": "ENV_SHORT: 'prod'
|
|
1055
|
-
APP_DIR: 'www'
|
|
1056
|
-
ENV_TYPE: 'prod'
|
|
1057
|
-
BUILD_INFO_ID: 'some-id'
|
|
1058
|
-
BUILD_INFO_BUILD_TIME: '01-01-2023 12:13:14'
|
|
1059
|
-
BUILD_INFO_CURRENT_VERSION: '3.2.1'
|
|
1060
|
-
HOST: 'pan-test-app-prod-www-unknown-host.example.com'
|
|
1061
|
-
ROOT_URL: 'https://pan-test-app-prod-www-unknown-host.example.com'
|
|
1062
|
-
HOST_CANONICAL: 'pan-test-app-prod-www-unknown-host.example.com'
|
|
1063
|
-
ROOT_URL_INTERNAL: 'https://pan-test-app-prod-www-unknown-host.example.com'
|
|
1064
|
-
HOST_INTERNAL: 'pan-test-app-prod-www-unknown-host.example.com'
|
|
1065
|
-
DEPLOY_CLOUD_RUN_PROJECT_ID: 'asdf'
|
|
1066
|
-
DEPLOY_CLOUD_RUN_REGION: 'asia-east1'
|
|
1067
|
-
GCLOUD_RUN_canonicalHostSuffix: '$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix'
|
|
1068
|
-
_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"]'
|
|
1069
|
-
",
|
|
1070
|
-
"GCLOUD_DEPLOY_credentialsKey": "$CL_prod_www_GCLOUD_DEPLOY_credentialsKey",
|
|
1071
|
-
"GCLOUD_RUN_canonicalHostSuffix": "$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix",
|
|
1072
|
-
"HOST": "pan-test-app-prod-www-unknown-host.example.com",
|
|
1073
|
-
"HOST_CANONICAL": "pan-test-app-prod-www-unknown-host.example.com",
|
|
1074
|
-
"HOST_INTERNAL": "pan-test-app-prod-www-unknown-host.example.com",
|
|
1075
1134
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
1076
1135
|
"KUBERNETES_MEMORY_LIMIT": "400Mi",
|
|
1077
1136
|
"KUBERNETES_MEMORY_REQUEST": "200Mi",
|
|
1078
|
-
"ROOT_URL": "https://pan-test-app-prod-www-unknown-host.example.com",
|
|
1079
|
-
"ROOT_URL_INTERNAL": "https://pan-test-app-prod-www-unknown-host.example.com",
|
|
1080
|
-
"_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"]",
|
|
1081
1137
|
},
|
|
1082
1138
|
},
|
|
1083
1139
|
"www 🚀 Deploy | stage ": {
|
|
1084
1140
|
"allow_failure": false,
|
|
1085
1141
|
"artifacts": {
|
|
1086
|
-
"
|
|
1087
|
-
"
|
|
1088
|
-
|
|
1142
|
+
"reports": {
|
|
1143
|
+
"dotenv": "gitlab_environment.env",
|
|
1144
|
+
},
|
|
1089
1145
|
},
|
|
1090
1146
|
"environment": {
|
|
1091
1147
|
"auto_stop_in": undefined,
|
|
1092
1148
|
"name": "stage/www",
|
|
1093
1149
|
"on_stop": "www 🛑 Stop ⚠️ | stage ",
|
|
1094
|
-
"url": "
|
|
1150
|
+
"url": "$CL_GITLAB_ENVIRONMENT_URL",
|
|
1095
1151
|
},
|
|
1096
1152
|
"image": "path/to/docker/gcloud:the-version",
|
|
1097
1153
|
"interruptible": true,
|
|
@@ -1122,13 +1178,71 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
1122
1178
|
},
|
|
1123
1179
|
],
|
|
1124
1180
|
"script": [
|
|
1181
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
1182
|
+
"export ENV_SHORT="stage"",
|
|
1183
|
+
"export APP_DIR="www"",
|
|
1184
|
+
"export ENV_TYPE="stage"",
|
|
1185
|
+
"export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"",
|
|
1186
|
+
"export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"",
|
|
1187
|
+
"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")"",
|
|
1188
|
+
"export HOST="$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
1189
|
+
"export ROOT_URL="https://$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
1190
|
+
"export HOST_INTERNAL="$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
1191
|
+
"export HOST_CANONICAL="$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
1192
|
+
"export ROOT_URL_INTERNAL="https://$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"",
|
|
1193
|
+
"export DEPLOY_CLOUD_RUN_PROJECT_ID="asdf"",
|
|
1194
|
+
"export DEPLOY_CLOUD_RUN_REGION="asia-east1"",
|
|
1195
|
+
"export GCLOUD_DEPLOY_credentialsKey="$CL_stage_www_GCLOUD_DEPLOY_credentialsKey"",
|
|
1196
|
+
"export GCLOUD_RUN_canonicalHostSuffix="$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix"",
|
|
1197
|
+
"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\\"]"",
|
|
1198
|
+
"export DOCKER_REGISTRY="asia-east1-docker.pkg.dev"",
|
|
1199
|
+
"export DOCKER_IMAGE="asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/stage/www"",
|
|
1200
|
+
"export DOCKER_CACHE_IMAGE="asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www"",
|
|
1201
|
+
"export DOCKER_IMAGE_TAG="$CI_COMMIT_SHA"",
|
|
1202
|
+
"export CLOUDSDK_CORE_DISABLE_PROMPTS="1"",
|
|
1203
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
1125
1204
|
"echo -e "\\e[0Ksection_start:$(date +%s):prepare[collapsed=true]\\r\\e[0KPrepare..."",
|
|
1126
1205
|
"gcloud auth activate-service-account --key-file=<(echo "$CL_stage_www_GCLOUD_DEPLOY_credentialsKey")",
|
|
1127
1206
|
"export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe asdf --format="value(projectNumber)")",
|
|
1128
1207
|
"echo "GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER"",
|
|
1129
1208
|
"echo -e "\\e[0Ksection_end:$(date +%s):prepare\\r\\e[0K"",
|
|
1209
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):writeenvvars[collapsed=true]\\r\\e[0KWrite env vars to file"",
|
|
1210
|
+
"cat > ____envvars.yaml <<EOF
|
|
1211
|
+
ENV_SHORT: |-
|
|
1212
|
+
stage
|
|
1213
|
+
APP_DIR: |-
|
|
1214
|
+
www
|
|
1215
|
+
ENV_TYPE: |-
|
|
1216
|
+
stage
|
|
1217
|
+
BUILD_INFO_BUILD_ID: |-
|
|
1218
|
+
$(printf %s "$(git describe --tags 2>/dev/null || git rev-parse HEAD)" | sed 's/^/ /')
|
|
1219
|
+
BUILD_INFO_BUILD_TIME: |-
|
|
1220
|
+
$(printf %s "$CI_JOB_STARTED_AT" | sed 's/^/ /')
|
|
1221
|
+
BUILD_INFO_CURRENT_VERSION: |-
|
|
1222
|
+
$(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/^/ /')
|
|
1223
|
+
HOST: |-
|
|
1224
|
+
$(printf %s "$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
1225
|
+
ROOT_URL: |-
|
|
1226
|
+
$(printf %s "https://$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
1227
|
+
HOST_INTERNAL: |-
|
|
1228
|
+
$(printf %s "$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
1229
|
+
HOST_CANONICAL: |-
|
|
1230
|
+
$(printf %s "$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
1231
|
+
ROOT_URL_INTERNAL: |-
|
|
1232
|
+
$(printf %s "https://$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
1233
|
+
DEPLOY_CLOUD_RUN_PROJECT_ID: |-
|
|
1234
|
+
asdf
|
|
1235
|
+
DEPLOY_CLOUD_RUN_REGION: |-
|
|
1236
|
+
asia-east1
|
|
1237
|
+
GCLOUD_RUN_canonicalHostSuffix: |-
|
|
1238
|
+
$(printf %s "$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | sed 's/^/ /')
|
|
1239
|
+
_ALL_ENV_VAR_KEYS: |-
|
|
1240
|
+
["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"]
|
|
1241
|
+
|
|
1242
|
+
EOF
|
|
1243
|
+
",
|
|
1244
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):writeenvvars\\r\\e[0K"",
|
|
1130
1245
|
"echo -e "\\e[0Ksection_start:$(date +%s):deploy[collapsed=true]\\r\\e[0KDeploy to cloud run"",
|
|
1131
|
-
"echo "$ENV_VARS" > ____envvars.yaml",
|
|
1132
1246
|
"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",
|
|
1133
1247
|
"echo -e "\\e[0Ksection_end:$(date +%s):deploy\\r\\e[0K"",
|
|
1134
1248
|
"echo -e "\\e[0Ksection_start:$(date +%s):cleanup[collapsed=true]\\r\\e[0KCleanup"",
|
|
@@ -1137,69 +1251,27 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
1137
1251
|
"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",
|
|
1138
1252
|
"echo -e "\\e[0Ksection_end:$(date +%s):cleanup\\r\\e[0K"",
|
|
1139
1253
|
"echo Uploading SBOM to Dependency Track",
|
|
1140
|
-
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/www" "https
|
|
1141
|
-
|
|
1142
|
-
"services": [
|
|
1143
|
-
{
|
|
1144
|
-
"command": [
|
|
1145
|
-
"--tls=false",
|
|
1146
|
-
],
|
|
1147
|
-
"name": "docker:24.0.6-dind",
|
|
1148
|
-
},
|
|
1254
|
+
"/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",
|
|
1255
|
+
"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",
|
|
1149
1256
|
],
|
|
1150
1257
|
"stage": "deploy stage",
|
|
1151
1258
|
"variables": {
|
|
1152
|
-
"APP_DIR": "www",
|
|
1153
|
-
"BUILD_INFO_BUILD_TIME": "01-01-2023 12:13:14",
|
|
1154
|
-
"BUILD_INFO_CURRENT_VERSION": "3.2.1",
|
|
1155
|
-
"BUILD_INFO_ID": "some-id",
|
|
1156
|
-
"CLOUDSDK_CORE_DISABLE_PROMPTS": "1",
|
|
1157
|
-
"DEPLOY_CLOUD_RUN_PROJECT_ID": "asdf",
|
|
1158
|
-
"DEPLOY_CLOUD_RUN_REGION": "asia-east1",
|
|
1159
|
-
"DOCKER_BUILDKIT": "1",
|
|
1160
|
-
"DOCKER_CACHE_IMAGE": "asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/caches/www",
|
|
1161
|
-
"DOCKER_DRIVER": "overlay2",
|
|
1162
|
-
"DOCKER_HOST": "tcp://0.0.0.0:2375",
|
|
1163
|
-
"DOCKER_IMAGE": "asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/stage/www",
|
|
1164
|
-
"DOCKER_IMAGE_TAG": "$CI_COMMIT_SHA",
|
|
1165
|
-
"DOCKER_REGISTRY": "asia-east1-docker.pkg.dev",
|
|
1166
|
-
"DOCKER_TLS_CERTDIR": "",
|
|
1167
|
-
"ENV_SHORT": "stage",
|
|
1168
|
-
"ENV_TYPE": "stage",
|
|
1169
|
-
"ENV_VARS": "ENV_SHORT: 'stage'
|
|
1170
|
-
APP_DIR: 'www'
|
|
1171
|
-
ENV_TYPE: 'stage'
|
|
1172
|
-
BUILD_INFO_ID: 'some-id'
|
|
1173
|
-
BUILD_INFO_BUILD_TIME: '01-01-2023 12:13:14'
|
|
1174
|
-
BUILD_INFO_CURRENT_VERSION: '3.2.1'
|
|
1175
|
-
HOST: 'pan-test-app-stage-www-unknown-host.example.com'
|
|
1176
|
-
ROOT_URL: 'https://pan-test-app-stage-www-unknown-host.example.com'
|
|
1177
|
-
HOST_CANONICAL: 'pan-test-app-stage-www-unknown-host.example.com'
|
|
1178
|
-
ROOT_URL_INTERNAL: 'https://pan-test-app-stage-www-unknown-host.example.com'
|
|
1179
|
-
HOST_INTERNAL: 'pan-test-app-stage-www-unknown-host.example.com'
|
|
1180
|
-
DEPLOY_CLOUD_RUN_PROJECT_ID: 'asdf'
|
|
1181
|
-
DEPLOY_CLOUD_RUN_REGION: 'asia-east1'
|
|
1182
|
-
GCLOUD_RUN_canonicalHostSuffix: '$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix'
|
|
1183
|
-
_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"]'
|
|
1184
|
-
",
|
|
1185
|
-
"GCLOUD_DEPLOY_credentialsKey": "$CL_stage_www_GCLOUD_DEPLOY_credentialsKey",
|
|
1186
|
-
"GCLOUD_RUN_canonicalHostSuffix": "$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix",
|
|
1187
|
-
"HOST": "pan-test-app-stage-www-unknown-host.example.com",
|
|
1188
|
-
"HOST_CANONICAL": "pan-test-app-stage-www-unknown-host.example.com",
|
|
1189
|
-
"HOST_INTERNAL": "pan-test-app-stage-www-unknown-host.example.com",
|
|
1190
1259
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
1191
1260
|
"KUBERNETES_MEMORY_LIMIT": "400Mi",
|
|
1192
1261
|
"KUBERNETES_MEMORY_REQUEST": "200Mi",
|
|
1193
|
-
"ROOT_URL": "https://pan-test-app-stage-www-unknown-host.example.com",
|
|
1194
|
-
"ROOT_URL_INTERNAL": "https://pan-test-app-stage-www-unknown-host.example.com",
|
|
1195
|
-
"_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"]",
|
|
1196
1262
|
},
|
|
1197
1263
|
},
|
|
1198
1264
|
"www 🛑 Stop ⚠️ | prod ": {
|
|
1265
|
+
"allow_failure": true,
|
|
1266
|
+
"artifacts": {
|
|
1267
|
+
"reports": {
|
|
1268
|
+
"dotenv": "gitlab_environment.env",
|
|
1269
|
+
},
|
|
1270
|
+
},
|
|
1199
1271
|
"environment": {
|
|
1200
1272
|
"action": "stop",
|
|
1201
1273
|
"name": "prod/www",
|
|
1202
|
-
"url": "
|
|
1274
|
+
"url": "$CL_GITLAB_ENVIRONMENT_URL",
|
|
1203
1275
|
},
|
|
1204
1276
|
"image": "path/to/docker/gcloud:the-version",
|
|
1205
1277
|
"interruptible": true,
|
|
@@ -1213,28 +1285,29 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
1213
1285
|
},
|
|
1214
1286
|
"rules": [
|
|
1215
1287
|
{
|
|
1216
|
-
"allow_failure": true,
|
|
1217
1288
|
"if": "$CI_COMMIT_BRANCH =~ /^[0-9]+\\.([0-9]+|x)\\.x$/",
|
|
1218
1289
|
"when": "on_success",
|
|
1219
1290
|
},
|
|
1220
1291
|
{
|
|
1221
|
-
"allow_failure": true,
|
|
1222
1292
|
"when": "manual",
|
|
1223
1293
|
},
|
|
1224
1294
|
],
|
|
1225
1295
|
"script": [
|
|
1296
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
1297
|
+
"export CLOUDSDK_CORE_DISABLE_PROMPTS="1"",
|
|
1298
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
1226
1299
|
"set +e",
|
|
1227
1300
|
"gcloud auth activate-service-account --key-file=<(echo "$CL_prod_www_GCLOUD_DEPLOY_credentialsKey")",
|
|
1228
1301
|
"gcloud run services delete pan-test-app-prod-www --project=asdf --region=asia-east1",
|
|
1229
1302
|
"gcloud artifacts docker images delete asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/prod/www --quiet --delete-tags",
|
|
1230
1303
|
"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",
|
|
1231
1304
|
"echo Disabling component in Dependency Track",
|
|
1232
|
-
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/www" "https
|
|
1305
|
+
"/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",
|
|
1233
1306
|
"set -e",
|
|
1307
|
+
"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",
|
|
1234
1308
|
],
|
|
1235
1309
|
"stage": "stop prod",
|
|
1236
1310
|
"variables": {
|
|
1237
|
-
"CLOUDSDK_CORE_DISABLE_PROMPTS": "1",
|
|
1238
1311
|
"GIT_STRATEGY": "none",
|
|
1239
1312
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
1240
1313
|
"KUBERNETES_MEMORY_LIMIT": "400Mi",
|
|
@@ -1242,10 +1315,16 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
1242
1315
|
},
|
|
1243
1316
|
},
|
|
1244
1317
|
"www 🛑 Stop ⚠️ | stage ": {
|
|
1318
|
+
"allow_failure": true,
|
|
1319
|
+
"artifacts": {
|
|
1320
|
+
"reports": {
|
|
1321
|
+
"dotenv": "gitlab_environment.env",
|
|
1322
|
+
},
|
|
1323
|
+
},
|
|
1245
1324
|
"environment": {
|
|
1246
1325
|
"action": "stop",
|
|
1247
1326
|
"name": "stage/www",
|
|
1248
|
-
"url": "
|
|
1327
|
+
"url": "$CL_GITLAB_ENVIRONMENT_URL",
|
|
1249
1328
|
},
|
|
1250
1329
|
"image": "path/to/docker/gcloud:the-version",
|
|
1251
1330
|
"interruptible": true,
|
|
@@ -1259,28 +1338,29 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
1259
1338
|
},
|
|
1260
1339
|
"rules": [
|
|
1261
1340
|
{
|
|
1262
|
-
"allow_failure": true,
|
|
1263
1341
|
"if": "$CI_COMMIT_BRANCH =~ /^[0-9]+\\.([0-9]+|x)\\.x$/",
|
|
1264
1342
|
"when": "on_success",
|
|
1265
1343
|
},
|
|
1266
1344
|
{
|
|
1267
|
-
"allow_failure": true,
|
|
1268
1345
|
"when": "manual",
|
|
1269
1346
|
},
|
|
1270
1347
|
],
|
|
1271
1348
|
"script": [
|
|
1349
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
1350
|
+
"export CLOUDSDK_CORE_DISABLE_PROMPTS="1"",
|
|
1351
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
1272
1352
|
"set +e",
|
|
1273
1353
|
"gcloud auth activate-service-account --key-file=<(echo "$CL_stage_www_GCLOUD_DEPLOY_credentialsKey")",
|
|
1274
1354
|
"gcloud run services delete pan-test-app-stage-www --project=asdf --region=asia-east1",
|
|
1275
1355
|
"gcloud artifacts docker images delete asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/stage/www --quiet --delete-tags",
|
|
1276
1356
|
"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",
|
|
1277
1357
|
"echo Disabling component in Dependency Track",
|
|
1278
|
-
"/dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" disable "pan-test-app/www" "https
|
|
1358
|
+
"/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",
|
|
1279
1359
|
"set -e",
|
|
1360
|
+
"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",
|
|
1280
1361
|
],
|
|
1281
1362
|
"stage": "stop stage",
|
|
1282
1363
|
"variables": {
|
|
1283
|
-
"CLOUDSDK_CORE_DISABLE_PROMPTS": "1",
|
|
1284
1364
|
"GIT_STRATEGY": "none",
|
|
1285
1365
|
"KUBERNETES_CPU_REQUEST": "0.5",
|
|
1286
1366
|
"KUBERNETES_MEMORY_LIMIT": "400Mi",
|
|
@@ -1305,6 +1385,8 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
1305
1385
|
],
|
|
1306
1386
|
},
|
|
1307
1387
|
"script": [
|
|
1388
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
1389
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
1308
1390
|
"trivy fs --quiet --format cyclonedx --output "__sbom.json" www",
|
|
1309
1391
|
],
|
|
1310
1392
|
"stage": "build",
|
|
@@ -1328,6 +1410,8 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
1328
1410
|
],
|
|
1329
1411
|
},
|
|
1330
1412
|
"script": [
|
|
1413
|
+
"echo -e "\\e[0Ksection_start:$(date +%s):injectvars[collapsed=true]\\r\\e[0KInjecting variables"",
|
|
1414
|
+
"echo -e "\\e[0Ksection_end:$(date +%s):injectvars\\r\\e[0K"",
|
|
1331
1415
|
"trivy fs --quiet --format cyclonedx --output "__sbom.json" www",
|
|
1332
1416
|
],
|
|
1333
1417
|
"stage": "build",
|
|
@@ -1380,7 +1464,7 @@ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_ID","BUILD_INF
|
|
|
1380
1464
|
],
|
|
1381
1465
|
"variables": {
|
|
1382
1466
|
"FF_USE_FASTZIP": "true",
|
|
1383
|
-
"GIT_DEPTH": 1,
|
|
1467
|
+
"GIT_DEPTH": "1",
|
|
1384
1468
|
},
|
|
1385
1469
|
"workflow": {
|
|
1386
1470
|
"rules": [
|