@catladder/pipeline 1.170.0 → 2.0.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 +2 -6
- package/dist/bash/BashExpression.js +5 -15
- package/dist/bash/bashEscape.d.ts +34 -0
- package/dist/bash/bashEscape.js +114 -0
- package/dist/bash/bashYaml.js +25 -2
- package/dist/bash/getInjectVarsScript.js +4 -2
- package/dist/bash/index.d.ts +2 -0
- package/dist/bash/index.js +26 -0
- package/dist/build/base/createAppBuildJob.js +3 -3
- package/dist/build/base/writeDotEnv.js +6 -4
- package/dist/build/custom/testJob.js +12 -12
- package/dist/build/docker.d.ts +3 -3
- package/dist/build/node/buildJob.js +1 -1
- package/dist/build/node/cache.d.ts +2 -4
- package/dist/build/node/cache.js +3 -24
- package/dist/build/node/testJob.js +11 -11
- package/dist/build/rails/build.js +1 -1
- package/dist/build/rails/test.js +8 -8
- package/dist/build/types.d.ts +0 -10
- package/dist/constants.js +1 -1
- package/dist/context/createComponentContext.js +0 -1
- package/dist/context/getEnvConfig.js +2 -1
- package/dist/context/getEnvironment.js +1 -2
- package/dist/context/getEnvironmentVariables.d.ts +5 -6
- package/dist/context/getEnvironmentVariables.js +50 -38
- package/dist/deploy/base/deploy.js +3 -3
- package/dist/deploy/cloudRun/createJobs/getCloudRunDeployScripts.js +2 -2
- package/dist/deploy/cloudRun/index.js +2 -2
- package/dist/deploy/cloudRun/utils/getServiceName.d.ts +1 -1
- package/dist/deploy/kubernetes/cloudSql/index.d.ts +2 -2
- package/dist/deploy/kubernetes/cloudSql/index.js +3 -14
- package/dist/deploy/kubernetes/deployJob.js +1 -3
- package/dist/deploy/kubernetes/index.js +2 -2
- package/dist/deploy/kubernetes/kubeEnv.d.ts +3 -3
- package/dist/deploy/kubernetes/kubeValues.d.ts +3 -4
- package/dist/deploy/kubernetes/kubeValues.js +2 -3
- package/dist/deploy/types/base.d.ts +0 -6
- package/dist/deploy/types/kubernetes.d.ts +1 -34
- package/dist/globalScriptFunctions/index.d.ts +14 -0
- package/dist/globalScriptFunctions/index.js +37 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.js +3 -1
- package/dist/pipeline/gitlab/createGitlabJobs.js +3 -5
- package/dist/pipeline/gitlab/createGitlabPipeline.d.ts +1 -0
- package/dist/pipeline/gitlab/createGitlabPipeline.js +38 -2
- package/dist/pipeline/packageManager.js +1 -1
- package/dist/runner/index.d.ts +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/config.d.ts +6 -9
- package/dist/types/context.d.ts +2 -9
- package/dist/types/gitlab-types.d.ts +1 -0
- package/dist/types/jobs.d.ts +0 -8
- package/dist/utils/gitlab.js +4 -1
- package/dist/utils/writeFiles.js +1 -7
- package/dist/variables/VariableValue.d.ts +3 -0
- package/dist/variables/VariableValue.js +5 -0
- package/dist/variables/VariableValueContainingReferences.d.ts +24 -0
- package/dist/variables/VariableValueContainingReferences.js +97 -0
- package/dist/variables/__tests__/resolveAllReferences.test.js +219 -0
- package/dist/variables/__tests__/resolveAllReferencesOnce.test.d.ts +1 -0
- package/dist/variables/__tests__/resolveAllReferencesOnce.test.js +171 -0
- package/dist/variables/__tests__/resolveReferencesOnce.test.d.ts +1 -0
- package/dist/variables/__tests__/resolveReferencesOnce.test.js +202 -0
- package/dist/variables/__tests__/variableValue.test.d.ts +1 -0
- package/dist/variables/__tests__/variableValue.test.js +36 -0
- package/dist/variables/resolveAllReferences.d.ts +3 -0
- package/dist/{bash/replaceAsync.js → variables/resolveAllReferences.js} +60 -41
- package/dist/variables/resolveAllReferencesOnce.d.ts +5 -0
- package/dist/variables/resolveAllReferencesOnce.js +191 -0
- package/dist/variables/resolveReferencesOnce.d.ts +8 -0
- package/dist/variables/resolveReferencesOnce.js +22 -0
- package/examples/__snapshots__/cloud-run-http2.test.ts.snap +312 -238
- package/examples/__snapshots__/cloud-run-memory-limit.test.ts.snap +312 -238
- package/examples/__snapshots__/cloud-run-meteor-with-worker.test.ts.snap +312 -222
- package/examples/__snapshots__/cloud-run-nextjs.test.ts.snap +1436 -0
- package/examples/__snapshots__/cloud-run-no-cpu-throttling.test.ts.snap +312 -238
- package/examples/__snapshots__/cloud-run-no-service.test.ts.snap +316 -238
- package/examples/__snapshots__/cloud-run-non-public.test.ts.snap +312 -238
- package/examples/__snapshots__/cloud-run-post-stop-job.test.ts.snap +313 -238
- package/examples/__snapshots__/cloud-run-service-custom-vpc-connector.test.ts.snap +312 -238
- package/examples/__snapshots__/cloud-run-service-custom-vpc.test.ts.snap +312 -238
- package/examples/__snapshots__/cloud-run-service-gen2.test.ts.snap +312 -238
- package/examples/__snapshots__/cloud-run-service-increase-timout.test.ts.snap +312 -238
- package/examples/__snapshots__/cloud-run-service-with-volumes.test.ts.snap +316 -238
- package/examples/__snapshots__/cloud-run-storybook.test.ts.snap +294 -220
- package/examples/__snapshots__/cloud-run-with-ngnix.test.ts.snap +312 -238
- package/examples/__snapshots__/cloud-run-with-sql-reuse-db.test.ts.snap +652 -486
- package/examples/__snapshots__/cloud-run-with-sql.test.ts.snap +282 -288
- package/examples/__snapshots__/cloud-run-with-worker.test.ts.snap +312 -238
- package/examples/__snapshots__/custom-build-job-with-tests.test.ts.snap +284 -194
- package/examples/__snapshots__/custom-build-job.test.ts.snap +278 -188
- package/examples/__snapshots__/custom-deploy.test.ts.snap +220 -154
- package/examples/__snapshots__/custom-envs.test.ts.snap +216 -126
- package/examples/__snapshots__/custom-sbom-java.test.ts.snap +278 -188
- package/examples/__snapshots__/git-submodule.test.ts.snap +312 -238
- package/examples/__snapshots__/kubernetes-application-customization.test.ts.snap +231 -253
- package/examples/__snapshots__/kubernetes-with-cloud-sql.test.ts.snap +240 -262
- package/examples/__snapshots__/kubernetes-with-jobs.test.ts.snap +504 -506
- package/examples/__snapshots__/kubernetes-with-mongodb.test.ts.snap +239 -261
- package/examples/__snapshots__/local-dot-env.test.ts.snap +236 -238
- package/examples/__snapshots__/meteor-kubernetes.test.ts.snap +236 -242
- package/examples/__snapshots__/multiline-var.test.ts.snap +1355 -973
- package/examples/__snapshots__/native-app.test.ts.snap +438 -392
- package/examples/__snapshots__/node-build-with-custom-image.test.ts.snap +312 -238
- package/examples/__snapshots__/node-build-with-docker-additions.test.ts.snap +312 -238
- package/examples/__snapshots__/rails-k8s-with-worker-dockerfile.test.ts.snap +186 -188
- package/examples/__snapshots__/rails-k8s-with-worker.test.ts.snap +162 -164
- package/examples/__snapshots__/referencing-other-vars.test.ts.snap +4741 -0
- package/examples/__snapshots__/wait-for-other-deploy.test.ts.snap +330 -228
- package/examples/__snapshots__/{workspace-api-www-custom-cache.test.ts.snap → workspace-api-www-turbo-cache.test.ts.snap} +457 -499
- package/examples/__snapshots__/workspace-api-www.test.ts.snap +452 -482
- package/examples/{workspace-api-www-custom-cache.test.ts → cloud-run-nextjs.test.ts} +2 -2
- package/examples/cloud-run-nextjs.ts +28 -0
- package/examples/cloud-run-with-sql.ts +0 -1
- package/examples/kubernetes-application-customization.ts +1 -0
- package/examples/kubernetes-with-cloud-sql.ts +1 -0
- package/examples/kubernetes-with-jobs.ts +1 -0
- package/examples/kubernetes-with-mongodb.ts +1 -0
- package/examples/meteor-kubernetes.ts +1 -1
- package/examples/native-app.ts +10 -7
- package/examples/rails-k8s-with-worker.ts +7 -1
- package/examples/{kubernetes-with-cloud-sql-legacy.test.ts → referencing-other-vars.test.ts} +2 -2
- package/examples/referencing-other-vars.ts +83 -0
- package/examples/workspace-api-www-turbo-cache.test.ts +11 -0
- package/examples/{workspace-api-www-custom-cache.ts → workspace-api-www-turbo-cache.ts} +4 -3
- package/examples/workspace-api-www.ts +3 -2
- package/package.json +2 -6
- package/src/bash/BashExpression.ts +10 -13
- package/src/bash/bashEscape.ts +158 -0
- package/src/bash/bashYaml.ts +36 -2
- package/src/bash/getInjectVarsScript.ts +11 -2
- package/src/bash/index.ts +2 -0
- package/src/build/base/createAppBuildJob.ts +0 -1
- package/src/build/base/writeDotEnv.ts +6 -6
- package/src/build/custom/testJob.ts +0 -1
- package/src/build/node/buildJob.ts +2 -2
- package/src/build/node/cache.ts +0 -29
- package/src/build/node/testJob.ts +0 -1
- package/src/build/rails/build.ts +0 -1
- package/src/build/rails/test.ts +0 -1
- package/src/build/types.ts +0 -13
- package/src/context/createComponentContext.ts +0 -1
- package/src/context/getEnvConfig.ts +2 -2
- package/src/context/getEnvironment.ts +1 -1
- package/src/context/getEnvironmentContext.ts +1 -1
- package/src/context/getEnvironmentVariables.ts +44 -51
- package/src/deploy/base/deploy.ts +1 -1
- package/src/deploy/cloudRun/createJobs/getCloudRunDeployScripts.ts +4 -12
- package/src/deploy/cloudRun/index.ts +2 -2
- package/src/deploy/kubernetes/cloudSql/index.ts +3 -16
- package/src/deploy/kubernetes/deployJob.ts +0 -2
- package/src/deploy/kubernetes/index.ts +2 -2
- package/src/deploy/kubernetes/kubeEnv.ts +3 -3
- package/src/deploy/kubernetes/kubeValues.ts +5 -8
- package/src/deploy/types/base.ts +0 -6
- package/src/deploy/types/kubernetes.ts +1 -36
- package/src/globalScriptFunctions/index.ts +30 -0
- package/src/index.ts +2 -0
- package/src/pipeline/gitlab/createGitlabJobs.ts +1 -4
- package/src/pipeline/gitlab/createGitlabPipeline.ts +8 -1
- package/src/pipeline/packageManager.ts +7 -5
- package/src/runner/index.ts +0 -1
- package/src/types/config.ts +6 -9
- package/src/types/context.ts +3 -9
- package/src/types/gitlab-types.ts +1 -0
- package/src/types/jobs.ts +0 -8
- package/src/utils/gitlab.ts +19 -2
- package/src/utils/writeFiles.ts +1 -2
- package/src/variables/VariableValue.ts +6 -0
- package/src/variables/VariableValueContainingReferences.ts +89 -0
- package/src/variables/__tests__/resolveAllReferences.test.ts +110 -0
- package/src/variables/__tests__/resolveAllReferencesOnce.test.ts +64 -0
- package/src/variables/__tests__/resolveReferencesOnce.test.ts +117 -0
- package/src/variables/__tests__/variableValue.test.ts +73 -0
- package/src/variables/resolveAllReferences.ts +46 -0
- package/src/variables/resolveAllReferencesOnce.ts +44 -0
- package/src/variables/resolveReferencesOnce.ts +29 -0
- package/bin/catladder-gitlab-dev.js +0 -3
- package/bin/catladder-gitlab.js +0 -3
- package/dist/bash/replaceAsync.d.ts +0 -2
- package/dist/bundles/catladder-gitlab/index.js +0 -15
- package/dist/context/__tests__/resolveReferences.test.js +0 -368
- package/dist/context/resolveReferences.d.ts +0 -6
- package/dist/context/resolveReferences.js +0 -286
- package/dist/deploy/kubernetes/processSecretsAsFiles.d.ts +0 -85
- package/dist/deploy/kubernetes/processSecretsAsFiles.js +0 -33
- package/examples/__snapshots__/kubernetes-with-cloud-sql-legacy.test.ts.snap +0 -1795
- package/examples/kubernetes-with-cloud-sql-legacy.ts +0 -35
- package/scripts/bundle +0 -2
- package/src/bash/replaceAsync.ts +0 -54
- package/src/context/__tests__/resolveReferences.test.ts +0 -148
- package/src/context/resolveReferences.ts +0 -93
- package/src/deploy/kubernetes/processSecretsAsFiles.ts +0 -35
- /package/dist/{context/__tests__/resolveReferences.test.d.ts → variables/__tests__/resolveAllReferences.test.d.ts} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
2
|
|
|
3
|
-
exports[`matches snapshot for workspace-api-www-
|
|
3
|
+
exports[`matches snapshot for workspace-api-www-turbo-cache local pipeline YAML 1`] = `
|
|
4
4
|
"image: path/to/docker/jobs-default:the-version
|
|
5
5
|
stages:
|
|
6
6
|
- setup
|
|
@@ -45,6 +45,36 @@ variables:
|
|
|
45
45
|
CACHE_COMPRESSION_LEVEL: fast
|
|
46
46
|
TRANSFER_METER_FREQUENCY: 5s
|
|
47
47
|
GIT_DEPTH: '1'
|
|
48
|
+
before_script:
|
|
49
|
+
- |-
|
|
50
|
+
function escapeForDotEnv () {
|
|
51
|
+
input="\${1:-$(cat)}"
|
|
52
|
+
input="\${input//$'\\n'/\\\\n}"
|
|
53
|
+
if [[ "$input" == *\\\\n* ]]; then
|
|
54
|
+
if [[ "$input" == *\\"* && "$input" == *\\'* && "$input" == *\\\`* ]]; then
|
|
55
|
+
printf "\\"%s\\"\\n" "$input"
|
|
56
|
+
elif [[ "$input" == *\\"* && "$input" == *\\'* ]]; then
|
|
57
|
+
printf "\`%s\`\\n" "$input"
|
|
58
|
+
elif [[ "$input" == *\\"* ]]; then
|
|
59
|
+
printf "'%s'\\n" "$input"
|
|
60
|
+
else
|
|
61
|
+
printf "\\"%s\\"\\n" "$input"
|
|
62
|
+
fi
|
|
63
|
+
else
|
|
64
|
+
printf "%s\\n" "$input"
|
|
65
|
+
fi
|
|
66
|
+
}
|
|
67
|
+
- |-
|
|
68
|
+
function collapseable_section_start () {
|
|
69
|
+
local section_title="\${1}"
|
|
70
|
+
local section_description="\${2:-$section_title}"
|
|
71
|
+
echo -e "section_start:\`date +%s\`:\${section_title}[collapsed=true]\\r\\e[0K\${section_description}"
|
|
72
|
+
}
|
|
73
|
+
- |-
|
|
74
|
+
function collapseable_section_end () {
|
|
75
|
+
local section_title="\${1}"
|
|
76
|
+
echo -e "section_end:\`date +%s\`:\${section_title}\\r\\e[0K"
|
|
77
|
+
}
|
|
48
78
|
🔸 myWorkspace 🛡 audit:
|
|
49
79
|
stage: test
|
|
50
80
|
image: path/to/docker/jobs-default:the-version
|
|
@@ -53,9 +83,9 @@ variables:
|
|
|
53
83
|
KUBERNETES_MEMORY_REQUEST: 1Gi
|
|
54
84
|
KUBERNETES_MEMORY_LIMIT: 4Gi
|
|
55
85
|
script:
|
|
56
|
-
-
|
|
86
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
57
87
|
- export APP_PATH="."
|
|
58
|
-
-
|
|
88
|
+
- collapseable_section_end "injectvars"
|
|
59
89
|
- cd .
|
|
60
90
|
- yarn npm audit --environment production
|
|
61
91
|
rules:
|
|
@@ -79,21 +109,21 @@ variables:
|
|
|
79
109
|
KUBERNETES_MEMORY_REQUEST: 1Gi
|
|
80
110
|
KUBERNETES_MEMORY_LIMIT: 4Gi
|
|
81
111
|
script:
|
|
82
|
-
-
|
|
112
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
83
113
|
- export APP_PATH="."
|
|
84
|
-
-
|
|
85
|
-
-
|
|
114
|
+
- collapseable_section_end "injectvars"
|
|
115
|
+
- collapseable_section_start "nodeinstall" "Ensure node version"
|
|
86
116
|
- if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
|
|
87
117
|
- if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
|
|
88
|
-
-
|
|
118
|
+
- collapseable_section_end "nodeinstall"
|
|
89
119
|
- cd .
|
|
90
|
-
-
|
|
120
|
+
- collapseable_section_start "nodeinstall" "Ensure node version"
|
|
91
121
|
- if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
|
|
92
122
|
- if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
|
|
93
|
-
-
|
|
94
|
-
-
|
|
123
|
+
- collapseable_section_end "nodeinstall"
|
|
124
|
+
- collapseable_section_start "yarninstall" "Yarn install"
|
|
95
125
|
- yarn install --immutable
|
|
96
|
-
-
|
|
126
|
+
- collapseable_section_end "yarninstall"
|
|
97
127
|
- yarn lint
|
|
98
128
|
cache:
|
|
99
129
|
- key: .-yarn
|
|
@@ -104,10 +134,6 @@ variables:
|
|
|
104
134
|
policy: pull-push
|
|
105
135
|
paths:
|
|
106
136
|
- node_modules
|
|
107
|
-
- key: myWorkspace-turbo
|
|
108
|
-
policy: pull-push
|
|
109
|
-
paths:
|
|
110
|
-
- .turbo
|
|
111
137
|
rules:
|
|
112
138
|
- when: never
|
|
113
139
|
if: $CI_COMMIT_MESSAGE =~ /^chore\\(release\\).*/
|
|
@@ -124,21 +150,21 @@ variables:
|
|
|
124
150
|
KUBERNETES_MEMORY_REQUEST: 1Gi
|
|
125
151
|
KUBERNETES_MEMORY_LIMIT: 4Gi
|
|
126
152
|
script:
|
|
127
|
-
-
|
|
153
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
128
154
|
- export APP_PATH="."
|
|
129
|
-
-
|
|
130
|
-
-
|
|
155
|
+
- collapseable_section_end "injectvars"
|
|
156
|
+
- collapseable_section_start "nodeinstall" "Ensure node version"
|
|
131
157
|
- if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
|
|
132
158
|
- if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
|
|
133
|
-
-
|
|
159
|
+
- collapseable_section_end "nodeinstall"
|
|
134
160
|
- cd .
|
|
135
|
-
-
|
|
161
|
+
- collapseable_section_start "nodeinstall" "Ensure node version"
|
|
136
162
|
- if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
|
|
137
163
|
- if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
|
|
138
|
-
-
|
|
139
|
-
-
|
|
164
|
+
- collapseable_section_end "nodeinstall"
|
|
165
|
+
- collapseable_section_start "yarninstall" "Yarn install"
|
|
140
166
|
- yarn install --immutable
|
|
141
|
-
-
|
|
167
|
+
- collapseable_section_end "yarninstall"
|
|
142
168
|
- yarn test
|
|
143
169
|
cache:
|
|
144
170
|
- key: .-yarn
|
|
@@ -149,10 +175,6 @@ variables:
|
|
|
149
175
|
policy: pull-push
|
|
150
176
|
paths:
|
|
151
177
|
- node_modules
|
|
152
|
-
- key: myWorkspace-turbo
|
|
153
|
-
policy: pull-push
|
|
154
|
-
paths:
|
|
155
|
-
- .turbo
|
|
156
178
|
rules:
|
|
157
179
|
- when: never
|
|
158
180
|
if: $CI_COMMIT_MESSAGE =~ /^chore\\(release\\).*/
|
|
@@ -169,57 +191,55 @@ variables:
|
|
|
169
191
|
KUBERNETES_MEMORY_REQUEST: 1Gi
|
|
170
192
|
KUBERNETES_MEMORY_LIMIT: 4Gi
|
|
171
193
|
script:
|
|
172
|
-
-
|
|
173
|
-
-
|
|
174
|
-
-
|
|
194
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
195
|
+
- collapseable_section_end "injectvars"
|
|
196
|
+
- collapseable_section_start "write-dotenv-api" "write dot env for api"
|
|
175
197
|
- |-
|
|
176
198
|
cat <<EOF > api/.env
|
|
177
199
|
ENV_SHORT=dev
|
|
178
200
|
APP_DIR=api
|
|
179
201
|
ENV_TYPE=dev
|
|
180
|
-
|
|
181
|
-
ROOT_URL
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
ROOT_URL_INTERNAL=https://$(printf %s "pan-test-app-dev-api-$CL_dev_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')
|
|
202
|
+
HOSTNAME=$(printf %s "$(printf %s "pan-test-app-dev-api-$CL_dev_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | escapeForDotEnv)
|
|
203
|
+
ROOT_URL=$(printf %s "https://$(printf %s "pan-test-app-dev-api-$CL_dev_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | escapeForDotEnv)
|
|
204
|
+
HOSTNAME_INTERNAL=$(printf %s "$(printf %s "pan-test-app-dev-api-$CL_dev_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | escapeForDotEnv)
|
|
205
|
+
ROOT_URL_INTERNAL=$(printf %s "https://$(printf %s "pan-test-app-dev-api-$CL_dev_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | escapeForDotEnv)
|
|
185
206
|
DEPLOY_CLOUD_RUN_PROJECT_ID=google-project-id
|
|
186
207
|
DEPLOY_CLOUD_RUN_REGION=europe-west6
|
|
187
|
-
GCLOUD_DEPLOY_credentialsKey=$CL_dev_api_GCLOUD_DEPLOY_credentialsKey
|
|
188
|
-
GCLOUD_RUN_canonicalHostSuffix=$CL_dev_api_GCLOUD_RUN_canonicalHostSuffix
|
|
189
|
-
_ALL_ENV_VAR_KEYS=["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","
|
|
208
|
+
GCLOUD_DEPLOY_credentialsKey=$(printf %s "$CL_dev_api_GCLOUD_DEPLOY_credentialsKey" | escapeForDotEnv)
|
|
209
|
+
GCLOUD_RUN_canonicalHostSuffix=$(printf %s "$CL_dev_api_GCLOUD_RUN_canonicalHostSuffix" | escapeForDotEnv)
|
|
210
|
+
_ALL_ENV_VAR_KEYS=["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]
|
|
190
211
|
EOF
|
|
191
|
-
-
|
|
192
|
-
-
|
|
212
|
+
- collapseable_section_end "write-dotenv-api"
|
|
213
|
+
- collapseable_section_start "write-dotenv-www" "write dot env for www"
|
|
193
214
|
- |-
|
|
194
215
|
cat <<EOF > www/.env
|
|
195
216
|
ENV_SHORT=dev
|
|
196
217
|
APP_DIR=www
|
|
197
218
|
ENV_TYPE=dev
|
|
198
|
-
|
|
199
|
-
ROOT_URL
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
ROOT_URL_INTERNAL=https://$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')
|
|
219
|
+
HOSTNAME=$(printf %s "$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | escapeForDotEnv)
|
|
220
|
+
ROOT_URL=$(printf %s "https://$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | escapeForDotEnv)
|
|
221
|
+
HOSTNAME_INTERNAL=$(printf %s "$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | escapeForDotEnv)
|
|
222
|
+
ROOT_URL_INTERNAL=$(printf %s "https://$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | escapeForDotEnv)
|
|
203
223
|
DEPLOY_CLOUD_RUN_PROJECT_ID=google-project-id
|
|
204
224
|
DEPLOY_CLOUD_RUN_REGION=europe-west6
|
|
205
|
-
GCLOUD_DEPLOY_credentialsKey=$CL_dev_www_GCLOUD_DEPLOY_credentialsKey
|
|
206
|
-
GCLOUD_RUN_canonicalHostSuffix=$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix
|
|
207
|
-
API_URL
|
|
208
|
-
_ALL_ENV_VAR_KEYS=["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","
|
|
225
|
+
GCLOUD_DEPLOY_credentialsKey=$(printf %s "$CL_dev_www_GCLOUD_DEPLOY_credentialsKey" | escapeForDotEnv)
|
|
226
|
+
GCLOUD_RUN_canonicalHostSuffix=$(printf %s "$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | escapeForDotEnv)
|
|
227
|
+
API_URL=$(printf %s "https://$(printf %s "pan-test-app-dev-api-$CL_dev_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')/graphql" | escapeForDotEnv)
|
|
228
|
+
_ALL_ENV_VAR_KEYS=["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix","API_URL"]
|
|
209
229
|
EOF
|
|
210
|
-
-
|
|
211
|
-
-
|
|
230
|
+
- collapseable_section_end "write-dotenv-www"
|
|
231
|
+
- collapseable_section_start "nodeinstall" "Ensure node version"
|
|
212
232
|
- if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
|
|
213
233
|
- if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
|
|
214
|
-
-
|
|
234
|
+
- collapseable_section_end "nodeinstall"
|
|
215
235
|
- cd .
|
|
216
|
-
-
|
|
236
|
+
- collapseable_section_start "nodeinstall" "Ensure node version"
|
|
217
237
|
- if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
|
|
218
238
|
- if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
|
|
219
|
-
-
|
|
220
|
-
-
|
|
239
|
+
- collapseable_section_end "nodeinstall"
|
|
240
|
+
- collapseable_section_start "yarninstall" "Yarn install"
|
|
221
241
|
- yarn install --immutable
|
|
222
|
-
-
|
|
242
|
+
- collapseable_section_end "yarninstall"
|
|
223
243
|
- yarn build
|
|
224
244
|
cache:
|
|
225
245
|
- key: .-yarn
|
|
@@ -230,20 +250,12 @@ variables:
|
|
|
230
250
|
policy: pull-push
|
|
231
251
|
paths:
|
|
232
252
|
- node_modules
|
|
233
|
-
- key: myWorkspace-turbo
|
|
234
|
-
policy: pull-push
|
|
235
|
-
paths:
|
|
236
|
-
- .turbo
|
|
237
|
-
- key: myWorkspace-next-cache
|
|
238
|
-
policy: pull-push
|
|
239
|
-
paths:
|
|
240
|
-
- api/.next/cache
|
|
241
|
-
- www/.next/cache
|
|
242
253
|
- key: myWorkspace-default
|
|
243
254
|
policy: pull-push
|
|
244
255
|
paths:
|
|
245
|
-
- .
|
|
256
|
+
- .turbo
|
|
246
257
|
- api/.component-custom-cache
|
|
258
|
+
- www/.next/cache
|
|
247
259
|
artifacts:
|
|
248
260
|
paths:
|
|
249
261
|
- api/.next
|
|
@@ -271,57 +283,55 @@ variables:
|
|
|
271
283
|
KUBERNETES_MEMORY_REQUEST: 1Gi
|
|
272
284
|
KUBERNETES_MEMORY_LIMIT: 4Gi
|
|
273
285
|
script:
|
|
274
|
-
-
|
|
275
|
-
-
|
|
276
|
-
-
|
|
286
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
287
|
+
- collapseable_section_end "injectvars"
|
|
288
|
+
- collapseable_section_start "write-dotenv-api" "write dot env for api"
|
|
277
289
|
- |-
|
|
278
290
|
cat <<EOF > api/.env
|
|
279
291
|
ENV_SHORT=review
|
|
280
292
|
APP_DIR=api
|
|
281
293
|
ENV_TYPE=review
|
|
282
|
-
|
|
283
|
-
ROOT_URL
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
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"; })-api-$CL_review_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')
|
|
294
|
+
HOSTNAME=$(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"; })-api-$CL_review_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | escapeForDotEnv)
|
|
295
|
+
ROOT_URL=$(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"; })-api-$CL_review_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | escapeForDotEnv)
|
|
296
|
+
HOSTNAME_INTERNAL=$(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"; })-api-$CL_review_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | escapeForDotEnv)
|
|
297
|
+
ROOT_URL_INTERNAL=$(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"; })-api-$CL_review_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | escapeForDotEnv)
|
|
287
298
|
DEPLOY_CLOUD_RUN_PROJECT_ID=google-project-id
|
|
288
299
|
DEPLOY_CLOUD_RUN_REGION=europe-west6
|
|
289
|
-
GCLOUD_DEPLOY_credentialsKey=$CL_review_api_GCLOUD_DEPLOY_credentialsKey
|
|
290
|
-
GCLOUD_RUN_canonicalHostSuffix=$CL_review_api_GCLOUD_RUN_canonicalHostSuffix
|
|
291
|
-
_ALL_ENV_VAR_KEYS=["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","
|
|
300
|
+
GCLOUD_DEPLOY_credentialsKey=$(printf %s "$CL_review_api_GCLOUD_DEPLOY_credentialsKey" | escapeForDotEnv)
|
|
301
|
+
GCLOUD_RUN_canonicalHostSuffix=$(printf %s "$CL_review_api_GCLOUD_RUN_canonicalHostSuffix" | escapeForDotEnv)
|
|
302
|
+
_ALL_ENV_VAR_KEYS=["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]
|
|
292
303
|
EOF
|
|
293
|
-
-
|
|
294
|
-
-
|
|
304
|
+
- collapseable_section_end "write-dotenv-api"
|
|
305
|
+
- collapseable_section_start "write-dotenv-www" "write dot env for www"
|
|
295
306
|
- |-
|
|
296
307
|
cat <<EOF > www/.env
|
|
297
308
|
ENV_SHORT=review
|
|
298
309
|
APP_DIR=www
|
|
299
310
|
ENV_TYPE=review
|
|
300
|
-
|
|
301
|
-
ROOT_URL
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
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)}')
|
|
311
|
+
HOSTNAME=$(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)}')" | escapeForDotEnv)
|
|
312
|
+
ROOT_URL=$(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)}')" | escapeForDotEnv)
|
|
313
|
+
HOSTNAME_INTERNAL=$(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)}')" | escapeForDotEnv)
|
|
314
|
+
ROOT_URL_INTERNAL=$(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)}')" | escapeForDotEnv)
|
|
305
315
|
DEPLOY_CLOUD_RUN_PROJECT_ID=google-project-id
|
|
306
316
|
DEPLOY_CLOUD_RUN_REGION=europe-west6
|
|
307
|
-
GCLOUD_DEPLOY_credentialsKey=$CL_review_www_GCLOUD_DEPLOY_credentialsKey
|
|
308
|
-
GCLOUD_RUN_canonicalHostSuffix=$CL_review_www_GCLOUD_RUN_canonicalHostSuffix
|
|
309
|
-
API_URL
|
|
310
|
-
_ALL_ENV_VAR_KEYS=["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","
|
|
317
|
+
GCLOUD_DEPLOY_credentialsKey=$(printf %s "$CL_review_www_GCLOUD_DEPLOY_credentialsKey" | escapeForDotEnv)
|
|
318
|
+
GCLOUD_RUN_canonicalHostSuffix=$(printf %s "$CL_review_www_GCLOUD_RUN_canonicalHostSuffix" | escapeForDotEnv)
|
|
319
|
+
API_URL=$(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"; })-api-$CL_review_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')/graphql" | escapeForDotEnv)
|
|
320
|
+
_ALL_ENV_VAR_KEYS=["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix","API_URL"]
|
|
311
321
|
EOF
|
|
312
|
-
-
|
|
313
|
-
-
|
|
322
|
+
- collapseable_section_end "write-dotenv-www"
|
|
323
|
+
- collapseable_section_start "nodeinstall" "Ensure node version"
|
|
314
324
|
- if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
|
|
315
325
|
- if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
|
|
316
|
-
-
|
|
326
|
+
- collapseable_section_end "nodeinstall"
|
|
317
327
|
- cd .
|
|
318
|
-
-
|
|
328
|
+
- collapseable_section_start "nodeinstall" "Ensure node version"
|
|
319
329
|
- if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
|
|
320
330
|
- if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
|
|
321
|
-
-
|
|
322
|
-
-
|
|
331
|
+
- collapseable_section_end "nodeinstall"
|
|
332
|
+
- collapseable_section_start "yarninstall" "Yarn install"
|
|
323
333
|
- yarn install --immutable
|
|
324
|
-
-
|
|
334
|
+
- collapseable_section_end "yarninstall"
|
|
325
335
|
- yarn build
|
|
326
336
|
cache:
|
|
327
337
|
- key: .-yarn
|
|
@@ -332,20 +342,12 @@ variables:
|
|
|
332
342
|
policy: pull-push
|
|
333
343
|
paths:
|
|
334
344
|
- node_modules
|
|
335
|
-
- key: myWorkspace-turbo
|
|
336
|
-
policy: pull-push
|
|
337
|
-
paths:
|
|
338
|
-
- .turbo
|
|
339
|
-
- key: myWorkspace-next-cache
|
|
340
|
-
policy: pull-push
|
|
341
|
-
paths:
|
|
342
|
-
- api/.next/cache
|
|
343
|
-
- www/.next/cache
|
|
344
345
|
- key: myWorkspace-default
|
|
345
346
|
policy: pull-push
|
|
346
347
|
paths:
|
|
347
|
-
- .
|
|
348
|
+
- .turbo
|
|
348
349
|
- api/.component-custom-cache
|
|
350
|
+
- www/.next/cache
|
|
349
351
|
artifacts:
|
|
350
352
|
paths:
|
|
351
353
|
- api/.next
|
|
@@ -371,57 +373,55 @@ variables:
|
|
|
371
373
|
KUBERNETES_MEMORY_REQUEST: 1Gi
|
|
372
374
|
KUBERNETES_MEMORY_LIMIT: 4Gi
|
|
373
375
|
script:
|
|
374
|
-
-
|
|
375
|
-
-
|
|
376
|
-
-
|
|
376
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
377
|
+
- collapseable_section_end "injectvars"
|
|
378
|
+
- collapseable_section_start "write-dotenv-api" "write dot env for api"
|
|
377
379
|
- |-
|
|
378
380
|
cat <<EOF > api/.env
|
|
379
381
|
ENV_SHORT=stage
|
|
380
382
|
APP_DIR=api
|
|
381
383
|
ENV_TYPE=stage
|
|
382
|
-
|
|
383
|
-
ROOT_URL
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
ROOT_URL_INTERNAL=https://$(printf %s "pan-test-app-stage-api-$CL_stage_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')
|
|
384
|
+
HOSTNAME=$(printf %s "$(printf %s "pan-test-app-stage-api-$CL_stage_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | escapeForDotEnv)
|
|
385
|
+
ROOT_URL=$(printf %s "https://$(printf %s "pan-test-app-stage-api-$CL_stage_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | escapeForDotEnv)
|
|
386
|
+
HOSTNAME_INTERNAL=$(printf %s "$(printf %s "pan-test-app-stage-api-$CL_stage_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | escapeForDotEnv)
|
|
387
|
+
ROOT_URL_INTERNAL=$(printf %s "https://$(printf %s "pan-test-app-stage-api-$CL_stage_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | escapeForDotEnv)
|
|
387
388
|
DEPLOY_CLOUD_RUN_PROJECT_ID=google-project-id
|
|
388
389
|
DEPLOY_CLOUD_RUN_REGION=europe-west6
|
|
389
|
-
GCLOUD_DEPLOY_credentialsKey=$CL_stage_api_GCLOUD_DEPLOY_credentialsKey
|
|
390
|
-
GCLOUD_RUN_canonicalHostSuffix=$CL_stage_api_GCLOUD_RUN_canonicalHostSuffix
|
|
391
|
-
_ALL_ENV_VAR_KEYS=["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","
|
|
390
|
+
GCLOUD_DEPLOY_credentialsKey=$(printf %s "$CL_stage_api_GCLOUD_DEPLOY_credentialsKey" | escapeForDotEnv)
|
|
391
|
+
GCLOUD_RUN_canonicalHostSuffix=$(printf %s "$CL_stage_api_GCLOUD_RUN_canonicalHostSuffix" | escapeForDotEnv)
|
|
392
|
+
_ALL_ENV_VAR_KEYS=["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]
|
|
392
393
|
EOF
|
|
393
|
-
-
|
|
394
|
-
-
|
|
394
|
+
- collapseable_section_end "write-dotenv-api"
|
|
395
|
+
- collapseable_section_start "write-dotenv-www" "write dot env for www"
|
|
395
396
|
- |-
|
|
396
397
|
cat <<EOF > www/.env
|
|
397
398
|
ENV_SHORT=stage
|
|
398
399
|
APP_DIR=www
|
|
399
400
|
ENV_TYPE=stage
|
|
400
|
-
|
|
401
|
-
ROOT_URL
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
ROOT_URL_INTERNAL=https://$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')
|
|
401
|
+
HOSTNAME=$(printf %s "$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | escapeForDotEnv)
|
|
402
|
+
ROOT_URL=$(printf %s "https://$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | escapeForDotEnv)
|
|
403
|
+
HOSTNAME_INTERNAL=$(printf %s "$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | escapeForDotEnv)
|
|
404
|
+
ROOT_URL_INTERNAL=$(printf %s "https://$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | escapeForDotEnv)
|
|
405
405
|
DEPLOY_CLOUD_RUN_PROJECT_ID=google-project-id
|
|
406
406
|
DEPLOY_CLOUD_RUN_REGION=europe-west6
|
|
407
|
-
GCLOUD_DEPLOY_credentialsKey=$CL_stage_www_GCLOUD_DEPLOY_credentialsKey
|
|
408
|
-
GCLOUD_RUN_canonicalHostSuffix=$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix
|
|
409
|
-
API_URL
|
|
410
|
-
_ALL_ENV_VAR_KEYS=["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","
|
|
407
|
+
GCLOUD_DEPLOY_credentialsKey=$(printf %s "$CL_stage_www_GCLOUD_DEPLOY_credentialsKey" | escapeForDotEnv)
|
|
408
|
+
GCLOUD_RUN_canonicalHostSuffix=$(printf %s "$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | escapeForDotEnv)
|
|
409
|
+
API_URL=$(printf %s "https://$(printf %s "pan-test-app-stage-api-$CL_stage_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')/graphql" | escapeForDotEnv)
|
|
410
|
+
_ALL_ENV_VAR_KEYS=["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix","API_URL"]
|
|
411
411
|
EOF
|
|
412
|
-
-
|
|
413
|
-
-
|
|
412
|
+
- collapseable_section_end "write-dotenv-www"
|
|
413
|
+
- collapseable_section_start "nodeinstall" "Ensure node version"
|
|
414
414
|
- if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
|
|
415
415
|
- if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
|
|
416
|
-
-
|
|
416
|
+
- collapseable_section_end "nodeinstall"
|
|
417
417
|
- cd .
|
|
418
|
-
-
|
|
418
|
+
- collapseable_section_start "nodeinstall" "Ensure node version"
|
|
419
419
|
- if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
|
|
420
420
|
- if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
|
|
421
|
-
-
|
|
422
|
-
-
|
|
421
|
+
- collapseable_section_end "nodeinstall"
|
|
422
|
+
- collapseable_section_start "yarninstall" "Yarn install"
|
|
423
423
|
- yarn install --immutable
|
|
424
|
-
-
|
|
424
|
+
- collapseable_section_end "yarninstall"
|
|
425
425
|
- yarn build
|
|
426
426
|
cache:
|
|
427
427
|
- key: .-yarn
|
|
@@ -432,20 +432,12 @@ variables:
|
|
|
432
432
|
policy: pull-push
|
|
433
433
|
paths:
|
|
434
434
|
- node_modules
|
|
435
|
-
- key: myWorkspace-turbo
|
|
436
|
-
policy: pull-push
|
|
437
|
-
paths:
|
|
438
|
-
- .turbo
|
|
439
|
-
- key: myWorkspace-next-cache
|
|
440
|
-
policy: pull-push
|
|
441
|
-
paths:
|
|
442
|
-
- api/.next/cache
|
|
443
|
-
- www/.next/cache
|
|
444
435
|
- key: myWorkspace-default
|
|
445
436
|
policy: pull-push
|
|
446
437
|
paths:
|
|
447
|
-
- .
|
|
438
|
+
- .turbo
|
|
448
439
|
- api/.component-custom-cache
|
|
440
|
+
- www/.next/cache
|
|
449
441
|
artifacts:
|
|
450
442
|
paths:
|
|
451
443
|
- api/.next
|
|
@@ -471,57 +463,55 @@ variables:
|
|
|
471
463
|
KUBERNETES_MEMORY_REQUEST: 1Gi
|
|
472
464
|
KUBERNETES_MEMORY_LIMIT: 4Gi
|
|
473
465
|
script:
|
|
474
|
-
-
|
|
475
|
-
-
|
|
476
|
-
-
|
|
466
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
467
|
+
- collapseable_section_end "injectvars"
|
|
468
|
+
- collapseable_section_start "write-dotenv-api" "write dot env for api"
|
|
477
469
|
- |-
|
|
478
470
|
cat <<EOF > api/.env
|
|
479
471
|
ENV_SHORT=prod
|
|
480
472
|
APP_DIR=api
|
|
481
473
|
ENV_TYPE=prod
|
|
482
|
-
|
|
483
|
-
ROOT_URL
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
ROOT_URL_INTERNAL=https://$(printf %s "pan-test-app-prod-api-$CL_prod_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')
|
|
474
|
+
HOSTNAME=$(printf %s "$(printf %s "pan-test-app-prod-api-$CL_prod_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | escapeForDotEnv)
|
|
475
|
+
ROOT_URL=$(printf %s "https://$(printf %s "pan-test-app-prod-api-$CL_prod_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | escapeForDotEnv)
|
|
476
|
+
HOSTNAME_INTERNAL=$(printf %s "$(printf %s "pan-test-app-prod-api-$CL_prod_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | escapeForDotEnv)
|
|
477
|
+
ROOT_URL_INTERNAL=$(printf %s "https://$(printf %s "pan-test-app-prod-api-$CL_prod_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | escapeForDotEnv)
|
|
487
478
|
DEPLOY_CLOUD_RUN_PROJECT_ID=google-project-id
|
|
488
479
|
DEPLOY_CLOUD_RUN_REGION=europe-west6
|
|
489
|
-
GCLOUD_DEPLOY_credentialsKey=$CL_prod_api_GCLOUD_DEPLOY_credentialsKey
|
|
490
|
-
GCLOUD_RUN_canonicalHostSuffix=$CL_prod_api_GCLOUD_RUN_canonicalHostSuffix
|
|
491
|
-
_ALL_ENV_VAR_KEYS=["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","
|
|
480
|
+
GCLOUD_DEPLOY_credentialsKey=$(printf %s "$CL_prod_api_GCLOUD_DEPLOY_credentialsKey" | escapeForDotEnv)
|
|
481
|
+
GCLOUD_RUN_canonicalHostSuffix=$(printf %s "$CL_prod_api_GCLOUD_RUN_canonicalHostSuffix" | escapeForDotEnv)
|
|
482
|
+
_ALL_ENV_VAR_KEYS=["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]
|
|
492
483
|
EOF
|
|
493
|
-
-
|
|
494
|
-
-
|
|
484
|
+
- collapseable_section_end "write-dotenv-api"
|
|
485
|
+
- collapseable_section_start "write-dotenv-www" "write dot env for www"
|
|
495
486
|
- |-
|
|
496
487
|
cat <<EOF > www/.env
|
|
497
488
|
ENV_SHORT=prod
|
|
498
489
|
APP_DIR=www
|
|
499
490
|
ENV_TYPE=prod
|
|
500
|
-
|
|
501
|
-
ROOT_URL
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
ROOT_URL_INTERNAL=https://$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')
|
|
491
|
+
HOSTNAME=$(printf %s "$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | escapeForDotEnv)
|
|
492
|
+
ROOT_URL=$(printf %s "https://$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | escapeForDotEnv)
|
|
493
|
+
HOSTNAME_INTERNAL=$(printf %s "$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | escapeForDotEnv)
|
|
494
|
+
ROOT_URL_INTERNAL=$(printf %s "https://$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | escapeForDotEnv)
|
|
505
495
|
DEPLOY_CLOUD_RUN_PROJECT_ID=google-project-id
|
|
506
496
|
DEPLOY_CLOUD_RUN_REGION=europe-west6
|
|
507
|
-
GCLOUD_DEPLOY_credentialsKey=$CL_prod_www_GCLOUD_DEPLOY_credentialsKey
|
|
508
|
-
GCLOUD_RUN_canonicalHostSuffix=$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix
|
|
509
|
-
API_URL
|
|
510
|
-
_ALL_ENV_VAR_KEYS=["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","
|
|
497
|
+
GCLOUD_DEPLOY_credentialsKey=$(printf %s "$CL_prod_www_GCLOUD_DEPLOY_credentialsKey" | escapeForDotEnv)
|
|
498
|
+
GCLOUD_RUN_canonicalHostSuffix=$(printf %s "$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | escapeForDotEnv)
|
|
499
|
+
API_URL=$(printf %s "https://$(printf %s "pan-test-app-prod-api-$CL_prod_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')/graphql" | escapeForDotEnv)
|
|
500
|
+
_ALL_ENV_VAR_KEYS=["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix","API_URL"]
|
|
511
501
|
EOF
|
|
512
|
-
-
|
|
513
|
-
-
|
|
502
|
+
- collapseable_section_end "write-dotenv-www"
|
|
503
|
+
- collapseable_section_start "nodeinstall" "Ensure node version"
|
|
514
504
|
- if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
|
|
515
505
|
- if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
|
|
516
|
-
-
|
|
506
|
+
- collapseable_section_end "nodeinstall"
|
|
517
507
|
- cd .
|
|
518
|
-
-
|
|
508
|
+
- collapseable_section_start "nodeinstall" "Ensure node version"
|
|
519
509
|
- if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
|
|
520
510
|
- if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
|
|
521
|
-
-
|
|
522
|
-
-
|
|
511
|
+
- collapseable_section_end "nodeinstall"
|
|
512
|
+
- collapseable_section_start "yarninstall" "Yarn install"
|
|
523
513
|
- yarn install --immutable
|
|
524
|
-
-
|
|
514
|
+
- collapseable_section_end "yarninstall"
|
|
525
515
|
- yarn build
|
|
526
516
|
cache:
|
|
527
517
|
- key: .-yarn
|
|
@@ -532,20 +522,12 @@ variables:
|
|
|
532
522
|
policy: pull-push
|
|
533
523
|
paths:
|
|
534
524
|
- node_modules
|
|
535
|
-
- key: myWorkspace-turbo
|
|
536
|
-
policy: pull-push
|
|
537
|
-
paths:
|
|
538
|
-
- .turbo
|
|
539
|
-
- key: myWorkspace-next-cache
|
|
540
|
-
policy: pull-push
|
|
541
|
-
paths:
|
|
542
|
-
- api/.next/cache
|
|
543
|
-
- www/.next/cache
|
|
544
525
|
- key: myWorkspace-default
|
|
545
526
|
policy: pull-push
|
|
546
527
|
paths:
|
|
547
|
-
- .
|
|
528
|
+
- .turbo
|
|
548
529
|
- api/.component-custom-cache
|
|
530
|
+
- www/.next/cache
|
|
549
531
|
artifacts:
|
|
550
532
|
paths:
|
|
551
533
|
- api/.next
|
|
@@ -580,7 +562,7 @@ variables:
|
|
|
580
562
|
KUBERNETES_MEMORY_REQUEST: 1Gi
|
|
581
563
|
KUBERNETES_MEMORY_LIMIT: 2Gi
|
|
582
564
|
script:
|
|
583
|
-
-
|
|
565
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
584
566
|
- export APP_DIR="api"
|
|
585
567
|
- export DOCKER_BUILD_CONTEXT="."
|
|
586
568
|
- export DOCKER_REGISTRY="europe-west6-docker.pkg.dev"
|
|
@@ -596,20 +578,20 @@ variables:
|
|
|
596
578
|
COPY --chown=node:node api/yarn.lock /app/api/yarn.lock
|
|
597
579
|
COPY --chown=node:node .yarnrc.yml /app/.yarnrc.yml
|
|
598
580
|
COPY --chown=node:node .yarn /app/.yarn"
|
|
599
|
-
-
|
|
581
|
+
- collapseable_section_end "injectvars"
|
|
600
582
|
- ensureNodeDockerfile
|
|
601
|
-
-
|
|
583
|
+
- collapseable_section_start "docker-login" "Docker Login"
|
|
602
584
|
- gcloud auth activate-service-account --key-file=<(echo "$CL_dev_api_GCLOUD_DEPLOY_credentialsKey")
|
|
603
585
|
- gcloud auth configure-docker europe-west6-docker.pkg.dev
|
|
604
|
-
-
|
|
605
|
-
-
|
|
586
|
+
- collapseable_section_end "docker-login"
|
|
587
|
+
- collapseable_section_start "docker-build" "Docker build"
|
|
606
588
|
- docker build --network host --cache-from $DOCKER_CACHE_IMAGE --tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG -f $APP_DIR/Dockerfile $DOCKER_BUILD_CONTEXT --build-arg BUILDKIT_INLINE_CACHE=1
|
|
607
|
-
-
|
|
608
|
-
-
|
|
589
|
+
- collapseable_section_end "docker-build"
|
|
590
|
+
- collapseable_section_start "docker-push" "Docker push and tag"
|
|
609
591
|
- docker push $DOCKER_IMAGE:$DOCKER_IMAGE_TAG
|
|
610
592
|
- docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG $DOCKER_CACHE_IMAGE
|
|
611
593
|
- docker push $DOCKER_CACHE_IMAGE
|
|
612
|
-
-
|
|
594
|
+
- collapseable_section_end "docker-push"
|
|
613
595
|
cache:
|
|
614
596
|
- key: api-yarn
|
|
615
597
|
policy: pull
|
|
@@ -629,8 +611,8 @@ variables:
|
|
|
629
611
|
image: aquasec/trivy:0.38.3
|
|
630
612
|
variables: {}
|
|
631
613
|
script:
|
|
632
|
-
-
|
|
633
|
-
-
|
|
614
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
615
|
+
- collapseable_section_end "injectvars"
|
|
634
616
|
- trivy fs --quiet --format cyclonedx --output "__sbom.json" api
|
|
635
617
|
artifacts:
|
|
636
618
|
paths:
|
|
@@ -651,35 +633,34 @@ variables:
|
|
|
651
633
|
KUBERNETES_MEMORY_REQUEST: 200Mi
|
|
652
634
|
KUBERNETES_MEMORY_LIMIT: 400Mi
|
|
653
635
|
script:
|
|
654
|
-
-
|
|
636
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
655
637
|
- export ENV_SHORT="dev"
|
|
656
638
|
- export APP_DIR="api"
|
|
657
639
|
- export ENV_TYPE="dev"
|
|
658
640
|
- export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
|
|
659
641
|
- export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
|
|
660
642
|
- 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\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
|
|
661
|
-
- export
|
|
643
|
+
- export HOSTNAME="$(printf %s "pan-test-app-dev-api-$CL_dev_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"
|
|
662
644
|
- export ROOT_URL="https://$(printf %s "pan-test-app-dev-api-$CL_dev_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"
|
|
663
|
-
- export
|
|
664
|
-
- export HOST_CANONICAL="$(printf %s "pan-test-app-dev-api-$CL_dev_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"
|
|
645
|
+
- export HOSTNAME_INTERNAL="$(printf %s "pan-test-app-dev-api-$CL_dev_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"
|
|
665
646
|
- export ROOT_URL_INTERNAL="https://$(printf %s "pan-test-app-dev-api-$CL_dev_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"
|
|
666
647
|
- export DEPLOY_CLOUD_RUN_PROJECT_ID="google-project-id"
|
|
667
648
|
- export DEPLOY_CLOUD_RUN_REGION="europe-west6"
|
|
668
649
|
- export GCLOUD_DEPLOY_credentialsKey="$CL_dev_api_GCLOUD_DEPLOY_credentialsKey"
|
|
669
650
|
- export GCLOUD_RUN_canonicalHostSuffix="$CL_dev_api_GCLOUD_RUN_canonicalHostSuffix"
|
|
670
|
-
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"
|
|
651
|
+
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOSTNAME\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\",\\"DEPLOY_CLOUD_RUN_PROJECT_ID\\",\\"DEPLOY_CLOUD_RUN_REGION\\",\\"GCLOUD_DEPLOY_credentialsKey\\",\\"GCLOUD_RUN_canonicalHostSuffix\\"]"
|
|
671
652
|
- export DOCKER_REGISTRY="europe-west6-docker.pkg.dev"
|
|
672
653
|
- export DOCKER_IMAGE="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/dev/api"
|
|
673
654
|
- export DOCKER_CACHE_IMAGE="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/api"
|
|
674
655
|
- export DOCKER_IMAGE_TAG="$CI_COMMIT_SHA"
|
|
675
656
|
- export CLOUDSDK_CORE_DISABLE_PROMPTS="1"
|
|
676
|
-
-
|
|
677
|
-
-
|
|
657
|
+
- collapseable_section_end "injectvars"
|
|
658
|
+
- collapseable_section_start "prepare" "Prepare..."
|
|
678
659
|
- gcloud auth activate-service-account --key-file=<(echo "$CL_dev_api_GCLOUD_DEPLOY_credentialsKey")
|
|
679
660
|
- export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe google-project-id --format="value(projectNumber)")
|
|
680
661
|
- 'echo "GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER"'
|
|
681
|
-
-
|
|
682
|
-
-
|
|
662
|
+
- collapseable_section_end "prepare"
|
|
663
|
+
- collapseable_section_start "writeenvvars" "Write env vars to file"
|
|
683
664
|
- |
|
|
684
665
|
cat > ____envvars.yaml <<EOF
|
|
685
666
|
ENV_SHORT: |-
|
|
@@ -689,40 +670,38 @@ variables:
|
|
|
689
670
|
ENV_TYPE: |-
|
|
690
671
|
dev
|
|
691
672
|
BUILD_INFO_BUILD_ID: |-
|
|
692
|
-
|
|
673
|
+
$(printf %s "$(git describe --tags 2>/dev/null || git rev-parse HEAD)" | sed '1!s/^/ /')
|
|
693
674
|
BUILD_INFO_BUILD_TIME: |-
|
|
694
|
-
|
|
675
|
+
$(printf %s "$CI_JOB_STARTED_AT" | sed '1!s/^/ /')
|
|
695
676
|
BUILD_INFO_CURRENT_VERSION: |-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
677
|
+
$(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\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")" | sed '1!s/^/ /')
|
|
678
|
+
HOSTNAME: |-
|
|
679
|
+
$(printf %s "$(printf %s "pan-test-app-dev-api-$CL_dev_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed '1!s/^/ /')
|
|
699
680
|
ROOT_URL: |-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
HOST_CANONICAL: |-
|
|
704
|
-
$(printf %s "$(printf %s "pan-test-app-dev-api-$CL_dev_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
681
|
+
$(printf %s "https://$(printf %s "pan-test-app-dev-api-$CL_dev_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed '1!s/^/ /')
|
|
682
|
+
HOSTNAME_INTERNAL: |-
|
|
683
|
+
$(printf %s "$(printf %s "pan-test-app-dev-api-$CL_dev_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed '1!s/^/ /')
|
|
705
684
|
ROOT_URL_INTERNAL: |-
|
|
706
|
-
|
|
685
|
+
$(printf %s "https://$(printf %s "pan-test-app-dev-api-$CL_dev_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed '1!s/^/ /')
|
|
707
686
|
DEPLOY_CLOUD_RUN_PROJECT_ID: |-
|
|
708
687
|
google-project-id
|
|
709
688
|
DEPLOY_CLOUD_RUN_REGION: |-
|
|
710
689
|
europe-west6
|
|
711
690
|
GCLOUD_RUN_canonicalHostSuffix: |-
|
|
712
|
-
|
|
691
|
+
$(printf %s "$CL_dev_api_GCLOUD_RUN_canonicalHostSuffix" | sed '1!s/^/ /')
|
|
713
692
|
_ALL_ENV_VAR_KEYS: |-
|
|
714
|
-
["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","
|
|
693
|
+
["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]
|
|
715
694
|
|
|
716
695
|
EOF
|
|
717
|
-
-
|
|
718
|
-
-
|
|
696
|
+
- collapseable_section_end "writeenvvars"
|
|
697
|
+
- collapseable_section_start "deploy" "Deploy to cloud run"
|
|
719
698
|
- gcloud run deploy pan-test-app-dev-api --command="yarn,start" --image=europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/dev/api:$DOCKER_IMAGE_TAG --project=google-project-id --region=europe-west6 --labels=customer-name=pan,component-name=api,app-name=test-app,env-type=dev,env-name=dev,build-type=node,cloud-run-service-name=pan-test-app-dev-api --env-vars-file=____envvars.yaml --min-instances=0 --max-instances=100 --cpu-throttling --allow-unauthenticated --ingress=all --cpu-boost
|
|
720
|
-
-
|
|
721
|
-
-
|
|
699
|
+
- collapseable_section_end "deploy"
|
|
700
|
+
- collapseable_section_start "cleanup" "Cleanup"
|
|
722
701
|
- gcloud run revisions list --project=google-project-id --region=europe-west6 --service=pan-test-app-dev-api --limit=unlimited --sort-by=metadata.creationTimestamp --format="value(name)" --filter='(status.conditions.status=False OR status.conditions.status=Unknown)' | while read -r revisionname; do gcloud run revisions delete --project=google-project-id --region=europe-west6 --quiet $revisionname ; done
|
|
723
702
|
- gcloud artifacts docker images list europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/dev/api --sort-by=~CREATE_TIME --format="value(version)" | tail -n +2 | while read -r version; do gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/dev/api@$version --quiet --delete-tags; done
|
|
724
703
|
- gcloud artifacts docker images list europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/api --sort-by=~CREATE_TIME --format="value(version)" | tail -n +2 | while read -r version; do gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/api@$version --quiet --delete-tags; done
|
|
725
|
-
-
|
|
704
|
+
- collapseable_section_end "cleanup"
|
|
726
705
|
- echo 'Uploading SBOM to Dependency Track'
|
|
727
706
|
- /dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "https://$(printf %s "pan-test-app-dev-api-$CL_dev_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" "__sbom.json" vex.json || true
|
|
728
707
|
- echo "CL_GITLAB_ENVIRONMENT_URL=https://$(printf %s "pan-test-app-dev-api-$CL_dev_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" >> gitlab_environment.env
|
|
@@ -762,9 +741,9 @@ variables:
|
|
|
762
741
|
KUBERNETES_MEMORY_LIMIT: 400Mi
|
|
763
742
|
GIT_STRATEGY: none
|
|
764
743
|
script:
|
|
765
|
-
-
|
|
744
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
766
745
|
- export CLOUDSDK_CORE_DISABLE_PROMPTS="1"
|
|
767
|
-
-
|
|
746
|
+
- collapseable_section_end "injectvars"
|
|
768
747
|
- set +e
|
|
769
748
|
- gcloud auth activate-service-account --key-file=<(echo "$CL_dev_api_GCLOUD_DEPLOY_credentialsKey")
|
|
770
749
|
- gcloud run services delete pan-test-app-dev-api --project=google-project-id --region=europe-west6
|
|
@@ -809,7 +788,7 @@ variables:
|
|
|
809
788
|
KUBERNETES_MEMORY_REQUEST: 1Gi
|
|
810
789
|
KUBERNETES_MEMORY_LIMIT: 2Gi
|
|
811
790
|
script:
|
|
812
|
-
-
|
|
791
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
813
792
|
- export APP_DIR="api"
|
|
814
793
|
- export DOCKER_BUILD_CONTEXT="."
|
|
815
794
|
- export DOCKER_REGISTRY="europe-west6-docker.pkg.dev"
|
|
@@ -825,20 +804,20 @@ variables:
|
|
|
825
804
|
COPY --chown=node:node api/yarn.lock /app/api/yarn.lock
|
|
826
805
|
COPY --chown=node:node .yarnrc.yml /app/.yarnrc.yml
|
|
827
806
|
COPY --chown=node:node .yarn /app/.yarn"
|
|
828
|
-
-
|
|
807
|
+
- collapseable_section_end "injectvars"
|
|
829
808
|
- ensureNodeDockerfile
|
|
830
|
-
-
|
|
809
|
+
- collapseable_section_start "docker-login" "Docker Login"
|
|
831
810
|
- gcloud auth activate-service-account --key-file=<(echo "$CL_review_api_GCLOUD_DEPLOY_credentialsKey")
|
|
832
811
|
- gcloud auth configure-docker europe-west6-docker.pkg.dev
|
|
833
|
-
-
|
|
834
|
-
-
|
|
812
|
+
- collapseable_section_end "docker-login"
|
|
813
|
+
- collapseable_section_start "docker-build" "Docker build"
|
|
835
814
|
- docker build --network host --cache-from $DOCKER_CACHE_IMAGE --tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG -f $APP_DIR/Dockerfile $DOCKER_BUILD_CONTEXT --build-arg BUILDKIT_INLINE_CACHE=1
|
|
836
|
-
-
|
|
837
|
-
-
|
|
815
|
+
- collapseable_section_end "docker-build"
|
|
816
|
+
- collapseable_section_start "docker-push" "Docker push and tag"
|
|
838
817
|
- docker push $DOCKER_IMAGE:$DOCKER_IMAGE_TAG
|
|
839
818
|
- docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG $DOCKER_CACHE_IMAGE
|
|
840
819
|
- docker push $DOCKER_CACHE_IMAGE
|
|
841
|
-
-
|
|
820
|
+
- collapseable_section_end "docker-push"
|
|
842
821
|
cache:
|
|
843
822
|
- key: api-yarn
|
|
844
823
|
policy: pull
|
|
@@ -856,8 +835,8 @@ variables:
|
|
|
856
835
|
image: aquasec/trivy:0.38.3
|
|
857
836
|
variables: {}
|
|
858
837
|
script:
|
|
859
|
-
-
|
|
860
|
-
-
|
|
838
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
839
|
+
- collapseable_section_end "injectvars"
|
|
861
840
|
- trivy fs --quiet --format cyclonedx --output "__sbom.json" api
|
|
862
841
|
artifacts:
|
|
863
842
|
paths:
|
|
@@ -876,35 +855,34 @@ variables:
|
|
|
876
855
|
KUBERNETES_MEMORY_REQUEST: 200Mi
|
|
877
856
|
KUBERNETES_MEMORY_LIMIT: 400Mi
|
|
878
857
|
script:
|
|
879
|
-
-
|
|
858
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
880
859
|
- export ENV_SHORT="review"
|
|
881
860
|
- export APP_DIR="api"
|
|
882
861
|
- export ENV_TYPE="review"
|
|
883
862
|
- export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
|
|
884
863
|
- export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
|
|
885
864
|
- 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\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
|
|
886
|
-
- export
|
|
865
|
+
- export HOSTNAME="$(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"; })-api-$CL_review_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"
|
|
887
866
|
- 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"; })-api-$CL_review_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"
|
|
888
|
-
- export
|
|
889
|
-
- 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"; })-api-$CL_review_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"
|
|
867
|
+
- export HOSTNAME_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"; })-api-$CL_review_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"
|
|
890
868
|
- 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"; })-api-$CL_review_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"
|
|
891
869
|
- export DEPLOY_CLOUD_RUN_PROJECT_ID="google-project-id"
|
|
892
870
|
- export DEPLOY_CLOUD_RUN_REGION="europe-west6"
|
|
893
871
|
- export GCLOUD_DEPLOY_credentialsKey="$CL_review_api_GCLOUD_DEPLOY_credentialsKey"
|
|
894
872
|
- export GCLOUD_RUN_canonicalHostSuffix="$CL_review_api_GCLOUD_RUN_canonicalHostSuffix"
|
|
895
|
-
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"
|
|
873
|
+
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOSTNAME\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\",\\"DEPLOY_CLOUD_RUN_PROJECT_ID\\",\\"DEPLOY_CLOUD_RUN_REGION\\",\\"GCLOUD_DEPLOY_credentialsKey\\",\\"GCLOUD_RUN_canonicalHostSuffix\\"]"
|
|
896
874
|
- export DOCKER_REGISTRY="europe-west6-docker.pkg.dev"
|
|
897
875
|
- export DOCKER_IMAGE="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/review/api/$([ -n "$CI_MERGE_REQUEST_IID" ] && echo "mr$CI_MERGE_REQUEST_IID" || { [ -n "$CI_COMMIT_REF_SLUG" ] && echo "$CI_COMMIT_REF_SLUG" || echo "unknown"; })"
|
|
898
876
|
- export DOCKER_CACHE_IMAGE="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/api"
|
|
899
877
|
- export DOCKER_IMAGE_TAG="$CI_COMMIT_SHA"
|
|
900
878
|
- export CLOUDSDK_CORE_DISABLE_PROMPTS="1"
|
|
901
|
-
-
|
|
902
|
-
-
|
|
879
|
+
- collapseable_section_end "injectvars"
|
|
880
|
+
- collapseable_section_start "prepare" "Prepare..."
|
|
903
881
|
- gcloud auth activate-service-account --key-file=<(echo "$CL_review_api_GCLOUD_DEPLOY_credentialsKey")
|
|
904
882
|
- export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe google-project-id --format="value(projectNumber)")
|
|
905
883
|
- 'echo "GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER"'
|
|
906
|
-
-
|
|
907
|
-
-
|
|
884
|
+
- collapseable_section_end "prepare"
|
|
885
|
+
- collapseable_section_start "writeenvvars" "Write env vars to file"
|
|
908
886
|
- |
|
|
909
887
|
cat > ____envvars.yaml <<EOF
|
|
910
888
|
ENV_SHORT: |-
|
|
@@ -914,43 +892,41 @@ variables:
|
|
|
914
892
|
ENV_TYPE: |-
|
|
915
893
|
review
|
|
916
894
|
BUILD_INFO_BUILD_ID: |-
|
|
917
|
-
|
|
895
|
+
$(printf %s "$(git describe --tags 2>/dev/null || git rev-parse HEAD)" | sed '1!s/^/ /')
|
|
918
896
|
BUILD_INFO_BUILD_TIME: |-
|
|
919
|
-
|
|
897
|
+
$(printf %s "$CI_JOB_STARTED_AT" | sed '1!s/^/ /')
|
|
920
898
|
BUILD_INFO_CURRENT_VERSION: |-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
899
|
+
$(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\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")" | sed '1!s/^/ /')
|
|
900
|
+
HOSTNAME: |-
|
|
901
|
+
$(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"; })-api-$CL_review_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed '1!s/^/ /')
|
|
924
902
|
ROOT_URL: |-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
HOST_CANONICAL: |-
|
|
929
|
-
$(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"; })-api-$CL_review_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
903
|
+
$(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"; })-api-$CL_review_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed '1!s/^/ /')
|
|
904
|
+
HOSTNAME_INTERNAL: |-
|
|
905
|
+
$(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"; })-api-$CL_review_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed '1!s/^/ /')
|
|
930
906
|
ROOT_URL_INTERNAL: |-
|
|
931
|
-
|
|
907
|
+
$(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"; })-api-$CL_review_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed '1!s/^/ /')
|
|
932
908
|
DEPLOY_CLOUD_RUN_PROJECT_ID: |-
|
|
933
909
|
google-project-id
|
|
934
910
|
DEPLOY_CLOUD_RUN_REGION: |-
|
|
935
911
|
europe-west6
|
|
936
912
|
GCLOUD_RUN_canonicalHostSuffix: |-
|
|
937
|
-
|
|
913
|
+
$(printf %s "$CL_review_api_GCLOUD_RUN_canonicalHostSuffix" | sed '1!s/^/ /')
|
|
938
914
|
_ALL_ENV_VAR_KEYS: |-
|
|
939
|
-
["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","
|
|
915
|
+
["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]
|
|
940
916
|
|
|
941
917
|
EOF
|
|
942
|
-
-
|
|
943
|
-
-
|
|
918
|
+
- collapseable_section_end "writeenvvars"
|
|
919
|
+
- collapseable_section_start "deploy" "Deploy to cloud run"
|
|
944
920
|
- 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"; })-api" | awk '{print tolower($0)}') --command="yarn,start" --image=europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/review/api/$([ -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=google-project-id --region=europe-west6 --labels=customer-name=pan,component-name=api,app-name=test-app,env-type=review,env-name=review,build-type=node,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"; })-api" | awk '{print tolower($0)}') --env-vars-file=____envvars.yaml --min-instances=0 --max-instances=100 --cpu-throttling --allow-unauthenticated --ingress=all --cpu-boost
|
|
945
|
-
-
|
|
946
|
-
-
|
|
921
|
+
- collapseable_section_end "deploy"
|
|
922
|
+
- collapseable_section_start "cleanup" "Cleanup"
|
|
947
923
|
- gcloud run revisions list --project=google-project-id --region=europe-west6 --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"; })-api" | 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=google-project-id --region=europe-west6 --quiet $revisionname ; done
|
|
948
924
|
- gcloud artifacts docker images list europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/review/api/$([ -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 europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/review/api/$([ -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
|
|
949
925
|
- gcloud artifacts docker images list europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/api --sort-by=~CREATE_TIME --format="value(version)" | tail -n +2 | while read -r version; do gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/api@$version --quiet --delete-tags; done
|
|
950
926
|
- set +e
|
|
951
927
|
- gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/review/api --quiet --delete-tags
|
|
952
928
|
- set -e
|
|
953
|
-
-
|
|
929
|
+
- collapseable_section_end "cleanup"
|
|
954
930
|
- echo 'Uploading SBOM to Dependency Track'
|
|
955
931
|
- /dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "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"; })-api-$CL_review_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" "__sbom.json" vex.json || true
|
|
956
932
|
- 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"; })-api-$CL_review_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" >> gitlab_environment.env
|
|
@@ -988,9 +964,9 @@ variables:
|
|
|
988
964
|
KUBERNETES_MEMORY_LIMIT: 400Mi
|
|
989
965
|
GIT_STRATEGY: none
|
|
990
966
|
script:
|
|
991
|
-
-
|
|
967
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
992
968
|
- export CLOUDSDK_CORE_DISABLE_PROMPTS="1"
|
|
993
|
-
-
|
|
969
|
+
- collapseable_section_end "injectvars"
|
|
994
970
|
- set +e
|
|
995
971
|
- gcloud auth activate-service-account --key-file=<(echo "$CL_review_api_GCLOUD_DEPLOY_credentialsKey")
|
|
996
972
|
- 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"; })-api" | awk '{print tolower($0)}') --project=google-project-id --region=europe-west6
|
|
@@ -1036,7 +1012,7 @@ variables:
|
|
|
1036
1012
|
KUBERNETES_MEMORY_REQUEST: 1Gi
|
|
1037
1013
|
KUBERNETES_MEMORY_LIMIT: 2Gi
|
|
1038
1014
|
script:
|
|
1039
|
-
-
|
|
1015
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
1040
1016
|
- export APP_DIR="api"
|
|
1041
1017
|
- export DOCKER_BUILD_CONTEXT="."
|
|
1042
1018
|
- export DOCKER_REGISTRY="europe-west6-docker.pkg.dev"
|
|
@@ -1052,20 +1028,20 @@ variables:
|
|
|
1052
1028
|
COPY --chown=node:node api/yarn.lock /app/api/yarn.lock
|
|
1053
1029
|
COPY --chown=node:node .yarnrc.yml /app/.yarnrc.yml
|
|
1054
1030
|
COPY --chown=node:node .yarn /app/.yarn"
|
|
1055
|
-
-
|
|
1031
|
+
- collapseable_section_end "injectvars"
|
|
1056
1032
|
- ensureNodeDockerfile
|
|
1057
|
-
-
|
|
1033
|
+
- collapseable_section_start "docker-login" "Docker Login"
|
|
1058
1034
|
- gcloud auth activate-service-account --key-file=<(echo "$CL_stage_api_GCLOUD_DEPLOY_credentialsKey")
|
|
1059
1035
|
- gcloud auth configure-docker europe-west6-docker.pkg.dev
|
|
1060
|
-
-
|
|
1061
|
-
-
|
|
1036
|
+
- collapseable_section_end "docker-login"
|
|
1037
|
+
- collapseable_section_start "docker-build" "Docker build"
|
|
1062
1038
|
- docker build --network host --cache-from $DOCKER_CACHE_IMAGE --tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG -f $APP_DIR/Dockerfile $DOCKER_BUILD_CONTEXT --build-arg BUILDKIT_INLINE_CACHE=1
|
|
1063
|
-
-
|
|
1064
|
-
-
|
|
1039
|
+
- collapseable_section_end "docker-build"
|
|
1040
|
+
- collapseable_section_start "docker-push" "Docker push and tag"
|
|
1065
1041
|
- docker push $DOCKER_IMAGE:$DOCKER_IMAGE_TAG
|
|
1066
1042
|
- docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG $DOCKER_CACHE_IMAGE
|
|
1067
1043
|
- docker push $DOCKER_CACHE_IMAGE
|
|
1068
|
-
-
|
|
1044
|
+
- collapseable_section_end "docker-push"
|
|
1069
1045
|
cache:
|
|
1070
1046
|
- key: api-yarn
|
|
1071
1047
|
policy: pull
|
|
@@ -1083,8 +1059,8 @@ variables:
|
|
|
1083
1059
|
image: aquasec/trivy:0.38.3
|
|
1084
1060
|
variables: {}
|
|
1085
1061
|
script:
|
|
1086
|
-
-
|
|
1087
|
-
-
|
|
1062
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
1063
|
+
- collapseable_section_end "injectvars"
|
|
1088
1064
|
- trivy fs --quiet --format cyclonedx --output "__sbom.json" api
|
|
1089
1065
|
artifacts:
|
|
1090
1066
|
paths:
|
|
@@ -1103,35 +1079,34 @@ variables:
|
|
|
1103
1079
|
KUBERNETES_MEMORY_REQUEST: 200Mi
|
|
1104
1080
|
KUBERNETES_MEMORY_LIMIT: 400Mi
|
|
1105
1081
|
script:
|
|
1106
|
-
-
|
|
1082
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
1107
1083
|
- export ENV_SHORT="stage"
|
|
1108
1084
|
- export APP_DIR="api"
|
|
1109
1085
|
- export ENV_TYPE="stage"
|
|
1110
1086
|
- export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
|
|
1111
1087
|
- export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
|
|
1112
1088
|
- 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\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
|
|
1113
|
-
- export
|
|
1089
|
+
- export HOSTNAME="$(printf %s "pan-test-app-stage-api-$CL_stage_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"
|
|
1114
1090
|
- export ROOT_URL="https://$(printf %s "pan-test-app-stage-api-$CL_stage_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"
|
|
1115
|
-
- export
|
|
1116
|
-
- export HOST_CANONICAL="$(printf %s "pan-test-app-stage-api-$CL_stage_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"
|
|
1091
|
+
- export HOSTNAME_INTERNAL="$(printf %s "pan-test-app-stage-api-$CL_stage_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"
|
|
1117
1092
|
- export ROOT_URL_INTERNAL="https://$(printf %s "pan-test-app-stage-api-$CL_stage_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"
|
|
1118
1093
|
- export DEPLOY_CLOUD_RUN_PROJECT_ID="google-project-id"
|
|
1119
1094
|
- export DEPLOY_CLOUD_RUN_REGION="europe-west6"
|
|
1120
1095
|
- export GCLOUD_DEPLOY_credentialsKey="$CL_stage_api_GCLOUD_DEPLOY_credentialsKey"
|
|
1121
1096
|
- export GCLOUD_RUN_canonicalHostSuffix="$CL_stage_api_GCLOUD_RUN_canonicalHostSuffix"
|
|
1122
|
-
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"
|
|
1097
|
+
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOSTNAME\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\",\\"DEPLOY_CLOUD_RUN_PROJECT_ID\\",\\"DEPLOY_CLOUD_RUN_REGION\\",\\"GCLOUD_DEPLOY_credentialsKey\\",\\"GCLOUD_RUN_canonicalHostSuffix\\"]"
|
|
1123
1098
|
- export DOCKER_REGISTRY="europe-west6-docker.pkg.dev"
|
|
1124
1099
|
- export DOCKER_IMAGE="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/stage/api"
|
|
1125
1100
|
- export DOCKER_CACHE_IMAGE="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/api"
|
|
1126
1101
|
- export DOCKER_IMAGE_TAG="$CI_COMMIT_SHA"
|
|
1127
1102
|
- export CLOUDSDK_CORE_DISABLE_PROMPTS="1"
|
|
1128
|
-
-
|
|
1129
|
-
-
|
|
1103
|
+
- collapseable_section_end "injectvars"
|
|
1104
|
+
- collapseable_section_start "prepare" "Prepare..."
|
|
1130
1105
|
- gcloud auth activate-service-account --key-file=<(echo "$CL_stage_api_GCLOUD_DEPLOY_credentialsKey")
|
|
1131
1106
|
- export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe google-project-id --format="value(projectNumber)")
|
|
1132
1107
|
- 'echo "GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER"'
|
|
1133
|
-
-
|
|
1134
|
-
-
|
|
1108
|
+
- collapseable_section_end "prepare"
|
|
1109
|
+
- collapseable_section_start "writeenvvars" "Write env vars to file"
|
|
1135
1110
|
- |
|
|
1136
1111
|
cat > ____envvars.yaml <<EOF
|
|
1137
1112
|
ENV_SHORT: |-
|
|
@@ -1141,40 +1116,38 @@ variables:
|
|
|
1141
1116
|
ENV_TYPE: |-
|
|
1142
1117
|
stage
|
|
1143
1118
|
BUILD_INFO_BUILD_ID: |-
|
|
1144
|
-
|
|
1119
|
+
$(printf %s "$(git describe --tags 2>/dev/null || git rev-parse HEAD)" | sed '1!s/^/ /')
|
|
1145
1120
|
BUILD_INFO_BUILD_TIME: |-
|
|
1146
|
-
|
|
1121
|
+
$(printf %s "$CI_JOB_STARTED_AT" | sed '1!s/^/ /')
|
|
1147
1122
|
BUILD_INFO_CURRENT_VERSION: |-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1123
|
+
$(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\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")" | sed '1!s/^/ /')
|
|
1124
|
+
HOSTNAME: |-
|
|
1125
|
+
$(printf %s "$(printf %s "pan-test-app-stage-api-$CL_stage_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed '1!s/^/ /')
|
|
1151
1126
|
ROOT_URL: |-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
HOST_CANONICAL: |-
|
|
1156
|
-
$(printf %s "$(printf %s "pan-test-app-stage-api-$CL_stage_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
1127
|
+
$(printf %s "https://$(printf %s "pan-test-app-stage-api-$CL_stage_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed '1!s/^/ /')
|
|
1128
|
+
HOSTNAME_INTERNAL: |-
|
|
1129
|
+
$(printf %s "$(printf %s "pan-test-app-stage-api-$CL_stage_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed '1!s/^/ /')
|
|
1157
1130
|
ROOT_URL_INTERNAL: |-
|
|
1158
|
-
|
|
1131
|
+
$(printf %s "https://$(printf %s "pan-test-app-stage-api-$CL_stage_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed '1!s/^/ /')
|
|
1159
1132
|
DEPLOY_CLOUD_RUN_PROJECT_ID: |-
|
|
1160
1133
|
google-project-id
|
|
1161
1134
|
DEPLOY_CLOUD_RUN_REGION: |-
|
|
1162
1135
|
europe-west6
|
|
1163
1136
|
GCLOUD_RUN_canonicalHostSuffix: |-
|
|
1164
|
-
|
|
1137
|
+
$(printf %s "$CL_stage_api_GCLOUD_RUN_canonicalHostSuffix" | sed '1!s/^/ /')
|
|
1165
1138
|
_ALL_ENV_VAR_KEYS: |-
|
|
1166
|
-
["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","
|
|
1139
|
+
["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]
|
|
1167
1140
|
|
|
1168
1141
|
EOF
|
|
1169
|
-
-
|
|
1170
|
-
-
|
|
1142
|
+
- collapseable_section_end "writeenvvars"
|
|
1143
|
+
- collapseable_section_start "deploy" "Deploy to cloud run"
|
|
1171
1144
|
- gcloud run deploy pan-test-app-stage-api --command="yarn,start" --image=europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/stage/api:$DOCKER_IMAGE_TAG --project=google-project-id --region=europe-west6 --labels=customer-name=pan,component-name=api,app-name=test-app,env-type=stage,env-name=stage,build-type=node,cloud-run-service-name=pan-test-app-stage-api --env-vars-file=____envvars.yaml --min-instances=0 --max-instances=100 --cpu-throttling --allow-unauthenticated --ingress=all --cpu-boost
|
|
1172
|
-
-
|
|
1173
|
-
-
|
|
1145
|
+
- collapseable_section_end "deploy"
|
|
1146
|
+
- collapseable_section_start "cleanup" "Cleanup"
|
|
1174
1147
|
- gcloud run revisions list --project=google-project-id --region=europe-west6 --service=pan-test-app-stage-api --limit=unlimited --sort-by=metadata.creationTimestamp --format="value(name)" --filter='(status.conditions.status=False OR status.conditions.status=Unknown)' | while read -r revisionname; do gcloud run revisions delete --project=google-project-id --region=europe-west6 --quiet $revisionname ; done
|
|
1175
1148
|
- gcloud artifacts docker images list europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/stage/api --sort-by=~CREATE_TIME --format="value(version)" | tail -n +2 | while read -r version; do gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/stage/api@$version --quiet --delete-tags; done
|
|
1176
1149
|
- gcloud artifacts docker images list europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/api --sort-by=~CREATE_TIME --format="value(version)" | tail -n +2 | while read -r version; do gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/api@$version --quiet --delete-tags; done
|
|
1177
|
-
-
|
|
1150
|
+
- collapseable_section_end "cleanup"
|
|
1178
1151
|
- echo 'Uploading SBOM to Dependency Track'
|
|
1179
1152
|
- /dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "https://$(printf %s "pan-test-app-stage-api-$CL_stage_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" "__sbom.json" vex.json || true
|
|
1180
1153
|
- echo "CL_GITLAB_ENVIRONMENT_URL=https://$(printf %s "pan-test-app-stage-api-$CL_stage_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" >> gitlab_environment.env
|
|
@@ -1205,9 +1178,9 @@ variables:
|
|
|
1205
1178
|
KUBERNETES_MEMORY_LIMIT: 400Mi
|
|
1206
1179
|
GIT_STRATEGY: none
|
|
1207
1180
|
script:
|
|
1208
|
-
-
|
|
1181
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
1209
1182
|
- export CLOUDSDK_CORE_DISABLE_PROMPTS="1"
|
|
1210
|
-
-
|
|
1183
|
+
- collapseable_section_end "injectvars"
|
|
1211
1184
|
- set +e
|
|
1212
1185
|
- gcloud auth activate-service-account --key-file=<(echo "$CL_stage_api_GCLOUD_DEPLOY_credentialsKey")
|
|
1213
1186
|
- gcloud run services delete pan-test-app-stage-api --project=google-project-id --region=europe-west6
|
|
@@ -1250,7 +1223,7 @@ variables:
|
|
|
1250
1223
|
KUBERNETES_MEMORY_REQUEST: 1Gi
|
|
1251
1224
|
KUBERNETES_MEMORY_LIMIT: 2Gi
|
|
1252
1225
|
script:
|
|
1253
|
-
-
|
|
1226
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
1254
1227
|
- export APP_DIR="api"
|
|
1255
1228
|
- export DOCKER_BUILD_CONTEXT="."
|
|
1256
1229
|
- export DOCKER_REGISTRY="europe-west6-docker.pkg.dev"
|
|
@@ -1266,20 +1239,20 @@ variables:
|
|
|
1266
1239
|
COPY --chown=node:node api/yarn.lock /app/api/yarn.lock
|
|
1267
1240
|
COPY --chown=node:node .yarnrc.yml /app/.yarnrc.yml
|
|
1268
1241
|
COPY --chown=node:node .yarn /app/.yarn"
|
|
1269
|
-
-
|
|
1242
|
+
- collapseable_section_end "injectvars"
|
|
1270
1243
|
- ensureNodeDockerfile
|
|
1271
|
-
-
|
|
1244
|
+
- collapseable_section_start "docker-login" "Docker Login"
|
|
1272
1245
|
- gcloud auth activate-service-account --key-file=<(echo "$CL_prod_api_GCLOUD_DEPLOY_credentialsKey")
|
|
1273
1246
|
- gcloud auth configure-docker europe-west6-docker.pkg.dev
|
|
1274
|
-
-
|
|
1275
|
-
-
|
|
1247
|
+
- collapseable_section_end "docker-login"
|
|
1248
|
+
- collapseable_section_start "docker-build" "Docker build"
|
|
1276
1249
|
- docker build --network host --cache-from $DOCKER_CACHE_IMAGE --tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG -f $APP_DIR/Dockerfile $DOCKER_BUILD_CONTEXT --build-arg BUILDKIT_INLINE_CACHE=1
|
|
1277
|
-
-
|
|
1278
|
-
-
|
|
1250
|
+
- collapseable_section_end "docker-build"
|
|
1251
|
+
- collapseable_section_start "docker-push" "Docker push and tag"
|
|
1279
1252
|
- docker push $DOCKER_IMAGE:$DOCKER_IMAGE_TAG
|
|
1280
1253
|
- docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG $DOCKER_CACHE_IMAGE
|
|
1281
1254
|
- docker push $DOCKER_CACHE_IMAGE
|
|
1282
|
-
-
|
|
1255
|
+
- collapseable_section_end "docker-push"
|
|
1283
1256
|
cache:
|
|
1284
1257
|
- key: api-yarn
|
|
1285
1258
|
policy: pull
|
|
@@ -1297,8 +1270,8 @@ variables:
|
|
|
1297
1270
|
image: aquasec/trivy:0.38.3
|
|
1298
1271
|
variables: {}
|
|
1299
1272
|
script:
|
|
1300
|
-
-
|
|
1301
|
-
-
|
|
1273
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
1274
|
+
- collapseable_section_end "injectvars"
|
|
1302
1275
|
- trivy fs --quiet --format cyclonedx --output "__sbom.json" api
|
|
1303
1276
|
artifacts:
|
|
1304
1277
|
paths:
|
|
@@ -1317,35 +1290,34 @@ variables:
|
|
|
1317
1290
|
KUBERNETES_MEMORY_REQUEST: 200Mi
|
|
1318
1291
|
KUBERNETES_MEMORY_LIMIT: 400Mi
|
|
1319
1292
|
script:
|
|
1320
|
-
-
|
|
1293
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
1321
1294
|
- export ENV_SHORT="prod"
|
|
1322
1295
|
- export APP_DIR="api"
|
|
1323
1296
|
- export ENV_TYPE="prod"
|
|
1324
1297
|
- export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
|
|
1325
1298
|
- export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
|
|
1326
1299
|
- 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\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
|
|
1327
|
-
- export
|
|
1300
|
+
- export HOSTNAME="$(printf %s "pan-test-app-prod-api-$CL_prod_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"
|
|
1328
1301
|
- export ROOT_URL="https://$(printf %s "pan-test-app-prod-api-$CL_prod_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"
|
|
1329
|
-
- export
|
|
1330
|
-
- export HOST_CANONICAL="$(printf %s "pan-test-app-prod-api-$CL_prod_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"
|
|
1302
|
+
- export HOSTNAME_INTERNAL="$(printf %s "pan-test-app-prod-api-$CL_prod_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"
|
|
1331
1303
|
- export ROOT_URL_INTERNAL="https://$(printf %s "pan-test-app-prod-api-$CL_prod_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"
|
|
1332
1304
|
- export DEPLOY_CLOUD_RUN_PROJECT_ID="google-project-id"
|
|
1333
1305
|
- export DEPLOY_CLOUD_RUN_REGION="europe-west6"
|
|
1334
1306
|
- export GCLOUD_DEPLOY_credentialsKey="$CL_prod_api_GCLOUD_DEPLOY_credentialsKey"
|
|
1335
1307
|
- export GCLOUD_RUN_canonicalHostSuffix="$CL_prod_api_GCLOUD_RUN_canonicalHostSuffix"
|
|
1336
|
-
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"
|
|
1308
|
+
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOSTNAME\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\",\\"DEPLOY_CLOUD_RUN_PROJECT_ID\\",\\"DEPLOY_CLOUD_RUN_REGION\\",\\"GCLOUD_DEPLOY_credentialsKey\\",\\"GCLOUD_RUN_canonicalHostSuffix\\"]"
|
|
1337
1309
|
- export DOCKER_REGISTRY="europe-west6-docker.pkg.dev"
|
|
1338
1310
|
- export DOCKER_IMAGE="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/prod/api"
|
|
1339
1311
|
- export DOCKER_CACHE_IMAGE="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/api"
|
|
1340
1312
|
- export DOCKER_IMAGE_TAG="$CI_COMMIT_SHA"
|
|
1341
1313
|
- export CLOUDSDK_CORE_DISABLE_PROMPTS="1"
|
|
1342
|
-
-
|
|
1343
|
-
-
|
|
1314
|
+
- collapseable_section_end "injectvars"
|
|
1315
|
+
- collapseable_section_start "prepare" "Prepare..."
|
|
1344
1316
|
- gcloud auth activate-service-account --key-file=<(echo "$CL_prod_api_GCLOUD_DEPLOY_credentialsKey")
|
|
1345
1317
|
- export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe google-project-id --format="value(projectNumber)")
|
|
1346
1318
|
- 'echo "GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER"'
|
|
1347
|
-
-
|
|
1348
|
-
-
|
|
1319
|
+
- collapseable_section_end "prepare"
|
|
1320
|
+
- collapseable_section_start "writeenvvars" "Write env vars to file"
|
|
1349
1321
|
- |
|
|
1350
1322
|
cat > ____envvars.yaml <<EOF
|
|
1351
1323
|
ENV_SHORT: |-
|
|
@@ -1355,40 +1327,38 @@ variables:
|
|
|
1355
1327
|
ENV_TYPE: |-
|
|
1356
1328
|
prod
|
|
1357
1329
|
BUILD_INFO_BUILD_ID: |-
|
|
1358
|
-
|
|
1330
|
+
$(printf %s "$(git describe --tags 2>/dev/null || git rev-parse HEAD)" | sed '1!s/^/ /')
|
|
1359
1331
|
BUILD_INFO_BUILD_TIME: |-
|
|
1360
|
-
|
|
1332
|
+
$(printf %s "$CI_JOB_STARTED_AT" | sed '1!s/^/ /')
|
|
1361
1333
|
BUILD_INFO_CURRENT_VERSION: |-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1334
|
+
$(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\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")" | sed '1!s/^/ /')
|
|
1335
|
+
HOSTNAME: |-
|
|
1336
|
+
$(printf %s "$(printf %s "pan-test-app-prod-api-$CL_prod_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed '1!s/^/ /')
|
|
1365
1337
|
ROOT_URL: |-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
HOST_CANONICAL: |-
|
|
1370
|
-
$(printf %s "$(printf %s "pan-test-app-prod-api-$CL_prod_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
1338
|
+
$(printf %s "https://$(printf %s "pan-test-app-prod-api-$CL_prod_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed '1!s/^/ /')
|
|
1339
|
+
HOSTNAME_INTERNAL: |-
|
|
1340
|
+
$(printf %s "$(printf %s "pan-test-app-prod-api-$CL_prod_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed '1!s/^/ /')
|
|
1371
1341
|
ROOT_URL_INTERNAL: |-
|
|
1372
|
-
|
|
1342
|
+
$(printf %s "https://$(printf %s "pan-test-app-prod-api-$CL_prod_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed '1!s/^/ /')
|
|
1373
1343
|
DEPLOY_CLOUD_RUN_PROJECT_ID: |-
|
|
1374
1344
|
google-project-id
|
|
1375
1345
|
DEPLOY_CLOUD_RUN_REGION: |-
|
|
1376
1346
|
europe-west6
|
|
1377
1347
|
GCLOUD_RUN_canonicalHostSuffix: |-
|
|
1378
|
-
|
|
1348
|
+
$(printf %s "$CL_prod_api_GCLOUD_RUN_canonicalHostSuffix" | sed '1!s/^/ /')
|
|
1379
1349
|
_ALL_ENV_VAR_KEYS: |-
|
|
1380
|
-
["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","
|
|
1350
|
+
["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]
|
|
1381
1351
|
|
|
1382
1352
|
EOF
|
|
1383
|
-
-
|
|
1384
|
-
-
|
|
1353
|
+
- collapseable_section_end "writeenvvars"
|
|
1354
|
+
- collapseable_section_start "deploy" "Deploy to cloud run"
|
|
1385
1355
|
- gcloud run deploy pan-test-app-prod-api --command="yarn,start" --image=europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/prod/api:$DOCKER_IMAGE_TAG --project=google-project-id --region=europe-west6 --labels=customer-name=pan,component-name=api,app-name=test-app,env-type=prod,env-name=prod,build-type=node,cloud-run-service-name=pan-test-app-prod-api --env-vars-file=____envvars.yaml --min-instances=0 --max-instances=100 --cpu-throttling --allow-unauthenticated --ingress=all --cpu-boost
|
|
1386
|
-
-
|
|
1387
|
-
-
|
|
1356
|
+
- collapseable_section_end "deploy"
|
|
1357
|
+
- collapseable_section_start "cleanup" "Cleanup"
|
|
1388
1358
|
- gcloud run revisions list --project=google-project-id --region=europe-west6 --service=pan-test-app-prod-api --limit=unlimited --sort-by=metadata.creationTimestamp --format="value(name)" --filter='(status.conditions.status=False OR status.conditions.status=Unknown)' | tail -n +6 | while read -r revisionname; do gcloud run revisions delete --project=google-project-id --region=europe-west6 --quiet $revisionname ; done
|
|
1389
1359
|
- gcloud artifacts docker images list europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/prod/api --sort-by=~CREATE_TIME --format="value(version)" | tail -n +7 | while read -r version; do gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/prod/api@$version --quiet --delete-tags; done
|
|
1390
1360
|
- gcloud artifacts docker images list europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/api --sort-by=~CREATE_TIME --format="value(version)" | tail -n +2 | while read -r version; do gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/api@$version --quiet --delete-tags; done
|
|
1391
|
-
-
|
|
1361
|
+
- collapseable_section_end "cleanup"
|
|
1392
1362
|
- echo 'Uploading SBOM to Dependency Track'
|
|
1393
1363
|
- /dtrackuploader https://dep.panter.swiss/ "$DT_KEY_PROD" upload "pan-test-app/api" "https://$(printf %s "pan-test-app-prod-api-$CL_prod_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" "__sbom.json" vex.json || true
|
|
1394
1364
|
- echo "CL_GITLAB_ENVIRONMENT_URL=https://$(printf %s "pan-test-app-prod-api-$CL_prod_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" >> gitlab_environment.env
|
|
@@ -1419,9 +1389,9 @@ variables:
|
|
|
1419
1389
|
KUBERNETES_MEMORY_LIMIT: 400Mi
|
|
1420
1390
|
GIT_STRATEGY: none
|
|
1421
1391
|
script:
|
|
1422
|
-
-
|
|
1392
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
1423
1393
|
- export CLOUDSDK_CORE_DISABLE_PROMPTS="1"
|
|
1424
|
-
-
|
|
1394
|
+
- collapseable_section_end "injectvars"
|
|
1425
1395
|
- set +e
|
|
1426
1396
|
- gcloud auth activate-service-account --key-file=<(echo "$CL_prod_api_GCLOUD_DEPLOY_credentialsKey")
|
|
1427
1397
|
- gcloud run services delete pan-test-app-prod-api --project=google-project-id --region=europe-west6
|
|
@@ -1464,7 +1434,7 @@ variables:
|
|
|
1464
1434
|
KUBERNETES_MEMORY_REQUEST: 1Gi
|
|
1465
1435
|
KUBERNETES_MEMORY_LIMIT: 2Gi
|
|
1466
1436
|
script:
|
|
1467
|
-
-
|
|
1437
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
1468
1438
|
- export APP_DIR="www"
|
|
1469
1439
|
- export DOCKER_BUILD_CONTEXT="."
|
|
1470
1440
|
- export DOCKER_REGISTRY="europe-west6-docker.pkg.dev"
|
|
@@ -1480,20 +1450,20 @@ variables:
|
|
|
1480
1450
|
COPY --chown=node:node www/yarn.lock /app/www/yarn.lock
|
|
1481
1451
|
COPY --chown=node:node .yarnrc.yml /app/.yarnrc.yml
|
|
1482
1452
|
COPY --chown=node:node .yarn /app/.yarn"
|
|
1483
|
-
-
|
|
1453
|
+
- collapseable_section_end "injectvars"
|
|
1484
1454
|
- ensureNodeDockerfile
|
|
1485
|
-
-
|
|
1455
|
+
- collapseable_section_start "docker-login" "Docker Login"
|
|
1486
1456
|
- gcloud auth activate-service-account --key-file=<(echo "$CL_dev_www_GCLOUD_DEPLOY_credentialsKey")
|
|
1487
1457
|
- gcloud auth configure-docker europe-west6-docker.pkg.dev
|
|
1488
|
-
-
|
|
1489
|
-
-
|
|
1458
|
+
- collapseable_section_end "docker-login"
|
|
1459
|
+
- collapseable_section_start "docker-build" "Docker build"
|
|
1490
1460
|
- docker build --network host --cache-from $DOCKER_CACHE_IMAGE --tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG -f $APP_DIR/Dockerfile $DOCKER_BUILD_CONTEXT --build-arg BUILDKIT_INLINE_CACHE=1
|
|
1491
|
-
-
|
|
1492
|
-
-
|
|
1461
|
+
- collapseable_section_end "docker-build"
|
|
1462
|
+
- collapseable_section_start "docker-push" "Docker push and tag"
|
|
1493
1463
|
- docker push $DOCKER_IMAGE:$DOCKER_IMAGE_TAG
|
|
1494
1464
|
- docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG $DOCKER_CACHE_IMAGE
|
|
1495
1465
|
- docker push $DOCKER_CACHE_IMAGE
|
|
1496
|
-
-
|
|
1466
|
+
- collapseable_section_end "docker-push"
|
|
1497
1467
|
cache:
|
|
1498
1468
|
- key: www-yarn
|
|
1499
1469
|
policy: pull
|
|
@@ -1513,8 +1483,8 @@ variables:
|
|
|
1513
1483
|
image: aquasec/trivy:0.38.3
|
|
1514
1484
|
variables: {}
|
|
1515
1485
|
script:
|
|
1516
|
-
-
|
|
1517
|
-
-
|
|
1486
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
1487
|
+
- collapseable_section_end "injectvars"
|
|
1518
1488
|
- trivy fs --quiet --format cyclonedx --output "__sbom.json" www
|
|
1519
1489
|
artifacts:
|
|
1520
1490
|
paths:
|
|
@@ -1535,36 +1505,35 @@ variables:
|
|
|
1535
1505
|
KUBERNETES_MEMORY_REQUEST: 200Mi
|
|
1536
1506
|
KUBERNETES_MEMORY_LIMIT: 400Mi
|
|
1537
1507
|
script:
|
|
1538
|
-
-
|
|
1508
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
1539
1509
|
- export ENV_SHORT="dev"
|
|
1540
1510
|
- export APP_DIR="www"
|
|
1541
1511
|
- export ENV_TYPE="dev"
|
|
1542
1512
|
- export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
|
|
1543
1513
|
- export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
|
|
1544
1514
|
- 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\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
|
|
1545
|
-
- export
|
|
1515
|
+
- export HOSTNAME="$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"
|
|
1546
1516
|
- export ROOT_URL="https://$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"
|
|
1547
|
-
- export
|
|
1548
|
-
- export HOST_CANONICAL="$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"
|
|
1517
|
+
- export HOSTNAME_INTERNAL="$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"
|
|
1549
1518
|
- export ROOT_URL_INTERNAL="https://$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"
|
|
1550
1519
|
- export DEPLOY_CLOUD_RUN_PROJECT_ID="google-project-id"
|
|
1551
1520
|
- export DEPLOY_CLOUD_RUN_REGION="europe-west6"
|
|
1552
1521
|
- export GCLOUD_DEPLOY_credentialsKey="$CL_dev_www_GCLOUD_DEPLOY_credentialsKey"
|
|
1553
1522
|
- export GCLOUD_RUN_canonicalHostSuffix="$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix"
|
|
1554
1523
|
- export API_URL="https://$(printf %s "pan-test-app-dev-api-$CL_dev_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')/graphql"
|
|
1555
|
-
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"
|
|
1524
|
+
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOSTNAME\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\",\\"DEPLOY_CLOUD_RUN_PROJECT_ID\\",\\"DEPLOY_CLOUD_RUN_REGION\\",\\"GCLOUD_DEPLOY_credentialsKey\\",\\"GCLOUD_RUN_canonicalHostSuffix\\",\\"API_URL\\"]"
|
|
1556
1525
|
- export DOCKER_REGISTRY="europe-west6-docker.pkg.dev"
|
|
1557
1526
|
- export DOCKER_IMAGE="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/dev/www"
|
|
1558
1527
|
- export DOCKER_CACHE_IMAGE="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/www"
|
|
1559
1528
|
- export DOCKER_IMAGE_TAG="$CI_COMMIT_SHA"
|
|
1560
1529
|
- export CLOUDSDK_CORE_DISABLE_PROMPTS="1"
|
|
1561
|
-
-
|
|
1562
|
-
-
|
|
1530
|
+
- collapseable_section_end "injectvars"
|
|
1531
|
+
- collapseable_section_start "prepare" "Prepare..."
|
|
1563
1532
|
- gcloud auth activate-service-account --key-file=<(echo "$CL_dev_www_GCLOUD_DEPLOY_credentialsKey")
|
|
1564
1533
|
- export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe google-project-id --format="value(projectNumber)")
|
|
1565
1534
|
- 'echo "GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER"'
|
|
1566
|
-
-
|
|
1567
|
-
-
|
|
1535
|
+
- collapseable_section_end "prepare"
|
|
1536
|
+
- collapseable_section_start "writeenvvars" "Write env vars to file"
|
|
1568
1537
|
- |
|
|
1569
1538
|
cat > ____envvars.yaml <<EOF
|
|
1570
1539
|
ENV_SHORT: |-
|
|
@@ -1574,42 +1543,40 @@ variables:
|
|
|
1574
1543
|
ENV_TYPE: |-
|
|
1575
1544
|
dev
|
|
1576
1545
|
BUILD_INFO_BUILD_ID: |-
|
|
1577
|
-
|
|
1546
|
+
$(printf %s "$(git describe --tags 2>/dev/null || git rev-parse HEAD)" | sed '1!s/^/ /')
|
|
1578
1547
|
BUILD_INFO_BUILD_TIME: |-
|
|
1579
|
-
|
|
1548
|
+
$(printf %s "$CI_JOB_STARTED_AT" | sed '1!s/^/ /')
|
|
1580
1549
|
BUILD_INFO_CURRENT_VERSION: |-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1550
|
+
$(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\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")" | sed '1!s/^/ /')
|
|
1551
|
+
HOSTNAME: |-
|
|
1552
|
+
$(printf %s "$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed '1!s/^/ /')
|
|
1584
1553
|
ROOT_URL: |-
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
HOST_CANONICAL: |-
|
|
1589
|
-
$(printf %s "$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
1554
|
+
$(printf %s "https://$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed '1!s/^/ /')
|
|
1555
|
+
HOSTNAME_INTERNAL: |-
|
|
1556
|
+
$(printf %s "$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed '1!s/^/ /')
|
|
1590
1557
|
ROOT_URL_INTERNAL: |-
|
|
1591
|
-
|
|
1558
|
+
$(printf %s "https://$(printf %s "pan-test-app-dev-www-$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed '1!s/^/ /')
|
|
1592
1559
|
DEPLOY_CLOUD_RUN_PROJECT_ID: |-
|
|
1593
1560
|
google-project-id
|
|
1594
1561
|
DEPLOY_CLOUD_RUN_REGION: |-
|
|
1595
1562
|
europe-west6
|
|
1596
1563
|
GCLOUD_RUN_canonicalHostSuffix: |-
|
|
1597
|
-
|
|
1564
|
+
$(printf %s "$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix" | sed '1!s/^/ /')
|
|
1598
1565
|
API_URL: |-
|
|
1599
|
-
|
|
1566
|
+
$(printf %s "https://$(printf %s "pan-test-app-dev-api-$CL_dev_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed '1!s/^/ /')/graphql
|
|
1600
1567
|
_ALL_ENV_VAR_KEYS: |-
|
|
1601
|
-
["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","
|
|
1568
|
+
["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix","API_URL"]
|
|
1602
1569
|
|
|
1603
1570
|
EOF
|
|
1604
|
-
-
|
|
1605
|
-
-
|
|
1571
|
+
- collapseable_section_end "writeenvvars"
|
|
1572
|
+
- collapseable_section_start "deploy" "Deploy to cloud run"
|
|
1606
1573
|
- gcloud run deploy pan-test-app-dev-www --command="yarn,start" --image=europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/dev/www:$DOCKER_IMAGE_TAG --project=google-project-id --region=europe-west6 --labels=customer-name=pan,component-name=www,app-name=test-app,env-type=dev,env-name=dev,build-type=node,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
|
|
1607
|
-
-
|
|
1608
|
-
-
|
|
1574
|
+
- collapseable_section_end "deploy"
|
|
1575
|
+
- collapseable_section_start "cleanup" "Cleanup"
|
|
1609
1576
|
- gcloud run revisions list --project=google-project-id --region=europe-west6 --service=pan-test-app-dev-www --limit=unlimited --sort-by=metadata.creationTimestamp --format="value(name)" --filter='(status.conditions.status=False OR status.conditions.status=Unknown)' | while read -r revisionname; do gcloud run revisions delete --project=google-project-id --region=europe-west6 --quiet $revisionname ; done
|
|
1610
1577
|
- gcloud artifacts docker images list europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/dev/www --sort-by=~CREATE_TIME --format="value(version)" | tail -n +2 | while read -r version; do gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/dev/www@$version --quiet --delete-tags; done
|
|
1611
1578
|
- gcloud artifacts docker images list europe-west6-docker.pkg.dev/google-project-id/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 europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/www@$version --quiet --delete-tags; done
|
|
1612
|
-
-
|
|
1579
|
+
- collapseable_section_end "cleanup"
|
|
1613
1580
|
- echo 'Uploading SBOM to Dependency Track'
|
|
1614
1581
|
- /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
|
|
1615
1582
|
- 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
|
|
@@ -1649,9 +1616,9 @@ variables:
|
|
|
1649
1616
|
KUBERNETES_MEMORY_LIMIT: 400Mi
|
|
1650
1617
|
GIT_STRATEGY: none
|
|
1651
1618
|
script:
|
|
1652
|
-
-
|
|
1619
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
1653
1620
|
- export CLOUDSDK_CORE_DISABLE_PROMPTS="1"
|
|
1654
|
-
-
|
|
1621
|
+
- collapseable_section_end "injectvars"
|
|
1655
1622
|
- set +e
|
|
1656
1623
|
- gcloud auth activate-service-account --key-file=<(echo "$CL_dev_www_GCLOUD_DEPLOY_credentialsKey")
|
|
1657
1624
|
- gcloud run services delete pan-test-app-dev-www --project=google-project-id --region=europe-west6
|
|
@@ -1696,7 +1663,7 @@ variables:
|
|
|
1696
1663
|
KUBERNETES_MEMORY_REQUEST: 1Gi
|
|
1697
1664
|
KUBERNETES_MEMORY_LIMIT: 2Gi
|
|
1698
1665
|
script:
|
|
1699
|
-
-
|
|
1666
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
1700
1667
|
- export APP_DIR="www"
|
|
1701
1668
|
- export DOCKER_BUILD_CONTEXT="."
|
|
1702
1669
|
- export DOCKER_REGISTRY="europe-west6-docker.pkg.dev"
|
|
@@ -1712,20 +1679,20 @@ variables:
|
|
|
1712
1679
|
COPY --chown=node:node www/yarn.lock /app/www/yarn.lock
|
|
1713
1680
|
COPY --chown=node:node .yarnrc.yml /app/.yarnrc.yml
|
|
1714
1681
|
COPY --chown=node:node .yarn /app/.yarn"
|
|
1715
|
-
-
|
|
1682
|
+
- collapseable_section_end "injectvars"
|
|
1716
1683
|
- ensureNodeDockerfile
|
|
1717
|
-
-
|
|
1684
|
+
- collapseable_section_start "docker-login" "Docker Login"
|
|
1718
1685
|
- gcloud auth activate-service-account --key-file=<(echo "$CL_review_www_GCLOUD_DEPLOY_credentialsKey")
|
|
1719
1686
|
- gcloud auth configure-docker europe-west6-docker.pkg.dev
|
|
1720
|
-
-
|
|
1721
|
-
-
|
|
1687
|
+
- collapseable_section_end "docker-login"
|
|
1688
|
+
- collapseable_section_start "docker-build" "Docker build"
|
|
1722
1689
|
- docker build --network host --cache-from $DOCKER_CACHE_IMAGE --tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG -f $APP_DIR/Dockerfile $DOCKER_BUILD_CONTEXT --build-arg BUILDKIT_INLINE_CACHE=1
|
|
1723
|
-
-
|
|
1724
|
-
-
|
|
1690
|
+
- collapseable_section_end "docker-build"
|
|
1691
|
+
- collapseable_section_start "docker-push" "Docker push and tag"
|
|
1725
1692
|
- docker push $DOCKER_IMAGE:$DOCKER_IMAGE_TAG
|
|
1726
1693
|
- docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG $DOCKER_CACHE_IMAGE
|
|
1727
1694
|
- docker push $DOCKER_CACHE_IMAGE
|
|
1728
|
-
-
|
|
1695
|
+
- collapseable_section_end "docker-push"
|
|
1729
1696
|
cache:
|
|
1730
1697
|
- key: www-yarn
|
|
1731
1698
|
policy: pull
|
|
@@ -1743,8 +1710,8 @@ variables:
|
|
|
1743
1710
|
image: aquasec/trivy:0.38.3
|
|
1744
1711
|
variables: {}
|
|
1745
1712
|
script:
|
|
1746
|
-
-
|
|
1747
|
-
-
|
|
1713
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
1714
|
+
- collapseable_section_end "injectvars"
|
|
1748
1715
|
- trivy fs --quiet --format cyclonedx --output "__sbom.json" www
|
|
1749
1716
|
artifacts:
|
|
1750
1717
|
paths:
|
|
@@ -1763,36 +1730,35 @@ variables:
|
|
|
1763
1730
|
KUBERNETES_MEMORY_REQUEST: 200Mi
|
|
1764
1731
|
KUBERNETES_MEMORY_LIMIT: 400Mi
|
|
1765
1732
|
script:
|
|
1766
|
-
-
|
|
1733
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
1767
1734
|
- export ENV_SHORT="review"
|
|
1768
1735
|
- export APP_DIR="www"
|
|
1769
1736
|
- export ENV_TYPE="review"
|
|
1770
1737
|
- export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
|
|
1771
1738
|
- export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
|
|
1772
1739
|
- 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\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
|
|
1773
|
-
- export
|
|
1740
|
+
- export HOSTNAME="$(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)}')"
|
|
1774
1741
|
- 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)}')"
|
|
1775
|
-
- export
|
|
1776
|
-
- 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)}')"
|
|
1742
|
+
- export HOSTNAME_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)}')"
|
|
1777
1743
|
- 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)}')"
|
|
1778
1744
|
- export DEPLOY_CLOUD_RUN_PROJECT_ID="google-project-id"
|
|
1779
1745
|
- export DEPLOY_CLOUD_RUN_REGION="europe-west6"
|
|
1780
1746
|
- export GCLOUD_DEPLOY_credentialsKey="$CL_review_www_GCLOUD_DEPLOY_credentialsKey"
|
|
1781
1747
|
- export GCLOUD_RUN_canonicalHostSuffix="$CL_review_www_GCLOUD_RUN_canonicalHostSuffix"
|
|
1782
1748
|
- export API_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"; })-api-$CL_review_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')/graphql"
|
|
1783
|
-
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"
|
|
1749
|
+
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOSTNAME\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\",\\"DEPLOY_CLOUD_RUN_PROJECT_ID\\",\\"DEPLOY_CLOUD_RUN_REGION\\",\\"GCLOUD_DEPLOY_credentialsKey\\",\\"GCLOUD_RUN_canonicalHostSuffix\\",\\"API_URL\\"]"
|
|
1784
1750
|
- export DOCKER_REGISTRY="europe-west6-docker.pkg.dev"
|
|
1785
1751
|
- export DOCKER_IMAGE="europe-west6-docker.pkg.dev/google-project-id/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"; })"
|
|
1786
1752
|
- export DOCKER_CACHE_IMAGE="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/www"
|
|
1787
1753
|
- export DOCKER_IMAGE_TAG="$CI_COMMIT_SHA"
|
|
1788
1754
|
- export CLOUDSDK_CORE_DISABLE_PROMPTS="1"
|
|
1789
|
-
-
|
|
1790
|
-
-
|
|
1755
|
+
- collapseable_section_end "injectvars"
|
|
1756
|
+
- collapseable_section_start "prepare" "Prepare..."
|
|
1791
1757
|
- gcloud auth activate-service-account --key-file=<(echo "$CL_review_www_GCLOUD_DEPLOY_credentialsKey")
|
|
1792
1758
|
- export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe google-project-id --format="value(projectNumber)")
|
|
1793
1759
|
- 'echo "GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER"'
|
|
1794
|
-
-
|
|
1795
|
-
-
|
|
1760
|
+
- collapseable_section_end "prepare"
|
|
1761
|
+
- collapseable_section_start "writeenvvars" "Write env vars to file"
|
|
1796
1762
|
- |
|
|
1797
1763
|
cat > ____envvars.yaml <<EOF
|
|
1798
1764
|
ENV_SHORT: |-
|
|
@@ -1802,45 +1768,43 @@ variables:
|
|
|
1802
1768
|
ENV_TYPE: |-
|
|
1803
1769
|
review
|
|
1804
1770
|
BUILD_INFO_BUILD_ID: |-
|
|
1805
|
-
|
|
1771
|
+
$(printf %s "$(git describe --tags 2>/dev/null || git rev-parse HEAD)" | sed '1!s/^/ /')
|
|
1806
1772
|
BUILD_INFO_BUILD_TIME: |-
|
|
1807
|
-
|
|
1773
|
+
$(printf %s "$CI_JOB_STARTED_AT" | sed '1!s/^/ /')
|
|
1808
1774
|
BUILD_INFO_CURRENT_VERSION: |-
|
|
1809
|
-
|
|
1810
|
-
|
|
1811
|
-
|
|
1775
|
+
$(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\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")" | sed '1!s/^/ /')
|
|
1776
|
+
HOSTNAME: |-
|
|
1777
|
+
$(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 '1!s/^/ /')
|
|
1812
1778
|
ROOT_URL: |-
|
|
1813
|
-
|
|
1814
|
-
|
|
1815
|
-
|
|
1816
|
-
HOST_CANONICAL: |-
|
|
1817
|
-
$(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/^/ /')
|
|
1779
|
+
$(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 '1!s/^/ /')
|
|
1780
|
+
HOSTNAME_INTERNAL: |-
|
|
1781
|
+
$(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 '1!s/^/ /')
|
|
1818
1782
|
ROOT_URL_INTERNAL: |-
|
|
1819
|
-
|
|
1783
|
+
$(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 '1!s/^/ /')
|
|
1820
1784
|
DEPLOY_CLOUD_RUN_PROJECT_ID: |-
|
|
1821
1785
|
google-project-id
|
|
1822
1786
|
DEPLOY_CLOUD_RUN_REGION: |-
|
|
1823
1787
|
europe-west6
|
|
1824
1788
|
GCLOUD_RUN_canonicalHostSuffix: |-
|
|
1825
|
-
|
|
1789
|
+
$(printf %s "$CL_review_www_GCLOUD_RUN_canonicalHostSuffix" | sed '1!s/^/ /')
|
|
1826
1790
|
API_URL: |-
|
|
1827
|
-
|
|
1791
|
+
$(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"; })-api-$CL_review_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed '1!s/^/ /')/graphql
|
|
1828
1792
|
_ALL_ENV_VAR_KEYS: |-
|
|
1829
|
-
["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","
|
|
1793
|
+
["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix","API_URL"]
|
|
1830
1794
|
|
|
1831
1795
|
EOF
|
|
1832
|
-
-
|
|
1833
|
-
-
|
|
1796
|
+
- collapseable_section_end "writeenvvars"
|
|
1797
|
+
- collapseable_section_start "deploy" "Deploy to cloud run"
|
|
1834
1798
|
- 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="yarn,start" --image=europe-west6-docker.pkg.dev/google-project-id/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=google-project-id --region=europe-west6 --labels=customer-name=pan,component-name=www,app-name=test-app,env-type=review,env-name=review,build-type=node,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
|
|
1835
|
-
-
|
|
1836
|
-
-
|
|
1799
|
+
- collapseable_section_end "deploy"
|
|
1800
|
+
- collapseable_section_start "cleanup" "Cleanup"
|
|
1837
1801
|
- gcloud run revisions list --project=google-project-id --region=europe-west6 --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=google-project-id --region=europe-west6 --quiet $revisionname ; done
|
|
1838
1802
|
- gcloud artifacts docker images list europe-west6-docker.pkg.dev/google-project-id/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 europe-west6-docker.pkg.dev/google-project-id/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
|
|
1839
1803
|
- gcloud artifacts docker images list europe-west6-docker.pkg.dev/google-project-id/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 europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/www@$version --quiet --delete-tags; done
|
|
1840
1804
|
- set +e
|
|
1841
1805
|
- gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/review/www --quiet --delete-tags
|
|
1842
1806
|
- set -e
|
|
1843
|
-
-
|
|
1807
|
+
- collapseable_section_end "cleanup"
|
|
1844
1808
|
- echo 'Uploading SBOM to Dependency Track'
|
|
1845
1809
|
- /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
|
|
1846
1810
|
- 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
|
|
@@ -1878,9 +1842,9 @@ variables:
|
|
|
1878
1842
|
KUBERNETES_MEMORY_LIMIT: 400Mi
|
|
1879
1843
|
GIT_STRATEGY: none
|
|
1880
1844
|
script:
|
|
1881
|
-
-
|
|
1845
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
1882
1846
|
- export CLOUDSDK_CORE_DISABLE_PROMPTS="1"
|
|
1883
|
-
-
|
|
1847
|
+
- collapseable_section_end "injectvars"
|
|
1884
1848
|
- set +e
|
|
1885
1849
|
- gcloud auth activate-service-account --key-file=<(echo "$CL_review_www_GCLOUD_DEPLOY_credentialsKey")
|
|
1886
1850
|
- 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=google-project-id --region=europe-west6
|
|
@@ -1926,7 +1890,7 @@ variables:
|
|
|
1926
1890
|
KUBERNETES_MEMORY_REQUEST: 1Gi
|
|
1927
1891
|
KUBERNETES_MEMORY_LIMIT: 2Gi
|
|
1928
1892
|
script:
|
|
1929
|
-
-
|
|
1893
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
1930
1894
|
- export APP_DIR="www"
|
|
1931
1895
|
- export DOCKER_BUILD_CONTEXT="."
|
|
1932
1896
|
- export DOCKER_REGISTRY="europe-west6-docker.pkg.dev"
|
|
@@ -1942,20 +1906,20 @@ variables:
|
|
|
1942
1906
|
COPY --chown=node:node www/yarn.lock /app/www/yarn.lock
|
|
1943
1907
|
COPY --chown=node:node .yarnrc.yml /app/.yarnrc.yml
|
|
1944
1908
|
COPY --chown=node:node .yarn /app/.yarn"
|
|
1945
|
-
-
|
|
1909
|
+
- collapseable_section_end "injectvars"
|
|
1946
1910
|
- ensureNodeDockerfile
|
|
1947
|
-
-
|
|
1911
|
+
- collapseable_section_start "docker-login" "Docker Login"
|
|
1948
1912
|
- gcloud auth activate-service-account --key-file=<(echo "$CL_stage_www_GCLOUD_DEPLOY_credentialsKey")
|
|
1949
1913
|
- gcloud auth configure-docker europe-west6-docker.pkg.dev
|
|
1950
|
-
-
|
|
1951
|
-
-
|
|
1914
|
+
- collapseable_section_end "docker-login"
|
|
1915
|
+
- collapseable_section_start "docker-build" "Docker build"
|
|
1952
1916
|
- docker build --network host --cache-from $DOCKER_CACHE_IMAGE --tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG -f $APP_DIR/Dockerfile $DOCKER_BUILD_CONTEXT --build-arg BUILDKIT_INLINE_CACHE=1
|
|
1953
|
-
-
|
|
1954
|
-
-
|
|
1917
|
+
- collapseable_section_end "docker-build"
|
|
1918
|
+
- collapseable_section_start "docker-push" "Docker push and tag"
|
|
1955
1919
|
- docker push $DOCKER_IMAGE:$DOCKER_IMAGE_TAG
|
|
1956
1920
|
- docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG $DOCKER_CACHE_IMAGE
|
|
1957
1921
|
- docker push $DOCKER_CACHE_IMAGE
|
|
1958
|
-
-
|
|
1922
|
+
- collapseable_section_end "docker-push"
|
|
1959
1923
|
cache:
|
|
1960
1924
|
- key: www-yarn
|
|
1961
1925
|
policy: pull
|
|
@@ -1973,8 +1937,8 @@ variables:
|
|
|
1973
1937
|
image: aquasec/trivy:0.38.3
|
|
1974
1938
|
variables: {}
|
|
1975
1939
|
script:
|
|
1976
|
-
-
|
|
1977
|
-
-
|
|
1940
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
1941
|
+
- collapseable_section_end "injectvars"
|
|
1978
1942
|
- trivy fs --quiet --format cyclonedx --output "__sbom.json" www
|
|
1979
1943
|
artifacts:
|
|
1980
1944
|
paths:
|
|
@@ -1993,36 +1957,35 @@ variables:
|
|
|
1993
1957
|
KUBERNETES_MEMORY_REQUEST: 200Mi
|
|
1994
1958
|
KUBERNETES_MEMORY_LIMIT: 400Mi
|
|
1995
1959
|
script:
|
|
1996
|
-
-
|
|
1960
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
1997
1961
|
- export ENV_SHORT="stage"
|
|
1998
1962
|
- export APP_DIR="www"
|
|
1999
1963
|
- export ENV_TYPE="stage"
|
|
2000
1964
|
- export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
|
|
2001
1965
|
- export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
|
|
2002
1966
|
- 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\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
|
|
2003
|
-
- export
|
|
1967
|
+
- export HOSTNAME="$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"
|
|
2004
1968
|
- export ROOT_URL="https://$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"
|
|
2005
|
-
- export
|
|
2006
|
-
- export HOST_CANONICAL="$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"
|
|
1969
|
+
- export HOSTNAME_INTERNAL="$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"
|
|
2007
1970
|
- export ROOT_URL_INTERNAL="https://$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"
|
|
2008
1971
|
- export DEPLOY_CLOUD_RUN_PROJECT_ID="google-project-id"
|
|
2009
1972
|
- export DEPLOY_CLOUD_RUN_REGION="europe-west6"
|
|
2010
1973
|
- export GCLOUD_DEPLOY_credentialsKey="$CL_stage_www_GCLOUD_DEPLOY_credentialsKey"
|
|
2011
1974
|
- export GCLOUD_RUN_canonicalHostSuffix="$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix"
|
|
2012
1975
|
- export API_URL="https://$(printf %s "pan-test-app-stage-api-$CL_stage_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')/graphql"
|
|
2013
|
-
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"
|
|
1976
|
+
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOSTNAME\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\",\\"DEPLOY_CLOUD_RUN_PROJECT_ID\\",\\"DEPLOY_CLOUD_RUN_REGION\\",\\"GCLOUD_DEPLOY_credentialsKey\\",\\"GCLOUD_RUN_canonicalHostSuffix\\",\\"API_URL\\"]"
|
|
2014
1977
|
- export DOCKER_REGISTRY="europe-west6-docker.pkg.dev"
|
|
2015
1978
|
- export DOCKER_IMAGE="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/stage/www"
|
|
2016
1979
|
- export DOCKER_CACHE_IMAGE="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/www"
|
|
2017
1980
|
- export DOCKER_IMAGE_TAG="$CI_COMMIT_SHA"
|
|
2018
1981
|
- export CLOUDSDK_CORE_DISABLE_PROMPTS="1"
|
|
2019
|
-
-
|
|
2020
|
-
-
|
|
1982
|
+
- collapseable_section_end "injectvars"
|
|
1983
|
+
- collapseable_section_start "prepare" "Prepare..."
|
|
2021
1984
|
- gcloud auth activate-service-account --key-file=<(echo "$CL_stage_www_GCLOUD_DEPLOY_credentialsKey")
|
|
2022
1985
|
- export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe google-project-id --format="value(projectNumber)")
|
|
2023
1986
|
- 'echo "GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER"'
|
|
2024
|
-
-
|
|
2025
|
-
-
|
|
1987
|
+
- collapseable_section_end "prepare"
|
|
1988
|
+
- collapseable_section_start "writeenvvars" "Write env vars to file"
|
|
2026
1989
|
- |
|
|
2027
1990
|
cat > ____envvars.yaml <<EOF
|
|
2028
1991
|
ENV_SHORT: |-
|
|
@@ -2032,42 +1995,40 @@ variables:
|
|
|
2032
1995
|
ENV_TYPE: |-
|
|
2033
1996
|
stage
|
|
2034
1997
|
BUILD_INFO_BUILD_ID: |-
|
|
2035
|
-
|
|
1998
|
+
$(printf %s "$(git describe --tags 2>/dev/null || git rev-parse HEAD)" | sed '1!s/^/ /')
|
|
2036
1999
|
BUILD_INFO_BUILD_TIME: |-
|
|
2037
|
-
|
|
2000
|
+
$(printf %s "$CI_JOB_STARTED_AT" | sed '1!s/^/ /')
|
|
2038
2001
|
BUILD_INFO_CURRENT_VERSION: |-
|
|
2039
|
-
|
|
2040
|
-
|
|
2041
|
-
|
|
2002
|
+
$(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\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")" | sed '1!s/^/ /')
|
|
2003
|
+
HOSTNAME: |-
|
|
2004
|
+
$(printf %s "$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed '1!s/^/ /')
|
|
2042
2005
|
ROOT_URL: |-
|
|
2043
|
-
|
|
2044
|
-
|
|
2045
|
-
|
|
2046
|
-
HOST_CANONICAL: |-
|
|
2047
|
-
$(printf %s "$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
2006
|
+
$(printf %s "https://$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed '1!s/^/ /')
|
|
2007
|
+
HOSTNAME_INTERNAL: |-
|
|
2008
|
+
$(printf %s "$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed '1!s/^/ /')
|
|
2048
2009
|
ROOT_URL_INTERNAL: |-
|
|
2049
|
-
|
|
2010
|
+
$(printf %s "https://$(printf %s "pan-test-app-stage-www-$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed '1!s/^/ /')
|
|
2050
2011
|
DEPLOY_CLOUD_RUN_PROJECT_ID: |-
|
|
2051
2012
|
google-project-id
|
|
2052
2013
|
DEPLOY_CLOUD_RUN_REGION: |-
|
|
2053
2014
|
europe-west6
|
|
2054
2015
|
GCLOUD_RUN_canonicalHostSuffix: |-
|
|
2055
|
-
|
|
2016
|
+
$(printf %s "$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix" | sed '1!s/^/ /')
|
|
2056
2017
|
API_URL: |-
|
|
2057
|
-
|
|
2018
|
+
$(printf %s "https://$(printf %s "pan-test-app-stage-api-$CL_stage_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed '1!s/^/ /')/graphql
|
|
2058
2019
|
_ALL_ENV_VAR_KEYS: |-
|
|
2059
|
-
["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","
|
|
2020
|
+
["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix","API_URL"]
|
|
2060
2021
|
|
|
2061
2022
|
EOF
|
|
2062
|
-
-
|
|
2063
|
-
-
|
|
2023
|
+
- collapseable_section_end "writeenvvars"
|
|
2024
|
+
- collapseable_section_start "deploy" "Deploy to cloud run"
|
|
2064
2025
|
- gcloud run deploy pan-test-app-stage-www --command="yarn,start" --image=europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/stage/www:$DOCKER_IMAGE_TAG --project=google-project-id --region=europe-west6 --labels=customer-name=pan,component-name=www,app-name=test-app,env-type=stage,env-name=stage,build-type=node,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
|
|
2065
|
-
-
|
|
2066
|
-
-
|
|
2026
|
+
- collapseable_section_end "deploy"
|
|
2027
|
+
- collapseable_section_start "cleanup" "Cleanup"
|
|
2067
2028
|
- gcloud run revisions list --project=google-project-id --region=europe-west6 --service=pan-test-app-stage-www --limit=unlimited --sort-by=metadata.creationTimestamp --format="value(name)" --filter='(status.conditions.status=False OR status.conditions.status=Unknown)' | while read -r revisionname; do gcloud run revisions delete --project=google-project-id --region=europe-west6 --quiet $revisionname ; done
|
|
2068
2029
|
- gcloud artifacts docker images list europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/stage/www --sort-by=~CREATE_TIME --format="value(version)" | tail -n +2 | while read -r version; do gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/stage/www@$version --quiet --delete-tags; done
|
|
2069
2030
|
- gcloud artifacts docker images list europe-west6-docker.pkg.dev/google-project-id/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 europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/www@$version --quiet --delete-tags; done
|
|
2070
|
-
-
|
|
2031
|
+
- collapseable_section_end "cleanup"
|
|
2071
2032
|
- echo 'Uploading SBOM to Dependency Track'
|
|
2072
2033
|
- /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
|
|
2073
2034
|
- 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
|
|
@@ -2098,9 +2059,9 @@ variables:
|
|
|
2098
2059
|
KUBERNETES_MEMORY_LIMIT: 400Mi
|
|
2099
2060
|
GIT_STRATEGY: none
|
|
2100
2061
|
script:
|
|
2101
|
-
-
|
|
2062
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
2102
2063
|
- export CLOUDSDK_CORE_DISABLE_PROMPTS="1"
|
|
2103
|
-
-
|
|
2064
|
+
- collapseable_section_end "injectvars"
|
|
2104
2065
|
- set +e
|
|
2105
2066
|
- gcloud auth activate-service-account --key-file=<(echo "$CL_stage_www_GCLOUD_DEPLOY_credentialsKey")
|
|
2106
2067
|
- gcloud run services delete pan-test-app-stage-www --project=google-project-id --region=europe-west6
|
|
@@ -2143,7 +2104,7 @@ variables:
|
|
|
2143
2104
|
KUBERNETES_MEMORY_REQUEST: 1Gi
|
|
2144
2105
|
KUBERNETES_MEMORY_LIMIT: 2Gi
|
|
2145
2106
|
script:
|
|
2146
|
-
-
|
|
2107
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
2147
2108
|
- export APP_DIR="www"
|
|
2148
2109
|
- export DOCKER_BUILD_CONTEXT="."
|
|
2149
2110
|
- export DOCKER_REGISTRY="europe-west6-docker.pkg.dev"
|
|
@@ -2159,20 +2120,20 @@ variables:
|
|
|
2159
2120
|
COPY --chown=node:node www/yarn.lock /app/www/yarn.lock
|
|
2160
2121
|
COPY --chown=node:node .yarnrc.yml /app/.yarnrc.yml
|
|
2161
2122
|
COPY --chown=node:node .yarn /app/.yarn"
|
|
2162
|
-
-
|
|
2123
|
+
- collapseable_section_end "injectvars"
|
|
2163
2124
|
- ensureNodeDockerfile
|
|
2164
|
-
-
|
|
2125
|
+
- collapseable_section_start "docker-login" "Docker Login"
|
|
2165
2126
|
- gcloud auth activate-service-account --key-file=<(echo "$CL_prod_www_GCLOUD_DEPLOY_credentialsKey")
|
|
2166
2127
|
- gcloud auth configure-docker europe-west6-docker.pkg.dev
|
|
2167
|
-
-
|
|
2168
|
-
-
|
|
2128
|
+
- collapseable_section_end "docker-login"
|
|
2129
|
+
- collapseable_section_start "docker-build" "Docker build"
|
|
2169
2130
|
- docker build --network host --cache-from $DOCKER_CACHE_IMAGE --tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG -f $APP_DIR/Dockerfile $DOCKER_BUILD_CONTEXT --build-arg BUILDKIT_INLINE_CACHE=1
|
|
2170
|
-
-
|
|
2171
|
-
-
|
|
2131
|
+
- collapseable_section_end "docker-build"
|
|
2132
|
+
- collapseable_section_start "docker-push" "Docker push and tag"
|
|
2172
2133
|
- docker push $DOCKER_IMAGE:$DOCKER_IMAGE_TAG
|
|
2173
2134
|
- docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG $DOCKER_CACHE_IMAGE
|
|
2174
2135
|
- docker push $DOCKER_CACHE_IMAGE
|
|
2175
|
-
-
|
|
2136
|
+
- collapseable_section_end "docker-push"
|
|
2176
2137
|
cache:
|
|
2177
2138
|
- key: www-yarn
|
|
2178
2139
|
policy: pull
|
|
@@ -2190,8 +2151,8 @@ variables:
|
|
|
2190
2151
|
image: aquasec/trivy:0.38.3
|
|
2191
2152
|
variables: {}
|
|
2192
2153
|
script:
|
|
2193
|
-
-
|
|
2194
|
-
-
|
|
2154
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
2155
|
+
- collapseable_section_end "injectvars"
|
|
2195
2156
|
- trivy fs --quiet --format cyclonedx --output "__sbom.json" www
|
|
2196
2157
|
artifacts:
|
|
2197
2158
|
paths:
|
|
@@ -2210,36 +2171,35 @@ variables:
|
|
|
2210
2171
|
KUBERNETES_MEMORY_REQUEST: 200Mi
|
|
2211
2172
|
KUBERNETES_MEMORY_LIMIT: 400Mi
|
|
2212
2173
|
script:
|
|
2213
|
-
-
|
|
2174
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
2214
2175
|
- export ENV_SHORT="prod"
|
|
2215
2176
|
- export APP_DIR="www"
|
|
2216
2177
|
- export ENV_TYPE="prod"
|
|
2217
2178
|
- export BUILD_INFO_BUILD_ID="$(git describe --tags 2>/dev/null || git rev-parse HEAD)"
|
|
2218
2179
|
- export BUILD_INFO_BUILD_TIME="$CI_JOB_STARTED_AT"
|
|
2219
2180
|
- 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\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")"
|
|
2220
|
-
- export
|
|
2181
|
+
- export HOSTNAME="$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"
|
|
2221
2182
|
- export ROOT_URL="https://$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"
|
|
2222
|
-
- export
|
|
2223
|
-
- export HOST_CANONICAL="$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"
|
|
2183
|
+
- export HOSTNAME_INTERNAL="$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"
|
|
2224
2184
|
- export ROOT_URL_INTERNAL="https://$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')"
|
|
2225
2185
|
- export DEPLOY_CLOUD_RUN_PROJECT_ID="google-project-id"
|
|
2226
2186
|
- export DEPLOY_CLOUD_RUN_REGION="europe-west6"
|
|
2227
2187
|
- export GCLOUD_DEPLOY_credentialsKey="$CL_prod_www_GCLOUD_DEPLOY_credentialsKey"
|
|
2228
2188
|
- export GCLOUD_RUN_canonicalHostSuffix="$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix"
|
|
2229
2189
|
- export API_URL="https://$(printf %s "pan-test-app-prod-api-$CL_prod_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')/graphql"
|
|
2230
|
-
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"
|
|
2190
|
+
- export _ALL_ENV_VAR_KEYS="[\\"ENV_SHORT\\",\\"APP_DIR\\",\\"ENV_TYPE\\",\\"BUILD_INFO_BUILD_ID\\",\\"BUILD_INFO_BUILD_TIME\\",\\"BUILD_INFO_CURRENT_VERSION\\",\\"HOSTNAME\\",\\"ROOT_URL\\",\\"HOSTNAME_INTERNAL\\",\\"ROOT_URL_INTERNAL\\",\\"DEPLOY_CLOUD_RUN_PROJECT_ID\\",\\"DEPLOY_CLOUD_RUN_REGION\\",\\"GCLOUD_DEPLOY_credentialsKey\\",\\"GCLOUD_RUN_canonicalHostSuffix\\",\\"API_URL\\"]"
|
|
2231
2191
|
- export DOCKER_REGISTRY="europe-west6-docker.pkg.dev"
|
|
2232
2192
|
- export DOCKER_IMAGE="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/prod/www"
|
|
2233
2193
|
- export DOCKER_CACHE_IMAGE="europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/www"
|
|
2234
2194
|
- export DOCKER_IMAGE_TAG="$CI_COMMIT_SHA"
|
|
2235
2195
|
- export CLOUDSDK_CORE_DISABLE_PROMPTS="1"
|
|
2236
|
-
-
|
|
2237
|
-
-
|
|
2196
|
+
- collapseable_section_end "injectvars"
|
|
2197
|
+
- collapseable_section_start "prepare" "Prepare..."
|
|
2238
2198
|
- gcloud auth activate-service-account --key-file=<(echo "$CL_prod_www_GCLOUD_DEPLOY_credentialsKey")
|
|
2239
2199
|
- export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe google-project-id --format="value(projectNumber)")
|
|
2240
2200
|
- 'echo "GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER"'
|
|
2241
|
-
-
|
|
2242
|
-
-
|
|
2201
|
+
- collapseable_section_end "prepare"
|
|
2202
|
+
- collapseable_section_start "writeenvvars" "Write env vars to file"
|
|
2243
2203
|
- |
|
|
2244
2204
|
cat > ____envvars.yaml <<EOF
|
|
2245
2205
|
ENV_SHORT: |-
|
|
@@ -2249,42 +2209,40 @@ variables:
|
|
|
2249
2209
|
ENV_TYPE: |-
|
|
2250
2210
|
prod
|
|
2251
2211
|
BUILD_INFO_BUILD_ID: |-
|
|
2252
|
-
|
|
2212
|
+
$(printf %s "$(git describe --tags 2>/dev/null || git rev-parse HEAD)" | sed '1!s/^/ /')
|
|
2253
2213
|
BUILD_INFO_BUILD_TIME: |-
|
|
2254
|
-
|
|
2214
|
+
$(printf %s "$CI_JOB_STARTED_AT" | sed '1!s/^/ /')
|
|
2255
2215
|
BUILD_INFO_CURRENT_VERSION: |-
|
|
2256
|
-
|
|
2257
|
-
|
|
2258
|
-
|
|
2216
|
+
$(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\\/v//'); [ -z "$tag" ] && echo "0.0.0" || echo "$tag")" | sed '1!s/^/ /')
|
|
2217
|
+
HOSTNAME: |-
|
|
2218
|
+
$(printf %s "$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed '1!s/^/ /')
|
|
2259
2219
|
ROOT_URL: |-
|
|
2260
|
-
|
|
2261
|
-
|
|
2262
|
-
|
|
2263
|
-
HOST_CANONICAL: |-
|
|
2264
|
-
$(printf %s "$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed 's/^/ /')
|
|
2220
|
+
$(printf %s "https://$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed '1!s/^/ /')
|
|
2221
|
+
HOSTNAME_INTERNAL: |-
|
|
2222
|
+
$(printf %s "$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed '1!s/^/ /')
|
|
2265
2223
|
ROOT_URL_INTERNAL: |-
|
|
2266
|
-
|
|
2224
|
+
$(printf %s "https://$(printf %s "pan-test-app-prod-www-$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed '1!s/^/ /')
|
|
2267
2225
|
DEPLOY_CLOUD_RUN_PROJECT_ID: |-
|
|
2268
2226
|
google-project-id
|
|
2269
2227
|
DEPLOY_CLOUD_RUN_REGION: |-
|
|
2270
2228
|
europe-west6
|
|
2271
2229
|
GCLOUD_RUN_canonicalHostSuffix: |-
|
|
2272
|
-
|
|
2230
|
+
$(printf %s "$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix" | sed '1!s/^/ /')
|
|
2273
2231
|
API_URL: |-
|
|
2274
|
-
|
|
2232
|
+
$(printf %s "https://$(printf %s "pan-test-app-prod-api-$CL_prod_api_GCLOUD_RUN_canonicalHostSuffix" | awk '{print tolower($0)}')" | sed '1!s/^/ /')/graphql
|
|
2275
2233
|
_ALL_ENV_VAR_KEYS: |-
|
|
2276
|
-
["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","
|
|
2234
|
+
["ENV_SHORT","APP_DIR","ENV_TYPE","BUILD_INFO_BUILD_ID","BUILD_INFO_BUILD_TIME","BUILD_INFO_CURRENT_VERSION","HOSTNAME","ROOT_URL","HOSTNAME_INTERNAL","ROOT_URL_INTERNAL","DEPLOY_CLOUD_RUN_PROJECT_ID","DEPLOY_CLOUD_RUN_REGION","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix","API_URL"]
|
|
2277
2235
|
|
|
2278
2236
|
EOF
|
|
2279
|
-
-
|
|
2280
|
-
-
|
|
2237
|
+
- collapseable_section_end "writeenvvars"
|
|
2238
|
+
- collapseable_section_start "deploy" "Deploy to cloud run"
|
|
2281
2239
|
- gcloud run deploy pan-test-app-prod-www --command="yarn,start" --image=europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/prod/www:$DOCKER_IMAGE_TAG --project=google-project-id --region=europe-west6 --labels=customer-name=pan,component-name=www,app-name=test-app,env-type=prod,env-name=prod,build-type=node,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
|
|
2282
|
-
-
|
|
2283
|
-
-
|
|
2240
|
+
- collapseable_section_end "deploy"
|
|
2241
|
+
- collapseable_section_start "cleanup" "Cleanup"
|
|
2284
2242
|
- gcloud run revisions list --project=google-project-id --region=europe-west6 --service=pan-test-app-prod-www --limit=unlimited --sort-by=metadata.creationTimestamp --format="value(name)" --filter='(status.conditions.status=False OR status.conditions.status=Unknown)' | tail -n +6 | while read -r revisionname; do gcloud run revisions delete --project=google-project-id --region=europe-west6 --quiet $revisionname ; done
|
|
2285
2243
|
- gcloud artifacts docker images list europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/prod/www --sort-by=~CREATE_TIME --format="value(version)" | tail -n +7 | while read -r version; do gcloud artifacts docker images delete europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/prod/www@$version --quiet --delete-tags; done
|
|
2286
2244
|
- gcloud artifacts docker images list europe-west6-docker.pkg.dev/google-project-id/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 europe-west6-docker.pkg.dev/google-project-id/catladder-deploy/pan-test-app/caches/www@$version --quiet --delete-tags; done
|
|
2287
|
-
-
|
|
2245
|
+
- collapseable_section_end "cleanup"
|
|
2288
2246
|
- echo 'Uploading SBOM to Dependency Track'
|
|
2289
2247
|
- /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
|
|
2290
2248
|
- 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
|
|
@@ -2315,9 +2273,9 @@ variables:
|
|
|
2315
2273
|
KUBERNETES_MEMORY_LIMIT: 400Mi
|
|
2316
2274
|
GIT_STRATEGY: none
|
|
2317
2275
|
script:
|
|
2318
|
-
-
|
|
2276
|
+
- collapseable_section_start "injectvars" "Injecting variables"
|
|
2319
2277
|
- export CLOUDSDK_CORE_DISABLE_PROMPTS="1"
|
|
2320
|
-
-
|
|
2278
|
+
- collapseable_section_end "injectvars"
|
|
2321
2279
|
- set +e
|
|
2322
2280
|
- gcloud auth activate-service-account --key-file=<(echo "$CL_prod_www_GCLOUD_DEPLOY_credentialsKey")
|
|
2323
2281
|
- gcloud run services delete pan-test-app-prod-www --project=google-project-id --region=europe-west6
|