@catladder/pipeline 0.0.0-node16-ddfae617 → 0.0.0-prettier-cbceeed9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. package/bin/catladder-gitlab-dev.js +3 -0
  2. package/bin/catladder-gitlab.js +1 -1
  3. package/dist/build/base/createBuildJob.d.ts +2 -2
  4. package/dist/build/base/createBuildJob.js +15 -30
  5. package/dist/build/base/writeBuildInfo.d.ts +2 -0
  6. package/dist/build/base/{getBuildInfo.js → writeBuildInfo.js} +3 -6
  7. package/dist/build/custom/buildJob.d.ts +3 -0
  8. package/dist/build/custom/buildJob.js +83 -0
  9. package/dist/build/custom/index.d.ts +3 -0
  10. package/dist/build/custom/index.js +40 -0
  11. package/dist/build/docker.d.ts +33 -9
  12. package/dist/build/docker.js +51 -54
  13. package/dist/build/index.d.ts +6 -5
  14. package/dist/build/index.js +20 -6
  15. package/dist/build/node/buildJob.d.ts +2 -2
  16. package/dist/build/node/buildJob.js +3 -25
  17. package/dist/build/node/cache.d.ts +2 -2
  18. package/dist/build/node/cache.js +19 -22
  19. package/dist/build/node/index.d.ts +1 -1
  20. package/dist/build/node/index.js +3 -16
  21. package/dist/build/node/meteor.d.ts +1 -1
  22. package/dist/build/node/meteor.js +9 -20
  23. package/dist/build/node/testJob.d.ts +2 -2
  24. package/dist/build/node/testJob.js +7 -21
  25. package/dist/build/node/yarn.d.ts +1 -1
  26. package/dist/build/node/yarn.js +14 -15
  27. package/dist/build/rails/build.d.ts +3 -0
  28. package/dist/build/rails/build.js +51 -0
  29. package/dist/build/rails/index.d.ts +3 -0
  30. package/dist/build/rails/index.js +41 -0
  31. package/dist/build/rails/test.d.ts +3 -0
  32. package/dist/build/rails/test.js +94 -0
  33. package/dist/build/types.d.ts +84 -9
  34. package/dist/build/types.js +0 -4
  35. package/dist/bundles/catladder-gitlab/index.js +32979 -0
  36. package/dist/catladder-gitlab.js +7 -26
  37. package/dist/config/{configruedEnvs.test.d.ts → __tests__/configruedEnvs.test.d.ts} +0 -0
  38. package/dist/config/{configruedEnvs.test.js → __tests__/configruedEnvs.test.js} +10 -12
  39. package/dist/config/configruedEnvs.d.ts +1 -1
  40. package/dist/config/configruedEnvs.js +7 -22
  41. package/dist/config/index.js +0 -4
  42. package/dist/config/readConfig.d.ts +1 -1
  43. package/dist/config/readConfig.js +2 -13
  44. package/dist/constants.js +1 -1
  45. package/dist/context/{resolveReferences.test.d.ts → __tests__/resolveReferences.test.d.ts} +0 -0
  46. package/dist/context/__tests__/resolveReferences.test.js +336 -0
  47. package/dist/context/getEnvConfig.d.ts +2 -0
  48. package/dist/context/getEnvConfig.js +18 -0
  49. package/dist/context/getEnvType.d.ts +4 -0
  50. package/dist/context/getEnvType.js +13 -0
  51. package/dist/context/getEnvironment.d.ts +3 -0
  52. package/dist/{pipeline/createChildPipeline.test.js → context/getEnvironment.js} +42 -84
  53. package/dist/context/getEnvironmentContext.d.ts +4 -0
  54. package/dist/context/getEnvironmentContext.js +33 -0
  55. package/dist/context/getEnvironmentVariables.d.ts +10 -0
  56. package/dist/context/getEnvironmentVariables.js +260 -0
  57. package/dist/context/getLabels.d.ts +8 -0
  58. package/dist/context/getLabels.js +38 -0
  59. package/dist/context/index.d.ts +5 -6
  60. package/dist/context/index.js +158 -208
  61. package/dist/context/resolveReferences.d.ts +1 -3
  62. package/dist/context/resolveReferences.js +213 -52
  63. package/dist/defaults/index.d.ts +1 -1
  64. package/dist/deploy/base.d.ts +4 -2
  65. package/dist/deploy/base.js +38 -33
  66. package/dist/deploy/cloudRun/deployJob.d.ts +3 -0
  67. package/dist/deploy/cloudRun/deployJob.js +238 -0
  68. package/dist/deploy/cloudRun/index.d.ts +4 -0
  69. package/dist/deploy/cloudRun/index.js +112 -0
  70. package/dist/deploy/cloudRun/utils/createArgsString.d.ts +11 -0
  71. package/dist/deploy/cloudRun/utils/createArgsString.js +55 -0
  72. package/dist/deploy/cloudRun/utils/database.d.ts +4 -0
  73. package/dist/deploy/cloudRun/utils/database.js +64 -0
  74. package/dist/deploy/cloudRun/utils/gcloudServiceAccountLoginCommands.d.ts +2 -0
  75. package/dist/deploy/cloudRun/utils/gcloudServiceAccountLoginCommands.js +10 -0
  76. package/dist/deploy/cloudRun/utils/jobName.d.ts +1 -0
  77. package/dist/deploy/cloudRun/utils/jobName.js +8 -0
  78. package/dist/deploy/custom/deployJob.d.ts +2 -2
  79. package/dist/deploy/custom/deployJob.js +10 -16
  80. package/dist/deploy/custom/index.d.ts +2 -1
  81. package/dist/deploy/custom/index.js +14 -19
  82. package/dist/deploy/dockerTag/deployJob.d.ts +3 -0
  83. package/dist/deploy/dockerTag/deployJob.js +24 -0
  84. package/dist/deploy/dockerTag/index.d.ts +2 -0
  85. package/dist/deploy/dockerTag/index.js +17 -0
  86. package/dist/deploy/index.d.ts +12 -8
  87. package/dist/deploy/index.js +7 -20
  88. package/dist/deploy/kubernetes/additionalSecretKeys.d.ts +4 -0
  89. package/dist/deploy/kubernetes/additionalSecretKeys.js +24 -0
  90. package/dist/deploy/kubernetes/cloudSql/index.d.ts +13 -0
  91. package/dist/deploy/kubernetes/cloudSql/index.js +30 -0
  92. package/dist/deploy/kubernetes/deployJob.d.ts +2 -2
  93. package/dist/deploy/kubernetes/deployJob.js +17 -91
  94. package/dist/deploy/kubernetes/index.d.ts +3 -1
  95. package/dist/deploy/kubernetes/index.js +42 -4
  96. package/dist/deploy/kubernetes/kubeEnv.d.ts +9 -0
  97. package/dist/deploy/kubernetes/kubeEnv.js +72 -0
  98. package/dist/deploy/kubernetes/kubeValues.d.ts +97 -0
  99. package/dist/deploy/kubernetes/kubeValues.js +124 -0
  100. package/dist/deploy/kubernetes/mongodb.d.ts +18 -5
  101. package/dist/deploy/kubernetes/mongodb.js +96 -10
  102. package/dist/deploy/kubernetes/processSecretsAsFiles.d.ts +25 -21
  103. package/dist/deploy/kubernetes/processSecretsAsFiles.js +2 -10
  104. package/dist/deploy/types/base.d.ts +14 -0
  105. package/dist/deploy/types/base.js +3 -0
  106. package/dist/deploy/types/custom.d.ts +33 -0
  107. package/dist/deploy/types/custom.js +3 -0
  108. package/dist/deploy/types/dockerTag.d.ts +10 -0
  109. package/dist/deploy/types/dockerTag.js +3 -0
  110. package/dist/deploy/types/googleCloudRun.d.ts +121 -0
  111. package/dist/deploy/types/googleCloudRun.js +3 -0
  112. package/dist/deploy/types/index.d.ts +22 -0
  113. package/dist/deploy/types/index.js +31 -0
  114. package/dist/deploy/types/kubernetes.d.ts +276 -0
  115. package/dist/deploy/types/kubernetes.js +3 -0
  116. package/dist/deploy/utils.d.ts +2 -2
  117. package/dist/deploy/utils.js +3 -10
  118. package/dist/index.js +0 -10
  119. package/dist/pipeline/commitInfo/getBuildId.d.ts +1 -0
  120. package/dist/pipeline/commitInfo/getBuildId.js +135 -0
  121. package/dist/pipeline/commitInfo/getCommitInfo.d.ts +2 -0
  122. package/dist/pipeline/commitInfo/getCommitInfo.js +140 -0
  123. package/dist/pipeline/createAllJobs.d.ts +8 -0
  124. package/dist/{build/tests/storybook.test.js → pipeline/createAllJobs.js} +54 -104
  125. package/dist/pipeline/createChildPipeline.d.ts +2 -2
  126. package/dist/pipeline/createChildPipeline.js +40 -121
  127. package/dist/pipeline/createJobsForComponent.d.ts +3 -0
  128. package/dist/pipeline/{createJobs.js → createJobsForComponent.js} +33 -192
  129. package/dist/pipeline/gitlab/createGitlabJobs.d.ts +14 -0
  130. package/dist/pipeline/gitlab/createGitlabJobs.js +260 -0
  131. package/dist/pipeline/index.d.ts +1 -1
  132. package/dist/pipeline/index.js +1 -5
  133. package/dist/pipeline/packageManager.d.ts +1 -1
  134. package/dist/pipeline/packageManager.js +20 -173
  135. package/dist/pipeline/yarn/yarnUtils.d.ts +4 -0
  136. package/dist/pipeline/yarn/yarnUtils.js +193 -0
  137. package/dist/rules/index.d.ts +3 -1
  138. package/dist/rules/index.js +7 -6
  139. package/dist/runner/index.d.ts +2 -3
  140. package/dist/runner/index.js +0 -3
  141. package/dist/tsconfig.tsbuildinfo +1 -1
  142. package/dist/types/config.d.ts +19 -25
  143. package/dist/types/config.js +6 -16
  144. package/dist/types/context.d.ts +16 -3
  145. package/dist/types/environmentContext.d.ts +28 -0
  146. package/dist/types/environmentContext.js +3 -0
  147. package/dist/types/gitlab-types.d.ts +39 -7
  148. package/dist/types/index.js +0 -6
  149. package/dist/types/jobs.d.ts +25 -17
  150. package/dist/types/jobs.js +1 -1
  151. package/dist/types/pipeline.d.ts +1 -1
  152. package/dist/types/utils.d.ts +1 -0
  153. package/dist/types/utils.js +3 -0
  154. package/dist/utils/gitlab.d.ts +5 -0
  155. package/dist/utils/gitlab.js +48 -0
  156. package/dist/utils/index.js +5 -15
  157. package/examples/__snapshots__/cloud-run-memory-limit.ts.snap +1560 -0
  158. package/examples/__snapshots__/cloud-run-no-cpu-throttling.ts.snap +1560 -0
  159. package/examples/__snapshots__/cloud-run-non-public.ts.snap +1560 -0
  160. package/examples/__snapshots__/cloud-run-with-sql-reuse-db.ts.snap +3092 -0
  161. package/examples/__snapshots__/cloud-run-with-sql.ts.snap +3103 -0
  162. package/examples/__snapshots__/custom-build-job.ts.snap +1162 -0
  163. package/examples/__snapshots__/custom-envs.ts.snap +261 -0
  164. package/examples/__snapshots__/kubernetes-application-customization.ts.snap +2280 -0
  165. package/examples/__snapshots__/kubernetes-with-jobs.ts.snap +4077 -0
  166. package/examples/__snapshots__/rails-k8s-with-worker.ts.snap +1911 -0
  167. package/examples/__snapshots__/wait-for-other-deploy.ts.snap +1626 -0
  168. package/examples/__utils__/helpers.ts +14 -0
  169. package/examples/cloud-run-memory-limit.ts +28 -0
  170. package/examples/cloud-run-no-cpu-throttling.ts +33 -0
  171. package/examples/cloud-run-non-public.ts +27 -0
  172. package/examples/cloud-run-with-sql-reuse-db.ts +54 -0
  173. package/examples/cloud-run-with-sql.ts +61 -0
  174. package/examples/custom-build-job.ts +28 -0
  175. package/examples/custom-envs.ts +31 -0
  176. package/examples/kubernetes-application-customization.ts +57 -0
  177. package/examples/kubernetes-with-jobs.ts +68 -0
  178. package/examples/rails-k8s-with-worker.ts +95 -0
  179. package/examples/wait-for-other-deploy.ts +36 -0
  180. package/package.json +16 -13
  181. package/scripts/bundle +2 -0
  182. package/src/build/base/createBuildJob.ts +12 -5
  183. package/src/build/base/{getBuildInfo.ts → writeBuildInfo.ts} +2 -2
  184. package/src/build/custom/buildJob.ts +64 -0
  185. package/src/build/custom/index.ts +7 -0
  186. package/src/build/docker.ts +58 -33
  187. package/src/build/index.ts +24 -5
  188. package/src/build/node/buildJob.ts +2 -2
  189. package/src/build/node/cache.ts +19 -8
  190. package/src/build/node/index.ts +1 -1
  191. package/src/build/node/meteor.ts +8 -2
  192. package/src/build/node/testJob.ts +4 -2
  193. package/src/build/node/yarn.ts +21 -10
  194. package/src/build/rails/build.ts +38 -0
  195. package/src/build/rails/index.ts +8 -0
  196. package/src/build/rails/test.ts +86 -0
  197. package/src/build/types.ts +97 -2
  198. package/src/catladder-gitlab.ts +4 -2
  199. package/src/config/{configruedEnvs.test.ts → __tests__/configruedEnvs.test.ts} +3 -3
  200. package/src/config/configruedEnvs.ts +2 -7
  201. package/src/config/readConfig.ts +1 -1
  202. package/src/context/{resolveReferences.test.ts → __tests__/resolveReferences.test.ts} +23 -38
  203. package/src/context/getEnvConfig.ts +21 -0
  204. package/src/context/getEnvType.ts +17 -0
  205. package/src/context/getEnvironment.ts +40 -0
  206. package/src/context/getEnvironmentContext.ts +57 -0
  207. package/src/context/getEnvironmentVariables.ts +155 -0
  208. package/src/context/getLabels.ts +20 -0
  209. package/src/context/index.ts +28 -193
  210. package/src/context/resolveReferences.ts +35 -31
  211. package/src/defaults/index.ts +1 -1
  212. package/src/deploy/base.ts +43 -19
  213. package/src/deploy/cloudRun/deployJob.ts +276 -0
  214. package/src/deploy/cloudRun/index.ts +95 -0
  215. package/src/deploy/cloudRun/utils/createArgsString.ts +26 -0
  216. package/src/deploy/cloudRun/utils/database.ts +55 -0
  217. package/src/deploy/cloudRun/utils/gcloudServiceAccountLoginCommands.ts +14 -0
  218. package/src/deploy/cloudRun/utils/jobName.ts +2 -0
  219. package/src/deploy/custom/deployJob.ts +13 -3
  220. package/src/deploy/custom/index.ts +9 -1
  221. package/src/deploy/dockerTag/deployJob.ts +31 -0
  222. package/src/deploy/dockerTag/index.ts +9 -0
  223. package/src/deploy/index.ts +26 -17
  224. package/src/deploy/kubernetes/additionalSecretKeys.ts +23 -0
  225. package/src/deploy/kubernetes/cloudSql/index.ts +28 -0
  226. package/src/deploy/kubernetes/deployJob.ts +21 -78
  227. package/src/deploy/kubernetes/index.ts +42 -1
  228. package/src/deploy/kubernetes/kubeEnv.ts +48 -0
  229. package/src/deploy/kubernetes/kubeValues.ts +96 -0
  230. package/src/deploy/kubernetes/mongodb.ts +104 -7
  231. package/src/deploy/kubernetes/processSecretsAsFiles.ts +1 -1
  232. package/src/deploy/types/base.ts +17 -0
  233. package/src/deploy/types/custom.ts +36 -0
  234. package/src/deploy/types/dockerTag.ts +12 -0
  235. package/src/deploy/types/googleCloudRun.ts +179 -0
  236. package/src/deploy/types/index.ts +28 -0
  237. package/src/deploy/types/kubernetes.ts +301 -0
  238. package/src/deploy/utils.ts +6 -2
  239. package/src/pipeline/commitInfo/getBuildId.ts +6 -0
  240. package/src/pipeline/commitInfo/getCommitInfo.ts +12 -0
  241. package/src/pipeline/createAllJobs.ts +38 -0
  242. package/src/pipeline/createChildPipeline.ts +9 -20
  243. package/src/pipeline/createJobsForComponent.ts +64 -0
  244. package/src/pipeline/gitlab/createGitlabJobs.ts +149 -0
  245. package/src/pipeline/index.ts +1 -1
  246. package/src/pipeline/packageManager.ts +4 -38
  247. package/src/pipeline/yarn/yarnUtils.ts +37 -0
  248. package/src/rules/index.ts +9 -6
  249. package/src/runner/index.ts +2 -1
  250. package/src/types/config.ts +26 -13
  251. package/src/types/context.ts +23 -2
  252. package/src/types/environmentContext.ts +33 -0
  253. package/src/types/gitlab-types.ts +36 -6
  254. package/src/types/jobs.ts +30 -6
  255. package/src/types/pipeline.ts +1 -1
  256. package/src/types/utils.ts +7 -0
  257. package/src/utils/gitlab.ts +23 -0
  258. package/tsconfig.json +3 -1
  259. package/dist/build/base/getBuildInfo.d.ts +0 -2
  260. package/dist/build/tests/storybook.test.d.ts +0 -1
  261. package/dist/context/resolveReferences.test.js +0 -141
  262. package/dist/deploy/kubernetes/cloudsql.d.ts +0 -6
  263. package/dist/deploy/kubernetes/cloudsql.js +0 -16
  264. package/dist/deploy/types.d.ts +0 -196
  265. package/dist/deploy/types.js +0 -16
  266. package/dist/pipeline/createChildPipeline.test.d.ts +0 -1
  267. package/dist/pipeline/createJobs.d.ts +0 -3
  268. package/dist/pipeline/gitlab/makeGitlabJob.d.ts +0 -8
  269. package/dist/pipeline/gitlab/makeGitlabJob.js +0 -45
  270. package/src/build/tests/storybook.test.ts +0 -54
  271. package/src/deploy/kubernetes/cloudsql.ts +0 -12
  272. package/src/deploy/types.ts +0 -189
  273. package/src/pipeline/createChildPipeline.test.ts +0 -49
  274. package/src/pipeline/createJobs.ts +0 -195
  275. package/src/pipeline/gitlab/makeGitlabJob.ts +0 -16
@@ -0,0 +1,1162 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`matches snapshot 1`] = `
4
+ {
5
+ "mainBranch": {
6
+ "image": "path/to/docker/jobs-default:the-version",
7
+ "jobs": {
8
+ "www 🔨 app | dev ": {
9
+ "artifacts": {
10
+ "paths": [
11
+ "www/__build_info.json",
12
+ "www/dist",
13
+ ],
14
+ "reports": {
15
+ "junit": undefined,
16
+ },
17
+ },
18
+ "cache": [],
19
+ "environment": undefined,
20
+ "image": "foo",
21
+ "interruptible": true,
22
+ "needs": [],
23
+ "retry": {
24
+ "max": 2,
25
+ "when": [
26
+ "runner_system_failure",
27
+ "stuck_or_timeout_failure",
28
+ ],
29
+ },
30
+ "script": [
31
+ "echo '{"id":"some-id","time":"01-01-2023 12:13:14"}' > www/__build_info.json",
32
+ "if [ -f ./.nvmrc ]; then source /root/.nvm/nvm.sh && nvm install <<< .nvmrc; fi",
33
+ "cd www",
34
+ ],
35
+ "services": undefined,
36
+ "stage": "build",
37
+ "variables": {
38
+ "APP_DIR": "www",
39
+ "ENV_SHORT": "dev",
40
+ "ENV_TYPE": "dev",
41
+ "GCLOUD_DEPLOY_credentialsKey": "$CL_dev_www_GCLOUD_DEPLOY_credentialsKey",
42
+ "HOST": "pan-test-app-dev-www-unknown-host.example.com",
43
+ "HOST_CANONICAL": "pan-test-app-dev-www-unknown-host.example.com",
44
+ "KUBERNETES_CPU_LIMIT": "2",
45
+ "KUBERNETES_CPU_REQUEST": "0.5",
46
+ "KUBERNETES_MEMORY_LIMIT": "4Gi",
47
+ "KUBERNETES_MEMORY_REQUEST": "2Gi",
48
+ "ROOT_URL": "https://pan-test-app-dev-www-unknown-host.example.com",
49
+ "_ALL_ENV_VAR_KEYS": "["ENV_SHORT","APP_DIR","ENV_TYPE","HOST","ROOT_URL","HOST_CANONICAL","GCLOUD_DEPLOY_credentialsKey"]",
50
+ },
51
+ },
52
+ "www 🔨 docker | dev ": {
53
+ "environment": undefined,
54
+ "image": "path/to/docker/docker-build:the-version",
55
+ "interruptible": true,
56
+ "needs": [
57
+ "www 🔨 app | dev ",
58
+ ],
59
+ "retry": {
60
+ "max": 2,
61
+ "when": [
62
+ "runner_system_failure",
63
+ "stuck_or_timeout_failure",
64
+ ],
65
+ },
66
+ "script": [
67
+ "ensureNginxDockerfile",
68
+ "docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY",
69
+ "docker version",
70
+ "docker build --network host --cache-from $DOCKER_CACHE_IMAGE --tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG -f $APP_DIR/Dockerfile . --build-arg BUILDKIT_INLINE_CACHE=1",
71
+ "docker push $DOCKER_IMAGE:$DOCKER_IMAGE_TAG",
72
+ "docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG $DOCKER_CACHE_IMAGE",
73
+ "docker push $DOCKER_CACHE_IMAGE",
74
+ ],
75
+ "services": [
76
+ {
77
+ "command": [
78
+ "--tls=false",
79
+ ],
80
+ "name": "docker:20-dind",
81
+ },
82
+ ],
83
+ "stage": "build",
84
+ "variables": {
85
+ "APP_DIR": "www",
86
+ "DOCKERFILE_ADDITIONS": undefined,
87
+ "DOCKERFILE_ADDITIONS_END": undefined,
88
+ "DOCKER_BUILDKIT": "1",
89
+ "DOCKER_CACHE_IMAGE": "$DOCKER_REGISTRY_IMAGE_PATH/caches/www",
90
+ "DOCKER_DIR": ".",
91
+ "DOCKER_DRIVER": "overlay2",
92
+ "DOCKER_HOST": "tcp://0.0.0.0:2375",
93
+ "DOCKER_IMAGE": "$DOCKER_REGISTRY_IMAGE_PATH/$DOCKER_IMAGE_NAME",
94
+ "DOCKER_IMAGE_NAME": "dev/www",
95
+ "DOCKER_IMAGE_TAG": "$CI_COMMIT_SHA",
96
+ "DOCKER_REGISTRY": "$CI_REGISTRY",
97
+ "DOCKER_REGISTRY_IMAGE_PATH": "$CI_REGISTRY_IMAGE",
98
+ "DOCKER_TLS_CERTDIR": "",
99
+ "KUBERNETES_CPU_LIMIT": "1",
100
+ "KUBERNETES_CPU_REQUEST": "0.5",
101
+ "KUBERNETES_MEMORY_LIMIT": "2Gi",
102
+ "KUBERNETES_MEMORY_REQUEST": "1Gi",
103
+ },
104
+ },
105
+ "www 🚀 Deploy | dev ": {
106
+ "allow_failure": false,
107
+ "artifacts": {
108
+ "paths": [
109
+ "____envvars.yaml",
110
+ ],
111
+ },
112
+ "environment": {
113
+ "auto_stop_in": "4 weeks",
114
+ "name": "dev/www",
115
+ "on_stop": "www 🛑 Stop ⚠️ | dev ",
116
+ "url": "https://pan-test-app-dev-www-unknown-host.example.com",
117
+ },
118
+ "image": "path/to/docker/gcloud:the-version",
119
+ "interruptible": true,
120
+ "needs": [
121
+ {
122
+ "artifacts": false,
123
+ "job": "www 🔨 app | dev ",
124
+ },
125
+ {
126
+ "artifacts": false,
127
+ "job": "www 🔨 docker | dev ",
128
+ },
129
+ ],
130
+ "retry": {
131
+ "max": 2,
132
+ "when": [
133
+ "runner_system_failure",
134
+ "stuck_or_timeout_failure",
135
+ ],
136
+ },
137
+ "rules": [
138
+ {
139
+ "when": "on_success",
140
+ },
141
+ ],
142
+ "script": [
143
+ "echo $CL_dev_www_GCLOUD_DEPLOY_credentialsKey > ./____keyfile.json
144
+ ",
145
+ "gcloud auth activate-service-account --key-file="./____keyfile.json"",
146
+ "export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe asdf --format="value(projectNumber)")",
147
+ "echo "GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER"",
148
+ "docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY",
149
+ "gcloud auth configure-docker asia-east1-docker.pkg.dev",
150
+ "docker pull $DOCKER_IMAGE:$DOCKER_IMAGE_TAG",
151
+ "docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG",
152
+ "docker push asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG",
153
+ "echo "$ENV_VARS" > ____envvars.yaml",
154
+ "gcloud run deploy pan-test-app-dev-www --command="" --image=asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG --project=asdf --region=asia-east1 --labels=customer-name=pan,app-name=test-app,env-type=dev,env-name=dev,build-type=custom --env-vars-file=____envvars.yaml --min-instances=0 --max-instances=100 --cpu-throttling --allow-unauthenticated",
155
+ "docker image rm asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG",
156
+ ],
157
+ "services": [
158
+ {
159
+ "command": [
160
+ "--tls=false",
161
+ ],
162
+ "name": "docker:20-dind",
163
+ },
164
+ ],
165
+ "stage": "deploy dev",
166
+ "variables": {
167
+ "APP_DIR": "www",
168
+ "CLOUDSDK_CORE_DISABLE_PROMPTS": "1",
169
+ "DOCKER_BUILDKIT": "1",
170
+ "DOCKER_CACHE_IMAGE": "$DOCKER_REGISTRY_IMAGE_PATH/caches/www",
171
+ "DOCKER_DRIVER": "overlay2",
172
+ "DOCKER_HOST": "tcp://0.0.0.0:2375",
173
+ "DOCKER_IMAGE": "$DOCKER_REGISTRY_IMAGE_PATH/$DOCKER_IMAGE_NAME",
174
+ "DOCKER_IMAGE_NAME": "dev/www",
175
+ "DOCKER_IMAGE_TAG": "$CI_COMMIT_SHA",
176
+ "DOCKER_REGISTRY": "$CI_REGISTRY",
177
+ "DOCKER_REGISTRY_IMAGE_PATH": "$CI_REGISTRY_IMAGE",
178
+ "DOCKER_TLS_CERTDIR": "",
179
+ "ENV_SHORT": "dev",
180
+ "ENV_TYPE": "dev",
181
+ "ENV_VARS": "ENV_SHORT: 'dev'
182
+ APP_DIR: 'www'
183
+ ENV_TYPE: 'dev'
184
+ HOST: 'pan-test-app-dev-www-unknown-host.example.com'
185
+ ROOT_URL: 'https://pan-test-app-dev-www-unknown-host.example.com'
186
+ HOST_CANONICAL: 'pan-test-app-dev-www-unknown-host.example.com'
187
+ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","HOST","ROOT_URL","HOST_CANONICAL","GCLOUD_DEPLOY_credentialsKey"]'
188
+ ",
189
+ "GCLOUD_DEPLOY_credentialsKey": "$CL_dev_www_GCLOUD_DEPLOY_credentialsKey",
190
+ "HOST": "pan-test-app-dev-www-unknown-host.example.com",
191
+ "HOST_CANONICAL": "pan-test-app-dev-www-unknown-host.example.com",
192
+ "KUBERNETES_CPU_LIMIT": "1",
193
+ "KUBERNETES_CPU_REQUEST": "0.5",
194
+ "KUBERNETES_MEMORY_LIMIT": "500Mi",
195
+ "KUBERNETES_MEMORY_REQUEST": "200Mi",
196
+ "ROOT_URL": "https://pan-test-app-dev-www-unknown-host.example.com",
197
+ "_ALL_ENV_VAR_KEYS": "["ENV_SHORT","APP_DIR","ENV_TYPE","HOST","ROOT_URL","HOST_CANONICAL","GCLOUD_DEPLOY_credentialsKey"]",
198
+ },
199
+ },
200
+ "www 🛑 Stop ⚠️ | dev ": {
201
+ "environment": {
202
+ "action": "stop",
203
+ "name": "dev/www",
204
+ "url": "https://pan-test-app-dev-www-unknown-host.example.com",
205
+ },
206
+ "image": "path/to/docker/gcloud:the-version",
207
+ "interruptible": true,
208
+ "needs": [],
209
+ "retry": {
210
+ "max": 2,
211
+ "when": [
212
+ "runner_system_failure",
213
+ "stuck_or_timeout_failure",
214
+ ],
215
+ },
216
+ "rules": [
217
+ {
218
+ "allow_failure": true,
219
+ "if": "$CI_COMMIT_BRANCH =~ /^[0-9]+\\.([0-9]+|x)\\.x$/",
220
+ "when": "on_success",
221
+ },
222
+ {
223
+ "allow_failure": true,
224
+ "when": "manual",
225
+ },
226
+ ],
227
+ "script": [
228
+ "echo $CL_dev_www_GCLOUD_DEPLOY_credentialsKey > ./____keyfile.json
229
+ ",
230
+ "gcloud auth activate-service-account --key-file="./____keyfile.json"",
231
+ "gcloud run services delete pan-test-app-dev-www --project=asdf --region=asia-east1",
232
+ ],
233
+ "stage": "stop dev",
234
+ "variables": {
235
+ "CLOUDSDK_CORE_DISABLE_PROMPTS": "1",
236
+ "GIT_STRATEGY": "none",
237
+ "KUBERNETES_CPU_LIMIT": "1",
238
+ "KUBERNETES_CPU_REQUEST": "0.5",
239
+ "KUBERNETES_MEMORY_LIMIT": "500Mi",
240
+ "KUBERNETES_MEMORY_REQUEST": "200Mi",
241
+ },
242
+ },
243
+ },
244
+ "stages": [
245
+ "setup",
246
+ "setup dev",
247
+ "setup review",
248
+ "setup stage",
249
+ "setup prod",
250
+ "setup local",
251
+ "test",
252
+ "test dev",
253
+ "test review",
254
+ "test stage",
255
+ "test prod",
256
+ "test local",
257
+ "build",
258
+ "build dev",
259
+ "build review",
260
+ "build stage",
261
+ "build prod",
262
+ "build local",
263
+ "deploy",
264
+ "deploy dev",
265
+ "deploy review",
266
+ "deploy stage",
267
+ "deploy prod",
268
+ "deploy local",
269
+ "verify",
270
+ "verify dev",
271
+ "verify review",
272
+ "verify stage",
273
+ "verify prod",
274
+ "verify local",
275
+ "rollback",
276
+ "rollback dev",
277
+ "rollback review",
278
+ "rollback stage",
279
+ "rollback prod",
280
+ "rollback local",
281
+ "stop",
282
+ "stop dev",
283
+ "stop review",
284
+ "stop stage",
285
+ "stop prod",
286
+ "stop local",
287
+ ],
288
+ "variables": {
289
+ "FF_USE_FASTZIP": "true",
290
+ },
291
+ "workflow": {
292
+ "rules": [
293
+ {
294
+ "if": "$CI_COMMIT_TAG",
295
+ },
296
+ {
297
+ "if": "$CI_COMMIT_MESSAGE =~ /^chore\\(release\\).*/",
298
+ "when": "never",
299
+ },
300
+ {
301
+ "if": "$CI_COMMIT_BRANCH =~ /^[0-9]+.([0-9]+|x).x$/",
302
+ },
303
+ {
304
+ "if": "$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH",
305
+ },
306
+ {
307
+ "if": "$CI_MERGE_REQUEST_ID",
308
+ },
309
+ ],
310
+ },
311
+ },
312
+ "mr": {
313
+ "image": "path/to/docker/jobs-default:the-version",
314
+ "jobs": {
315
+ "www 🔨 app | review ": {
316
+ "artifacts": {
317
+ "paths": [
318
+ "www/__build_info.json",
319
+ "www/dist",
320
+ ],
321
+ "reports": {
322
+ "junit": undefined,
323
+ },
324
+ },
325
+ "cache": [],
326
+ "environment": undefined,
327
+ "image": "foo",
328
+ "interruptible": true,
329
+ "needs": [],
330
+ "retry": {
331
+ "max": 2,
332
+ "when": [
333
+ "runner_system_failure",
334
+ "stuck_or_timeout_failure",
335
+ ],
336
+ },
337
+ "script": [
338
+ "echo '{"id":"some-id","time":"01-01-2023 12:13:14"}' > www/__build_info.json",
339
+ "if [ -f ./.nvmrc ]; then source /root/.nvm/nvm.sh && nvm install <<< .nvmrc; fi",
340
+ "cd www",
341
+ ],
342
+ "services": undefined,
343
+ "stage": "build",
344
+ "variables": {
345
+ "APP_DIR": "www",
346
+ "ENV_SHORT": "review",
347
+ "ENV_TYPE": "review",
348
+ "GCLOUD_DEPLOY_credentialsKey": "$CL_review_www_GCLOUD_DEPLOY_credentialsKey",
349
+ "HOST": "pan-test-app-review-mr1234-www-unknown-host.example.com",
350
+ "HOST_CANONICAL": "pan-test-app-review-mr1234-www-unknown-host.example.com",
351
+ "KUBERNETES_CPU_LIMIT": "2",
352
+ "KUBERNETES_CPU_REQUEST": "0.5",
353
+ "KUBERNETES_MEMORY_LIMIT": "4Gi",
354
+ "KUBERNETES_MEMORY_REQUEST": "2Gi",
355
+ "ROOT_URL": "https://pan-test-app-review-mr1234-www-unknown-host.example.com",
356
+ "_ALL_ENV_VAR_KEYS": "["ENV_SHORT","APP_DIR","ENV_TYPE","HOST","ROOT_URL","HOST_CANONICAL","GCLOUD_DEPLOY_credentialsKey"]",
357
+ },
358
+ },
359
+ "www 🔨 docker | review ": {
360
+ "environment": undefined,
361
+ "image": "path/to/docker/docker-build:the-version",
362
+ "interruptible": true,
363
+ "needs": [
364
+ "www 🔨 app | review ",
365
+ ],
366
+ "retry": {
367
+ "max": 2,
368
+ "when": [
369
+ "runner_system_failure",
370
+ "stuck_or_timeout_failure",
371
+ ],
372
+ },
373
+ "script": [
374
+ "ensureNginxDockerfile",
375
+ "docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY",
376
+ "docker version",
377
+ "docker build --network host --cache-from $DOCKER_CACHE_IMAGE --tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG -f $APP_DIR/Dockerfile . --build-arg BUILDKIT_INLINE_CACHE=1",
378
+ "docker push $DOCKER_IMAGE:$DOCKER_IMAGE_TAG",
379
+ "docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG $DOCKER_CACHE_IMAGE",
380
+ "docker push $DOCKER_CACHE_IMAGE",
381
+ ],
382
+ "services": [
383
+ {
384
+ "command": [
385
+ "--tls=false",
386
+ ],
387
+ "name": "docker:20-dind",
388
+ },
389
+ ],
390
+ "stage": "build",
391
+ "variables": {
392
+ "APP_DIR": "www",
393
+ "DOCKERFILE_ADDITIONS": undefined,
394
+ "DOCKERFILE_ADDITIONS_END": undefined,
395
+ "DOCKER_BUILDKIT": "1",
396
+ "DOCKER_CACHE_IMAGE": "$DOCKER_REGISTRY_IMAGE_PATH/caches/www",
397
+ "DOCKER_DIR": ".",
398
+ "DOCKER_DRIVER": "overlay2",
399
+ "DOCKER_HOST": "tcp://0.0.0.0:2375",
400
+ "DOCKER_IMAGE": "$DOCKER_REGISTRY_IMAGE_PATH/$DOCKER_IMAGE_NAME",
401
+ "DOCKER_IMAGE_NAME": "review/www",
402
+ "DOCKER_IMAGE_TAG": "$CI_COMMIT_SHA",
403
+ "DOCKER_REGISTRY": "$CI_REGISTRY",
404
+ "DOCKER_REGISTRY_IMAGE_PATH": "$CI_REGISTRY_IMAGE",
405
+ "DOCKER_TLS_CERTDIR": "",
406
+ "KUBERNETES_CPU_LIMIT": "1",
407
+ "KUBERNETES_CPU_REQUEST": "0.5",
408
+ "KUBERNETES_MEMORY_LIMIT": "2Gi",
409
+ "KUBERNETES_MEMORY_REQUEST": "1Gi",
410
+ },
411
+ },
412
+ "www 🚀 Deploy | review ": {
413
+ "allow_failure": false,
414
+ "artifacts": {
415
+ "paths": [
416
+ "____envvars.yaml",
417
+ ],
418
+ },
419
+ "environment": {
420
+ "auto_stop_in": "2 week",
421
+ "name": "review/some-commit/www",
422
+ "on_stop": "www 🛑 Stop ⚠️ | review ",
423
+ "url": "https://pan-test-app-review-mr1234-www-unknown-host.example.com",
424
+ },
425
+ "image": "path/to/docker/gcloud:the-version",
426
+ "interruptible": true,
427
+ "needs": [
428
+ {
429
+ "artifacts": false,
430
+ "job": "www 🔨 app | review ",
431
+ },
432
+ {
433
+ "artifacts": false,
434
+ "job": "www 🔨 docker | review ",
435
+ },
436
+ ],
437
+ "retry": {
438
+ "max": 2,
439
+ "when": [
440
+ "runner_system_failure",
441
+ "stuck_or_timeout_failure",
442
+ ],
443
+ },
444
+ "rules": [
445
+ {
446
+ "when": "on_success",
447
+ },
448
+ ],
449
+ "script": [
450
+ "echo $CL_review_www_GCLOUD_DEPLOY_credentialsKey > ./____keyfile.json
451
+ ",
452
+ "gcloud auth activate-service-account --key-file="./____keyfile.json"",
453
+ "export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe asdf --format="value(projectNumber)")",
454
+ "echo "GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER"",
455
+ "docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY",
456
+ "gcloud auth configure-docker asia-east1-docker.pkg.dev",
457
+ "docker pull $DOCKER_IMAGE:$DOCKER_IMAGE_TAG",
458
+ "docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG",
459
+ "docker push asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG",
460
+ "echo "$ENV_VARS" > ____envvars.yaml",
461
+ "gcloud run deploy pan-test-app-review-mr1234-www --command="" --image=asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG --project=asdf --region=asia-east1 --labels=customer-name=pan,app-name=test-app,env-type=review,env-name=review,build-type=custom --env-vars-file=____envvars.yaml --min-instances=0 --max-instances=100 --cpu-throttling --allow-unauthenticated",
462
+ "docker image rm asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG",
463
+ ],
464
+ "services": [
465
+ {
466
+ "command": [
467
+ "--tls=false",
468
+ ],
469
+ "name": "docker:20-dind",
470
+ },
471
+ ],
472
+ "stage": "deploy review",
473
+ "variables": {
474
+ "APP_DIR": "www",
475
+ "CLOUDSDK_CORE_DISABLE_PROMPTS": "1",
476
+ "DOCKER_BUILDKIT": "1",
477
+ "DOCKER_CACHE_IMAGE": "$DOCKER_REGISTRY_IMAGE_PATH/caches/www",
478
+ "DOCKER_DRIVER": "overlay2",
479
+ "DOCKER_HOST": "tcp://0.0.0.0:2375",
480
+ "DOCKER_IMAGE": "$DOCKER_REGISTRY_IMAGE_PATH/$DOCKER_IMAGE_NAME",
481
+ "DOCKER_IMAGE_NAME": "review/www",
482
+ "DOCKER_IMAGE_TAG": "$CI_COMMIT_SHA",
483
+ "DOCKER_REGISTRY": "$CI_REGISTRY",
484
+ "DOCKER_REGISTRY_IMAGE_PATH": "$CI_REGISTRY_IMAGE",
485
+ "DOCKER_TLS_CERTDIR": "",
486
+ "ENV_SHORT": "review",
487
+ "ENV_TYPE": "review",
488
+ "ENV_VARS": "ENV_SHORT: 'review'
489
+ APP_DIR: 'www'
490
+ ENV_TYPE: 'review'
491
+ HOST: 'pan-test-app-review-mr1234-www-unknown-host.example.com'
492
+ ROOT_URL: 'https://pan-test-app-review-mr1234-www-unknown-host.example.com'
493
+ HOST_CANONICAL: 'pan-test-app-review-mr1234-www-unknown-host.example.com'
494
+ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","HOST","ROOT_URL","HOST_CANONICAL","GCLOUD_DEPLOY_credentialsKey"]'
495
+ ",
496
+ "GCLOUD_DEPLOY_credentialsKey": "$CL_review_www_GCLOUD_DEPLOY_credentialsKey",
497
+ "HOST": "pan-test-app-review-mr1234-www-unknown-host.example.com",
498
+ "HOST_CANONICAL": "pan-test-app-review-mr1234-www-unknown-host.example.com",
499
+ "KUBERNETES_CPU_LIMIT": "1",
500
+ "KUBERNETES_CPU_REQUEST": "0.5",
501
+ "KUBERNETES_MEMORY_LIMIT": "500Mi",
502
+ "KUBERNETES_MEMORY_REQUEST": "200Mi",
503
+ "ROOT_URL": "https://pan-test-app-review-mr1234-www-unknown-host.example.com",
504
+ "_ALL_ENV_VAR_KEYS": "["ENV_SHORT","APP_DIR","ENV_TYPE","HOST","ROOT_URL","HOST_CANONICAL","GCLOUD_DEPLOY_credentialsKey"]",
505
+ },
506
+ },
507
+ "www 🛑 Stop ⚠️ | review ": {
508
+ "environment": {
509
+ "action": "stop",
510
+ "name": "review/some-commit/www",
511
+ "url": "https://pan-test-app-review-mr1234-www-unknown-host.example.com",
512
+ },
513
+ "image": "path/to/docker/gcloud:the-version",
514
+ "interruptible": true,
515
+ "needs": [],
516
+ "retry": {
517
+ "max": 2,
518
+ "when": [
519
+ "runner_system_failure",
520
+ "stuck_or_timeout_failure",
521
+ ],
522
+ },
523
+ "rules": [
524
+ {
525
+ "allow_failure": true,
526
+ "if": "$CI_COMMIT_BRANCH =~ /^[0-9]+\\.([0-9]+|x)\\.x$/",
527
+ "when": "on_success",
528
+ },
529
+ {
530
+ "allow_failure": true,
531
+ "when": "manual",
532
+ },
533
+ ],
534
+ "script": [
535
+ "echo $CL_review_www_GCLOUD_DEPLOY_credentialsKey > ./____keyfile.json
536
+ ",
537
+ "gcloud auth activate-service-account --key-file="./____keyfile.json"",
538
+ "gcloud run services delete pan-test-app-review-mr1234-www --project=asdf --region=asia-east1",
539
+ ],
540
+ "stage": "stop review",
541
+ "variables": {
542
+ "CLOUDSDK_CORE_DISABLE_PROMPTS": "1",
543
+ "GIT_STRATEGY": "none",
544
+ "KUBERNETES_CPU_LIMIT": "1",
545
+ "KUBERNETES_CPU_REQUEST": "0.5",
546
+ "KUBERNETES_MEMORY_LIMIT": "500Mi",
547
+ "KUBERNETES_MEMORY_REQUEST": "200Mi",
548
+ },
549
+ },
550
+ },
551
+ "stages": [
552
+ "setup",
553
+ "setup dev",
554
+ "setup review",
555
+ "setup stage",
556
+ "setup prod",
557
+ "setup local",
558
+ "test",
559
+ "test dev",
560
+ "test review",
561
+ "test stage",
562
+ "test prod",
563
+ "test local",
564
+ "build",
565
+ "build dev",
566
+ "build review",
567
+ "build stage",
568
+ "build prod",
569
+ "build local",
570
+ "deploy",
571
+ "deploy dev",
572
+ "deploy review",
573
+ "deploy stage",
574
+ "deploy prod",
575
+ "deploy local",
576
+ "verify",
577
+ "verify dev",
578
+ "verify review",
579
+ "verify stage",
580
+ "verify prod",
581
+ "verify local",
582
+ "rollback",
583
+ "rollback dev",
584
+ "rollback review",
585
+ "rollback stage",
586
+ "rollback prod",
587
+ "rollback local",
588
+ "stop",
589
+ "stop dev",
590
+ "stop review",
591
+ "stop stage",
592
+ "stop prod",
593
+ "stop local",
594
+ ],
595
+ "variables": {
596
+ "FF_USE_FASTZIP": "true",
597
+ },
598
+ "workflow": {
599
+ "rules": [
600
+ {
601
+ "if": "$CI_COMMIT_TAG",
602
+ },
603
+ {
604
+ "if": "$CI_COMMIT_MESSAGE =~ /^chore\\(release\\).*/",
605
+ "when": "never",
606
+ },
607
+ {
608
+ "if": "$CI_COMMIT_BRANCH =~ /^[0-9]+.([0-9]+|x).x$/",
609
+ },
610
+ {
611
+ "if": "$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH",
612
+ },
613
+ {
614
+ "if": "$CI_MERGE_REQUEST_ID",
615
+ },
616
+ ],
617
+ },
618
+ },
619
+ "taggedRelease": {
620
+ "image": "path/to/docker/jobs-default:the-version",
621
+ "jobs": {
622
+ "www 🔨 app | prod ": {
623
+ "artifacts": {
624
+ "paths": [
625
+ "www/__build_info.json",
626
+ "www/dist",
627
+ ],
628
+ "reports": {
629
+ "junit": undefined,
630
+ },
631
+ },
632
+ "cache": [],
633
+ "environment": undefined,
634
+ "image": "foo",
635
+ "interruptible": true,
636
+ "needs": [],
637
+ "retry": {
638
+ "max": 2,
639
+ "when": [
640
+ "runner_system_failure",
641
+ "stuck_or_timeout_failure",
642
+ ],
643
+ },
644
+ "script": [
645
+ "echo '{"id":"some-id","time":"01-01-2023 12:13:14"}' > www/__build_info.json",
646
+ "if [ -f ./.nvmrc ]; then source /root/.nvm/nvm.sh && nvm install <<< .nvmrc; fi",
647
+ "cd www",
648
+ ],
649
+ "services": undefined,
650
+ "stage": "build",
651
+ "variables": {
652
+ "APP_DIR": "www",
653
+ "ENV_SHORT": "prod",
654
+ "ENV_TYPE": "prod",
655
+ "GCLOUD_DEPLOY_credentialsKey": "$CL_prod_www_GCLOUD_DEPLOY_credentialsKey",
656
+ "HOST": "pan-test-app-prod-www-unknown-host.example.com",
657
+ "HOST_CANONICAL": "pan-test-app-prod-www-unknown-host.example.com",
658
+ "KUBERNETES_CPU_LIMIT": "2",
659
+ "KUBERNETES_CPU_REQUEST": "0.5",
660
+ "KUBERNETES_MEMORY_LIMIT": "4Gi",
661
+ "KUBERNETES_MEMORY_REQUEST": "2Gi",
662
+ "ROOT_URL": "https://pan-test-app-prod-www-unknown-host.example.com",
663
+ "_ALL_ENV_VAR_KEYS": "["ENV_SHORT","APP_DIR","ENV_TYPE","HOST","ROOT_URL","HOST_CANONICAL","GCLOUD_DEPLOY_credentialsKey"]",
664
+ },
665
+ },
666
+ "www 🔨 app | stage ": {
667
+ "artifacts": {
668
+ "paths": [
669
+ "www/__build_info.json",
670
+ "www/dist",
671
+ ],
672
+ "reports": {
673
+ "junit": undefined,
674
+ },
675
+ },
676
+ "cache": [],
677
+ "environment": undefined,
678
+ "image": "foo",
679
+ "interruptible": true,
680
+ "needs": [],
681
+ "retry": {
682
+ "max": 2,
683
+ "when": [
684
+ "runner_system_failure",
685
+ "stuck_or_timeout_failure",
686
+ ],
687
+ },
688
+ "script": [
689
+ "echo '{"id":"some-id","time":"01-01-2023 12:13:14"}' > www/__build_info.json",
690
+ "if [ -f ./.nvmrc ]; then source /root/.nvm/nvm.sh && nvm install <<< .nvmrc; fi",
691
+ "cd www",
692
+ ],
693
+ "services": undefined,
694
+ "stage": "build",
695
+ "variables": {
696
+ "APP_DIR": "www",
697
+ "ENV_SHORT": "stage",
698
+ "ENV_TYPE": "stage",
699
+ "GCLOUD_DEPLOY_credentialsKey": "$CL_stage_www_GCLOUD_DEPLOY_credentialsKey",
700
+ "HOST": "pan-test-app-stage-www-unknown-host.example.com",
701
+ "HOST_CANONICAL": "pan-test-app-stage-www-unknown-host.example.com",
702
+ "KUBERNETES_CPU_LIMIT": "2",
703
+ "KUBERNETES_CPU_REQUEST": "0.5",
704
+ "KUBERNETES_MEMORY_LIMIT": "4Gi",
705
+ "KUBERNETES_MEMORY_REQUEST": "2Gi",
706
+ "ROOT_URL": "https://pan-test-app-stage-www-unknown-host.example.com",
707
+ "_ALL_ENV_VAR_KEYS": "["ENV_SHORT","APP_DIR","ENV_TYPE","HOST","ROOT_URL","HOST_CANONICAL","GCLOUD_DEPLOY_credentialsKey"]",
708
+ },
709
+ },
710
+ "www 🔨 docker | prod ": {
711
+ "environment": undefined,
712
+ "image": "path/to/docker/docker-build:the-version",
713
+ "interruptible": true,
714
+ "needs": [
715
+ "www 🔨 app | prod ",
716
+ ],
717
+ "retry": {
718
+ "max": 2,
719
+ "when": [
720
+ "runner_system_failure",
721
+ "stuck_or_timeout_failure",
722
+ ],
723
+ },
724
+ "script": [
725
+ "ensureNginxDockerfile",
726
+ "docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY",
727
+ "docker version",
728
+ "docker build --network host --cache-from $DOCKER_CACHE_IMAGE --tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG -f $APP_DIR/Dockerfile . --build-arg BUILDKIT_INLINE_CACHE=1",
729
+ "docker push $DOCKER_IMAGE:$DOCKER_IMAGE_TAG",
730
+ "docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG $DOCKER_CACHE_IMAGE",
731
+ "docker push $DOCKER_CACHE_IMAGE",
732
+ ],
733
+ "services": [
734
+ {
735
+ "command": [
736
+ "--tls=false",
737
+ ],
738
+ "name": "docker:20-dind",
739
+ },
740
+ ],
741
+ "stage": "build",
742
+ "variables": {
743
+ "APP_DIR": "www",
744
+ "DOCKERFILE_ADDITIONS": undefined,
745
+ "DOCKERFILE_ADDITIONS_END": undefined,
746
+ "DOCKER_BUILDKIT": "1",
747
+ "DOCKER_CACHE_IMAGE": "$DOCKER_REGISTRY_IMAGE_PATH/caches/www",
748
+ "DOCKER_DIR": ".",
749
+ "DOCKER_DRIVER": "overlay2",
750
+ "DOCKER_HOST": "tcp://0.0.0.0:2375",
751
+ "DOCKER_IMAGE": "$DOCKER_REGISTRY_IMAGE_PATH/$DOCKER_IMAGE_NAME",
752
+ "DOCKER_IMAGE_NAME": "prod/www",
753
+ "DOCKER_IMAGE_TAG": "$CI_COMMIT_SHA",
754
+ "DOCKER_REGISTRY": "$CI_REGISTRY",
755
+ "DOCKER_REGISTRY_IMAGE_PATH": "$CI_REGISTRY_IMAGE",
756
+ "DOCKER_TLS_CERTDIR": "",
757
+ "KUBERNETES_CPU_LIMIT": "1",
758
+ "KUBERNETES_CPU_REQUEST": "0.5",
759
+ "KUBERNETES_MEMORY_LIMIT": "2Gi",
760
+ "KUBERNETES_MEMORY_REQUEST": "1Gi",
761
+ },
762
+ },
763
+ "www 🔨 docker | stage ": {
764
+ "environment": undefined,
765
+ "image": "path/to/docker/docker-build:the-version",
766
+ "interruptible": true,
767
+ "needs": [
768
+ "www 🔨 app | stage ",
769
+ ],
770
+ "retry": {
771
+ "max": 2,
772
+ "when": [
773
+ "runner_system_failure",
774
+ "stuck_or_timeout_failure",
775
+ ],
776
+ },
777
+ "script": [
778
+ "ensureNginxDockerfile",
779
+ "docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY",
780
+ "docker version",
781
+ "docker build --network host --cache-from $DOCKER_CACHE_IMAGE --tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG -f $APP_DIR/Dockerfile . --build-arg BUILDKIT_INLINE_CACHE=1",
782
+ "docker push $DOCKER_IMAGE:$DOCKER_IMAGE_TAG",
783
+ "docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG $DOCKER_CACHE_IMAGE",
784
+ "docker push $DOCKER_CACHE_IMAGE",
785
+ ],
786
+ "services": [
787
+ {
788
+ "command": [
789
+ "--tls=false",
790
+ ],
791
+ "name": "docker:20-dind",
792
+ },
793
+ ],
794
+ "stage": "build",
795
+ "variables": {
796
+ "APP_DIR": "www",
797
+ "DOCKERFILE_ADDITIONS": undefined,
798
+ "DOCKERFILE_ADDITIONS_END": undefined,
799
+ "DOCKER_BUILDKIT": "1",
800
+ "DOCKER_CACHE_IMAGE": "$DOCKER_REGISTRY_IMAGE_PATH/caches/www",
801
+ "DOCKER_DIR": ".",
802
+ "DOCKER_DRIVER": "overlay2",
803
+ "DOCKER_HOST": "tcp://0.0.0.0:2375",
804
+ "DOCKER_IMAGE": "$DOCKER_REGISTRY_IMAGE_PATH/$DOCKER_IMAGE_NAME",
805
+ "DOCKER_IMAGE_NAME": "stage/www",
806
+ "DOCKER_IMAGE_TAG": "$CI_COMMIT_SHA",
807
+ "DOCKER_REGISTRY": "$CI_REGISTRY",
808
+ "DOCKER_REGISTRY_IMAGE_PATH": "$CI_REGISTRY_IMAGE",
809
+ "DOCKER_TLS_CERTDIR": "",
810
+ "KUBERNETES_CPU_LIMIT": "1",
811
+ "KUBERNETES_CPU_REQUEST": "0.5",
812
+ "KUBERNETES_MEMORY_LIMIT": "2Gi",
813
+ "KUBERNETES_MEMORY_REQUEST": "1Gi",
814
+ },
815
+ },
816
+ "www 🚀 Deploy | prod ": {
817
+ "allow_failure": true,
818
+ "artifacts": {
819
+ "paths": [
820
+ "____envvars.yaml",
821
+ ],
822
+ },
823
+ "environment": {
824
+ "auto_stop_in": undefined,
825
+ "name": "prod/www",
826
+ "on_stop": "www 🛑 Stop ⚠️ | prod ",
827
+ "url": "https://pan-test-app-prod-www-unknown-host.example.com",
828
+ },
829
+ "image": "path/to/docker/gcloud:the-version",
830
+ "interruptible": true,
831
+ "needs": [
832
+ {
833
+ "artifacts": false,
834
+ "job": "www 🔨 app | prod ",
835
+ },
836
+ {
837
+ "artifacts": false,
838
+ "job": "www 🔨 docker | prod ",
839
+ },
840
+ ],
841
+ "retry": {
842
+ "max": 2,
843
+ "when": [
844
+ "runner_system_failure",
845
+ "stuck_or_timeout_failure",
846
+ ],
847
+ },
848
+ "rules": [
849
+ {
850
+ "when": "manual",
851
+ },
852
+ ],
853
+ "script": [
854
+ "echo $CL_prod_www_GCLOUD_DEPLOY_credentialsKey > ./____keyfile.json
855
+ ",
856
+ "gcloud auth activate-service-account --key-file="./____keyfile.json"",
857
+ "export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe asdf --format="value(projectNumber)")",
858
+ "echo "GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER"",
859
+ "docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY",
860
+ "gcloud auth configure-docker asia-east1-docker.pkg.dev",
861
+ "docker pull $DOCKER_IMAGE:$DOCKER_IMAGE_TAG",
862
+ "docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG",
863
+ "docker push asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG",
864
+ "echo "$ENV_VARS" > ____envvars.yaml",
865
+ "gcloud run deploy pan-test-app-prod-www --command="" --image=asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG --project=asdf --region=asia-east1 --labels=customer-name=pan,app-name=test-app,env-type=prod,env-name=prod,build-type=custom --env-vars-file=____envvars.yaml --min-instances=0 --max-instances=100 --cpu-throttling --allow-unauthenticated",
866
+ "docker image rm asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG",
867
+ ],
868
+ "services": [
869
+ {
870
+ "command": [
871
+ "--tls=false",
872
+ ],
873
+ "name": "docker:20-dind",
874
+ },
875
+ ],
876
+ "stage": "deploy prod",
877
+ "variables": {
878
+ "APP_DIR": "www",
879
+ "CLOUDSDK_CORE_DISABLE_PROMPTS": "1",
880
+ "DOCKER_BUILDKIT": "1",
881
+ "DOCKER_CACHE_IMAGE": "$DOCKER_REGISTRY_IMAGE_PATH/caches/www",
882
+ "DOCKER_DRIVER": "overlay2",
883
+ "DOCKER_HOST": "tcp://0.0.0.0:2375",
884
+ "DOCKER_IMAGE": "$DOCKER_REGISTRY_IMAGE_PATH/$DOCKER_IMAGE_NAME",
885
+ "DOCKER_IMAGE_NAME": "prod/www",
886
+ "DOCKER_IMAGE_TAG": "$CI_COMMIT_SHA",
887
+ "DOCKER_REGISTRY": "$CI_REGISTRY",
888
+ "DOCKER_REGISTRY_IMAGE_PATH": "$CI_REGISTRY_IMAGE",
889
+ "DOCKER_TLS_CERTDIR": "",
890
+ "ENV_SHORT": "prod",
891
+ "ENV_TYPE": "prod",
892
+ "ENV_VARS": "ENV_SHORT: 'prod'
893
+ APP_DIR: 'www'
894
+ ENV_TYPE: 'prod'
895
+ HOST: 'pan-test-app-prod-www-unknown-host.example.com'
896
+ ROOT_URL: 'https://pan-test-app-prod-www-unknown-host.example.com'
897
+ HOST_CANONICAL: 'pan-test-app-prod-www-unknown-host.example.com'
898
+ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","HOST","ROOT_URL","HOST_CANONICAL","GCLOUD_DEPLOY_credentialsKey"]'
899
+ ",
900
+ "GCLOUD_DEPLOY_credentialsKey": "$CL_prod_www_GCLOUD_DEPLOY_credentialsKey",
901
+ "HOST": "pan-test-app-prod-www-unknown-host.example.com",
902
+ "HOST_CANONICAL": "pan-test-app-prod-www-unknown-host.example.com",
903
+ "KUBERNETES_CPU_LIMIT": "1",
904
+ "KUBERNETES_CPU_REQUEST": "0.5",
905
+ "KUBERNETES_MEMORY_LIMIT": "500Mi",
906
+ "KUBERNETES_MEMORY_REQUEST": "200Mi",
907
+ "ROOT_URL": "https://pan-test-app-prod-www-unknown-host.example.com",
908
+ "_ALL_ENV_VAR_KEYS": "["ENV_SHORT","APP_DIR","ENV_TYPE","HOST","ROOT_URL","HOST_CANONICAL","GCLOUD_DEPLOY_credentialsKey"]",
909
+ },
910
+ },
911
+ "www 🚀 Deploy | stage ": {
912
+ "allow_failure": false,
913
+ "artifacts": {
914
+ "paths": [
915
+ "____envvars.yaml",
916
+ ],
917
+ },
918
+ "environment": {
919
+ "auto_stop_in": undefined,
920
+ "name": "stage/www",
921
+ "on_stop": "www 🛑 Stop ⚠️ | stage ",
922
+ "url": "https://pan-test-app-stage-www-unknown-host.example.com",
923
+ },
924
+ "image": "path/to/docker/gcloud:the-version",
925
+ "interruptible": true,
926
+ "needs": [
927
+ {
928
+ "artifacts": false,
929
+ "job": "www 🔨 app | stage ",
930
+ },
931
+ {
932
+ "artifacts": false,
933
+ "job": "www 🔨 docker | stage ",
934
+ },
935
+ ],
936
+ "retry": {
937
+ "max": 2,
938
+ "when": [
939
+ "runner_system_failure",
940
+ "stuck_or_timeout_failure",
941
+ ],
942
+ },
943
+ "rules": [
944
+ {
945
+ "when": "on_success",
946
+ },
947
+ ],
948
+ "script": [
949
+ "echo $CL_stage_www_GCLOUD_DEPLOY_credentialsKey > ./____keyfile.json
950
+ ",
951
+ "gcloud auth activate-service-account --key-file="./____keyfile.json"",
952
+ "export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe asdf --format="value(projectNumber)")",
953
+ "echo "GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER"",
954
+ "docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY",
955
+ "gcloud auth configure-docker asia-east1-docker.pkg.dev",
956
+ "docker pull $DOCKER_IMAGE:$DOCKER_IMAGE_TAG",
957
+ "docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG",
958
+ "docker push asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG",
959
+ "echo "$ENV_VARS" > ____envvars.yaml",
960
+ "gcloud run deploy pan-test-app-stage-www --command="" --image=asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG --project=asdf --region=asia-east1 --labels=customer-name=pan,app-name=test-app,env-type=stage,env-name=stage,build-type=custom --env-vars-file=____envvars.yaml --min-instances=0 --max-instances=100 --cpu-throttling --allow-unauthenticated",
961
+ "docker image rm asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG",
962
+ ],
963
+ "services": [
964
+ {
965
+ "command": [
966
+ "--tls=false",
967
+ ],
968
+ "name": "docker:20-dind",
969
+ },
970
+ ],
971
+ "stage": "deploy stage",
972
+ "variables": {
973
+ "APP_DIR": "www",
974
+ "CLOUDSDK_CORE_DISABLE_PROMPTS": "1",
975
+ "DOCKER_BUILDKIT": "1",
976
+ "DOCKER_CACHE_IMAGE": "$DOCKER_REGISTRY_IMAGE_PATH/caches/www",
977
+ "DOCKER_DRIVER": "overlay2",
978
+ "DOCKER_HOST": "tcp://0.0.0.0:2375",
979
+ "DOCKER_IMAGE": "$DOCKER_REGISTRY_IMAGE_PATH/$DOCKER_IMAGE_NAME",
980
+ "DOCKER_IMAGE_NAME": "stage/www",
981
+ "DOCKER_IMAGE_TAG": "$CI_COMMIT_SHA",
982
+ "DOCKER_REGISTRY": "$CI_REGISTRY",
983
+ "DOCKER_REGISTRY_IMAGE_PATH": "$CI_REGISTRY_IMAGE",
984
+ "DOCKER_TLS_CERTDIR": "",
985
+ "ENV_SHORT": "stage",
986
+ "ENV_TYPE": "stage",
987
+ "ENV_VARS": "ENV_SHORT: 'stage'
988
+ APP_DIR: 'www'
989
+ ENV_TYPE: 'stage'
990
+ HOST: 'pan-test-app-stage-www-unknown-host.example.com'
991
+ ROOT_URL: 'https://pan-test-app-stage-www-unknown-host.example.com'
992
+ HOST_CANONICAL: 'pan-test-app-stage-www-unknown-host.example.com'
993
+ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","HOST","ROOT_URL","HOST_CANONICAL","GCLOUD_DEPLOY_credentialsKey"]'
994
+ ",
995
+ "GCLOUD_DEPLOY_credentialsKey": "$CL_stage_www_GCLOUD_DEPLOY_credentialsKey",
996
+ "HOST": "pan-test-app-stage-www-unknown-host.example.com",
997
+ "HOST_CANONICAL": "pan-test-app-stage-www-unknown-host.example.com",
998
+ "KUBERNETES_CPU_LIMIT": "1",
999
+ "KUBERNETES_CPU_REQUEST": "0.5",
1000
+ "KUBERNETES_MEMORY_LIMIT": "500Mi",
1001
+ "KUBERNETES_MEMORY_REQUEST": "200Mi",
1002
+ "ROOT_URL": "https://pan-test-app-stage-www-unknown-host.example.com",
1003
+ "_ALL_ENV_VAR_KEYS": "["ENV_SHORT","APP_DIR","ENV_TYPE","HOST","ROOT_URL","HOST_CANONICAL","GCLOUD_DEPLOY_credentialsKey"]",
1004
+ },
1005
+ },
1006
+ "www 🛑 Stop ⚠️ | prod ": {
1007
+ "environment": {
1008
+ "action": "stop",
1009
+ "name": "prod/www",
1010
+ "url": "https://pan-test-app-prod-www-unknown-host.example.com",
1011
+ },
1012
+ "image": "path/to/docker/gcloud:the-version",
1013
+ "interruptible": true,
1014
+ "needs": [],
1015
+ "retry": {
1016
+ "max": 2,
1017
+ "when": [
1018
+ "runner_system_failure",
1019
+ "stuck_or_timeout_failure",
1020
+ ],
1021
+ },
1022
+ "rules": [
1023
+ {
1024
+ "allow_failure": true,
1025
+ "if": "$CI_COMMIT_BRANCH =~ /^[0-9]+\\.([0-9]+|x)\\.x$/",
1026
+ "when": "on_success",
1027
+ },
1028
+ {
1029
+ "allow_failure": true,
1030
+ "when": "manual",
1031
+ },
1032
+ ],
1033
+ "script": [
1034
+ "echo $CL_prod_www_GCLOUD_DEPLOY_credentialsKey > ./____keyfile.json
1035
+ ",
1036
+ "gcloud auth activate-service-account --key-file="./____keyfile.json"",
1037
+ "gcloud run services delete pan-test-app-prod-www --project=asdf --region=asia-east1",
1038
+ ],
1039
+ "stage": "stop prod",
1040
+ "variables": {
1041
+ "CLOUDSDK_CORE_DISABLE_PROMPTS": "1",
1042
+ "GIT_STRATEGY": "none",
1043
+ "KUBERNETES_CPU_LIMIT": "1",
1044
+ "KUBERNETES_CPU_REQUEST": "0.5",
1045
+ "KUBERNETES_MEMORY_LIMIT": "500Mi",
1046
+ "KUBERNETES_MEMORY_REQUEST": "200Mi",
1047
+ },
1048
+ },
1049
+ "www 🛑 Stop ⚠️ | stage ": {
1050
+ "environment": {
1051
+ "action": "stop",
1052
+ "name": "stage/www",
1053
+ "url": "https://pan-test-app-stage-www-unknown-host.example.com",
1054
+ },
1055
+ "image": "path/to/docker/gcloud:the-version",
1056
+ "interruptible": true,
1057
+ "needs": [],
1058
+ "retry": {
1059
+ "max": 2,
1060
+ "when": [
1061
+ "runner_system_failure",
1062
+ "stuck_or_timeout_failure",
1063
+ ],
1064
+ },
1065
+ "rules": [
1066
+ {
1067
+ "allow_failure": true,
1068
+ "if": "$CI_COMMIT_BRANCH =~ /^[0-9]+\\.([0-9]+|x)\\.x$/",
1069
+ "when": "on_success",
1070
+ },
1071
+ {
1072
+ "allow_failure": true,
1073
+ "when": "manual",
1074
+ },
1075
+ ],
1076
+ "script": [
1077
+ "echo $CL_stage_www_GCLOUD_DEPLOY_credentialsKey > ./____keyfile.json
1078
+ ",
1079
+ "gcloud auth activate-service-account --key-file="./____keyfile.json"",
1080
+ "gcloud run services delete pan-test-app-stage-www --project=asdf --region=asia-east1",
1081
+ ],
1082
+ "stage": "stop stage",
1083
+ "variables": {
1084
+ "CLOUDSDK_CORE_DISABLE_PROMPTS": "1",
1085
+ "GIT_STRATEGY": "none",
1086
+ "KUBERNETES_CPU_LIMIT": "1",
1087
+ "KUBERNETES_CPU_REQUEST": "0.5",
1088
+ "KUBERNETES_MEMORY_LIMIT": "500Mi",
1089
+ "KUBERNETES_MEMORY_REQUEST": "200Mi",
1090
+ },
1091
+ },
1092
+ },
1093
+ "stages": [
1094
+ "setup",
1095
+ "setup dev",
1096
+ "setup review",
1097
+ "setup stage",
1098
+ "setup prod",
1099
+ "setup local",
1100
+ "test",
1101
+ "test dev",
1102
+ "test review",
1103
+ "test stage",
1104
+ "test prod",
1105
+ "test local",
1106
+ "build",
1107
+ "build dev",
1108
+ "build review",
1109
+ "build stage",
1110
+ "build prod",
1111
+ "build local",
1112
+ "deploy",
1113
+ "deploy dev",
1114
+ "deploy review",
1115
+ "deploy stage",
1116
+ "deploy prod",
1117
+ "deploy local",
1118
+ "verify",
1119
+ "verify dev",
1120
+ "verify review",
1121
+ "verify stage",
1122
+ "verify prod",
1123
+ "verify local",
1124
+ "rollback",
1125
+ "rollback dev",
1126
+ "rollback review",
1127
+ "rollback stage",
1128
+ "rollback prod",
1129
+ "rollback local",
1130
+ "stop",
1131
+ "stop dev",
1132
+ "stop review",
1133
+ "stop stage",
1134
+ "stop prod",
1135
+ "stop local",
1136
+ ],
1137
+ "variables": {
1138
+ "FF_USE_FASTZIP": "true",
1139
+ },
1140
+ "workflow": {
1141
+ "rules": [
1142
+ {
1143
+ "if": "$CI_COMMIT_TAG",
1144
+ },
1145
+ {
1146
+ "if": "$CI_COMMIT_MESSAGE =~ /^chore\\(release\\).*/",
1147
+ "when": "never",
1148
+ },
1149
+ {
1150
+ "if": "$CI_COMMIT_BRANCH =~ /^[0-9]+.([0-9]+|x).x$/",
1151
+ },
1152
+ {
1153
+ "if": "$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH",
1154
+ },
1155
+ {
1156
+ "if": "$CI_MERGE_REQUEST_ID",
1157
+ },
1158
+ ],
1159
+ },
1160
+ },
1161
+ }
1162
+ `;