@catladder/pipeline 1.94.2 → 1.96.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.
@@ -0,0 +1,1358 @@
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 👮 lint": {
9
+ "cache": undefined,
10
+ "environment": undefined,
11
+ "image": "lint-image",
12
+ "interruptible": true,
13
+ "needs": [],
14
+ "retry": {
15
+ "max": 2,
16
+ "when": [
17
+ "runner_system_failure",
18
+ "stuck_or_timeout_failure",
19
+ ],
20
+ },
21
+ "script": [
22
+ "lint",
23
+ ],
24
+ "stage": "test",
25
+ "variables": {
26
+ "APP_PATH": "www",
27
+ "KUBERNETES_CPU_LIMIT": "2",
28
+ "KUBERNETES_CPU_REQUEST": "0.5",
29
+ "KUBERNETES_MEMORY_LIMIT": "4Gi",
30
+ "KUBERNETES_MEMORY_REQUEST": "2Gi",
31
+ },
32
+ },
33
+ "www 🔨 app | dev ": {
34
+ "artifacts": {
35
+ "paths": [
36
+ "www/__build_info.json",
37
+ "www/dist",
38
+ ],
39
+ "reports": {
40
+ "junit": undefined,
41
+ },
42
+ },
43
+ "cache": [],
44
+ "environment": undefined,
45
+ "image": "foo",
46
+ "interruptible": true,
47
+ "needs": [],
48
+ "retry": {
49
+ "max": 2,
50
+ "when": [
51
+ "runner_system_failure",
52
+ "stuck_or_timeout_failure",
53
+ ],
54
+ },
55
+ "script": [
56
+ "echo '{"id":"some-id","time":"01-01-2023 12:13:14"}' > www/__build_info.json",
57
+ "if [ -f ./.nvmrc ]; then source /root/.nvm/nvm.sh && nvm install <<< .nvmrc; fi",
58
+ "cd www",
59
+ ],
60
+ "services": undefined,
61
+ "stage": "build",
62
+ "variables": {
63
+ "APP_DIR": "www",
64
+ "ENV_SHORT": "dev",
65
+ "ENV_TYPE": "dev",
66
+ "GCLOUD_DEPLOY_credentialsKey": "$CL_dev_www_GCLOUD_DEPLOY_credentialsKey",
67
+ "GCLOUD_RUN_canonicalHostSuffix": "$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix",
68
+ "HOST": "pan-test-app-dev-www-unknown-host.example.com",
69
+ "HOST_CANONICAL": "pan-test-app-dev-www-unknown-host.example.com",
70
+ "KUBERNETES_CPU_LIMIT": "2",
71
+ "KUBERNETES_CPU_REQUEST": "0.5",
72
+ "KUBERNETES_MEMORY_LIMIT": "4Gi",
73
+ "KUBERNETES_MEMORY_REQUEST": "2Gi",
74
+ "ROOT_URL": "https://pan-test-app-dev-www-unknown-host.example.com",
75
+ "_ALL_ENV_VAR_KEYS": "["ENV_SHORT","APP_DIR","ENV_TYPE","HOST","ROOT_URL","HOST_CANONICAL","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]",
76
+ },
77
+ },
78
+ "www 🔨 docker | dev ": {
79
+ "environment": undefined,
80
+ "image": "path/to/docker/docker-build:the-version",
81
+ "interruptible": true,
82
+ "needs": [
83
+ "www 🔨 app | dev ",
84
+ ],
85
+ "retry": {
86
+ "max": 2,
87
+ "when": [
88
+ "runner_system_failure",
89
+ "stuck_or_timeout_failure",
90
+ ],
91
+ },
92
+ "script": [
93
+ "ensureNginxDockerfile",
94
+ "docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY",
95
+ "docker version",
96
+ "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",
97
+ "docker push $DOCKER_IMAGE:$DOCKER_IMAGE_TAG",
98
+ "docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG $DOCKER_CACHE_IMAGE",
99
+ "docker push $DOCKER_CACHE_IMAGE",
100
+ ],
101
+ "services": [
102
+ {
103
+ "command": [
104
+ "--tls=false",
105
+ ],
106
+ "name": "docker:20-dind",
107
+ },
108
+ ],
109
+ "stage": "build",
110
+ "variables": {
111
+ "APP_DIR": "www",
112
+ "DOCKERFILE_ADDITIONS": undefined,
113
+ "DOCKERFILE_ADDITIONS_END": undefined,
114
+ "DOCKER_BUILDKIT": "1",
115
+ "DOCKER_CACHE_IMAGE": "$DOCKER_REGISTRY_IMAGE_PATH/caches/www",
116
+ "DOCKER_DIR": ".",
117
+ "DOCKER_DRIVER": "overlay2",
118
+ "DOCKER_HOST": "tcp://0.0.0.0:2375",
119
+ "DOCKER_IMAGE": "$DOCKER_REGISTRY_IMAGE_PATH/$DOCKER_IMAGE_NAME",
120
+ "DOCKER_IMAGE_NAME": "dev/www",
121
+ "DOCKER_IMAGE_TAG": "$CI_COMMIT_SHA",
122
+ "DOCKER_REGISTRY": "$CI_REGISTRY",
123
+ "DOCKER_REGISTRY_IMAGE_PATH": "$CI_REGISTRY_IMAGE",
124
+ "DOCKER_TLS_CERTDIR": "",
125
+ "KUBERNETES_CPU_LIMIT": "1",
126
+ "KUBERNETES_CPU_REQUEST": "0.5",
127
+ "KUBERNETES_MEMORY_LIMIT": "2Gi",
128
+ "KUBERNETES_MEMORY_REQUEST": "1Gi",
129
+ },
130
+ },
131
+ "www 🚀 Deploy | dev ": {
132
+ "allow_failure": false,
133
+ "artifacts": {
134
+ "paths": [
135
+ "____envvars.yaml",
136
+ ],
137
+ },
138
+ "environment": {
139
+ "auto_stop_in": "4 weeks",
140
+ "name": "dev/www",
141
+ "on_stop": "www 🛑 Stop ⚠️ | dev ",
142
+ "url": "https://pan-test-app-dev-www-unknown-host.example.com",
143
+ },
144
+ "image": "path/to/docker/gcloud:the-version",
145
+ "interruptible": true,
146
+ "needs": [
147
+ {
148
+ "artifacts": false,
149
+ "job": "www 👮 lint",
150
+ },
151
+ {
152
+ "artifacts": false,
153
+ "job": "www 🔨 app | dev ",
154
+ },
155
+ {
156
+ "artifacts": false,
157
+ "job": "www 🔨 docker | dev ",
158
+ },
159
+ {
160
+ "artifacts": false,
161
+ "job": "www 🧪 test",
162
+ },
163
+ {
164
+ "artifacts": false,
165
+ "job": "www 🛡 audit",
166
+ },
167
+ ],
168
+ "retry": {
169
+ "max": 2,
170
+ "when": [
171
+ "runner_system_failure",
172
+ "stuck_or_timeout_failure",
173
+ ],
174
+ },
175
+ "rules": [
176
+ {
177
+ "when": "on_success",
178
+ },
179
+ ],
180
+ "script": [
181
+ "echo $CL_dev_www_GCLOUD_DEPLOY_credentialsKey > ./____keyfile.json
182
+ ",
183
+ "gcloud auth activate-service-account --key-file="./____keyfile.json"",
184
+ "export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe asdf --format="value(projectNumber)")",
185
+ "echo "GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER"",
186
+ "docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY",
187
+ "gcloud auth configure-docker asia-east1-docker.pkg.dev",
188
+ "docker pull $DOCKER_IMAGE:$DOCKER_IMAGE_TAG",
189
+ "docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG",
190
+ "docker push asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG",
191
+ "echo "$ENV_VARS" > ____envvars.yaml",
192
+ "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",
193
+ "docker image rm asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG",
194
+ ],
195
+ "services": [
196
+ {
197
+ "command": [
198
+ "--tls=false",
199
+ ],
200
+ "name": "docker:20-dind",
201
+ },
202
+ ],
203
+ "stage": "deploy dev",
204
+ "variables": {
205
+ "APP_DIR": "www",
206
+ "CLOUDSDK_CORE_DISABLE_PROMPTS": "1",
207
+ "DOCKER_BUILDKIT": "1",
208
+ "DOCKER_CACHE_IMAGE": "$DOCKER_REGISTRY_IMAGE_PATH/caches/www",
209
+ "DOCKER_DRIVER": "overlay2",
210
+ "DOCKER_HOST": "tcp://0.0.0.0:2375",
211
+ "DOCKER_IMAGE": "$DOCKER_REGISTRY_IMAGE_PATH/$DOCKER_IMAGE_NAME",
212
+ "DOCKER_IMAGE_NAME": "dev/www",
213
+ "DOCKER_IMAGE_TAG": "$CI_COMMIT_SHA",
214
+ "DOCKER_REGISTRY": "$CI_REGISTRY",
215
+ "DOCKER_REGISTRY_IMAGE_PATH": "$CI_REGISTRY_IMAGE",
216
+ "DOCKER_TLS_CERTDIR": "",
217
+ "ENV_SHORT": "dev",
218
+ "ENV_TYPE": "dev",
219
+ "ENV_VARS": "ENV_SHORT: 'dev'
220
+ APP_DIR: 'www'
221
+ ENV_TYPE: 'dev'
222
+ HOST: 'pan-test-app-dev-www-unknown-host.example.com'
223
+ ROOT_URL: 'https://pan-test-app-dev-www-unknown-host.example.com'
224
+ HOST_CANONICAL: 'pan-test-app-dev-www-unknown-host.example.com'
225
+ GCLOUD_RUN_canonicalHostSuffix: '$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix'
226
+ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","HOST","ROOT_URL","HOST_CANONICAL","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]'
227
+ ",
228
+ "GCLOUD_DEPLOY_credentialsKey": "$CL_dev_www_GCLOUD_DEPLOY_credentialsKey",
229
+ "GCLOUD_RUN_canonicalHostSuffix": "$CL_dev_www_GCLOUD_RUN_canonicalHostSuffix",
230
+ "HOST": "pan-test-app-dev-www-unknown-host.example.com",
231
+ "HOST_CANONICAL": "pan-test-app-dev-www-unknown-host.example.com",
232
+ "KUBERNETES_CPU_LIMIT": "1",
233
+ "KUBERNETES_CPU_REQUEST": "0.5",
234
+ "KUBERNETES_MEMORY_LIMIT": "500Mi",
235
+ "KUBERNETES_MEMORY_REQUEST": "200Mi",
236
+ "ROOT_URL": "https://pan-test-app-dev-www-unknown-host.example.com",
237
+ "_ALL_ENV_VAR_KEYS": "["ENV_SHORT","APP_DIR","ENV_TYPE","HOST","ROOT_URL","HOST_CANONICAL","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]",
238
+ },
239
+ },
240
+ "www 🛑 Stop ⚠️ | dev ": {
241
+ "environment": {
242
+ "action": "stop",
243
+ "name": "dev/www",
244
+ "url": "https://pan-test-app-dev-www-unknown-host.example.com",
245
+ },
246
+ "image": "path/to/docker/gcloud:the-version",
247
+ "interruptible": true,
248
+ "needs": [],
249
+ "retry": {
250
+ "max": 2,
251
+ "when": [
252
+ "runner_system_failure",
253
+ "stuck_or_timeout_failure",
254
+ ],
255
+ },
256
+ "rules": [
257
+ {
258
+ "allow_failure": true,
259
+ "if": "$CI_COMMIT_BRANCH =~ /^[0-9]+\\.([0-9]+|x)\\.x$/",
260
+ "when": "on_success",
261
+ },
262
+ {
263
+ "allow_failure": true,
264
+ "when": "manual",
265
+ },
266
+ ],
267
+ "script": [
268
+ "set +e",
269
+ "echo $CL_dev_www_GCLOUD_DEPLOY_credentialsKey > ./____keyfile.json
270
+ ",
271
+ "gcloud auth activate-service-account --key-file="./____keyfile.json"",
272
+ "gcloud run services delete pan-test-app-dev-www --project=asdf --region=asia-east1",
273
+ "set -e",
274
+ ],
275
+ "stage": "stop dev",
276
+ "variables": {
277
+ "CLOUDSDK_CORE_DISABLE_PROMPTS": "1",
278
+ "GIT_STRATEGY": "none",
279
+ "KUBERNETES_CPU_LIMIT": "1",
280
+ "KUBERNETES_CPU_REQUEST": "0.5",
281
+ "KUBERNETES_MEMORY_LIMIT": "500Mi",
282
+ "KUBERNETES_MEMORY_REQUEST": "200Mi",
283
+ },
284
+ },
285
+ "www 🛡 audit": {
286
+ "allow_failure": true,
287
+ "cache": undefined,
288
+ "environment": undefined,
289
+ "image": "audit-image",
290
+ "interruptible": true,
291
+ "needs": [],
292
+ "retry": {
293
+ "max": 2,
294
+ "when": [
295
+ "runner_system_failure",
296
+ "stuck_or_timeout_failure",
297
+ ],
298
+ },
299
+ "script": [
300
+ "audit",
301
+ ],
302
+ "stage": "test",
303
+ "variables": {
304
+ "APP_PATH": "www",
305
+ "KUBERNETES_CPU_LIMIT": "2",
306
+ "KUBERNETES_CPU_REQUEST": "0.5",
307
+ "KUBERNETES_MEMORY_LIMIT": "4Gi",
308
+ "KUBERNETES_MEMORY_REQUEST": "2Gi",
309
+ },
310
+ },
311
+ "www 🧪 test": {
312
+ "cache": undefined,
313
+ "environment": undefined,
314
+ "image": "test-image",
315
+ "interruptible": true,
316
+ "needs": [],
317
+ "retry": {
318
+ "max": 2,
319
+ "when": [
320
+ "runner_system_failure",
321
+ "stuck_or_timeout_failure",
322
+ ],
323
+ },
324
+ "script": [
325
+ "test",
326
+ ],
327
+ "stage": "test",
328
+ "variables": {
329
+ "APP_PATH": "www",
330
+ "KUBERNETES_CPU_LIMIT": "2",
331
+ "KUBERNETES_CPU_REQUEST": "0.5",
332
+ "KUBERNETES_MEMORY_LIMIT": "4Gi",
333
+ "KUBERNETES_MEMORY_REQUEST": "2Gi",
334
+ },
335
+ },
336
+ },
337
+ "stages": [
338
+ "setup",
339
+ "setup dev",
340
+ "setup review",
341
+ "setup stage",
342
+ "setup prod",
343
+ "setup local",
344
+ "test",
345
+ "test dev",
346
+ "test review",
347
+ "test stage",
348
+ "test prod",
349
+ "test local",
350
+ "build",
351
+ "build dev",
352
+ "build review",
353
+ "build stage",
354
+ "build prod",
355
+ "build local",
356
+ "deploy",
357
+ "deploy dev",
358
+ "deploy review",
359
+ "deploy stage",
360
+ "deploy prod",
361
+ "deploy local",
362
+ "verify",
363
+ "verify dev",
364
+ "verify review",
365
+ "verify stage",
366
+ "verify prod",
367
+ "verify local",
368
+ "rollback",
369
+ "rollback dev",
370
+ "rollback review",
371
+ "rollback stage",
372
+ "rollback prod",
373
+ "rollback local",
374
+ "stop",
375
+ "stop dev",
376
+ "stop review",
377
+ "stop stage",
378
+ "stop prod",
379
+ "stop local",
380
+ ],
381
+ "variables": {
382
+ "FF_USE_FASTZIP": "true",
383
+ },
384
+ "workflow": {
385
+ "rules": [
386
+ {
387
+ "if": "$CI_COMMIT_TAG",
388
+ },
389
+ {
390
+ "if": "$CI_COMMIT_MESSAGE =~ /^chore\\(release\\).*/",
391
+ "when": "never",
392
+ },
393
+ {
394
+ "if": "$CI_COMMIT_BRANCH =~ /^[0-9]+.([0-9]+|x).x$/",
395
+ },
396
+ {
397
+ "if": "$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH",
398
+ },
399
+ {
400
+ "if": "$CI_MERGE_REQUEST_ID",
401
+ },
402
+ ],
403
+ },
404
+ },
405
+ "mr": {
406
+ "image": "path/to/docker/jobs-default:the-version",
407
+ "jobs": {
408
+ "www 👮 lint": {
409
+ "cache": undefined,
410
+ "environment": undefined,
411
+ "image": "lint-image",
412
+ "interruptible": true,
413
+ "needs": [],
414
+ "retry": {
415
+ "max": 2,
416
+ "when": [
417
+ "runner_system_failure",
418
+ "stuck_or_timeout_failure",
419
+ ],
420
+ },
421
+ "script": [
422
+ "lint",
423
+ ],
424
+ "stage": "test",
425
+ "variables": {
426
+ "APP_PATH": "www",
427
+ "KUBERNETES_CPU_LIMIT": "2",
428
+ "KUBERNETES_CPU_REQUEST": "0.5",
429
+ "KUBERNETES_MEMORY_LIMIT": "4Gi",
430
+ "KUBERNETES_MEMORY_REQUEST": "2Gi",
431
+ },
432
+ },
433
+ "www 🔨 app | review ": {
434
+ "artifacts": {
435
+ "paths": [
436
+ "www/__build_info.json",
437
+ "www/dist",
438
+ ],
439
+ "reports": {
440
+ "junit": undefined,
441
+ },
442
+ },
443
+ "cache": [],
444
+ "environment": undefined,
445
+ "image": "foo",
446
+ "interruptible": true,
447
+ "needs": [],
448
+ "retry": {
449
+ "max": 2,
450
+ "when": [
451
+ "runner_system_failure",
452
+ "stuck_or_timeout_failure",
453
+ ],
454
+ },
455
+ "script": [
456
+ "echo '{"id":"some-id","time":"01-01-2023 12:13:14"}' > www/__build_info.json",
457
+ "if [ -f ./.nvmrc ]; then source /root/.nvm/nvm.sh && nvm install <<< .nvmrc; fi",
458
+ "cd www",
459
+ ],
460
+ "services": undefined,
461
+ "stage": "build",
462
+ "variables": {
463
+ "APP_DIR": "www",
464
+ "ENV_SHORT": "review",
465
+ "ENV_TYPE": "review",
466
+ "GCLOUD_DEPLOY_credentialsKey": "$CL_review_www_GCLOUD_DEPLOY_credentialsKey",
467
+ "GCLOUD_RUN_canonicalHostSuffix": "$CL_review_www_GCLOUD_RUN_canonicalHostSuffix",
468
+ "HOST": "pan-test-app-review-mr1234-www-unknown-host.example.com",
469
+ "HOST_CANONICAL": "pan-test-app-review-mr1234-www-unknown-host.example.com",
470
+ "KUBERNETES_CPU_LIMIT": "2",
471
+ "KUBERNETES_CPU_REQUEST": "0.5",
472
+ "KUBERNETES_MEMORY_LIMIT": "4Gi",
473
+ "KUBERNETES_MEMORY_REQUEST": "2Gi",
474
+ "ROOT_URL": "https://pan-test-app-review-mr1234-www-unknown-host.example.com",
475
+ "_ALL_ENV_VAR_KEYS": "["ENV_SHORT","APP_DIR","ENV_TYPE","HOST","ROOT_URL","HOST_CANONICAL","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]",
476
+ },
477
+ },
478
+ "www 🔨 docker | review ": {
479
+ "environment": undefined,
480
+ "image": "path/to/docker/docker-build:the-version",
481
+ "interruptible": true,
482
+ "needs": [
483
+ "www 🔨 app | review ",
484
+ ],
485
+ "retry": {
486
+ "max": 2,
487
+ "when": [
488
+ "runner_system_failure",
489
+ "stuck_or_timeout_failure",
490
+ ],
491
+ },
492
+ "script": [
493
+ "ensureNginxDockerfile",
494
+ "docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY",
495
+ "docker version",
496
+ "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",
497
+ "docker push $DOCKER_IMAGE:$DOCKER_IMAGE_TAG",
498
+ "docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG $DOCKER_CACHE_IMAGE",
499
+ "docker push $DOCKER_CACHE_IMAGE",
500
+ ],
501
+ "services": [
502
+ {
503
+ "command": [
504
+ "--tls=false",
505
+ ],
506
+ "name": "docker:20-dind",
507
+ },
508
+ ],
509
+ "stage": "build",
510
+ "variables": {
511
+ "APP_DIR": "www",
512
+ "DOCKERFILE_ADDITIONS": undefined,
513
+ "DOCKERFILE_ADDITIONS_END": undefined,
514
+ "DOCKER_BUILDKIT": "1",
515
+ "DOCKER_CACHE_IMAGE": "$DOCKER_REGISTRY_IMAGE_PATH/caches/www",
516
+ "DOCKER_DIR": ".",
517
+ "DOCKER_DRIVER": "overlay2",
518
+ "DOCKER_HOST": "tcp://0.0.0.0:2375",
519
+ "DOCKER_IMAGE": "$DOCKER_REGISTRY_IMAGE_PATH/$DOCKER_IMAGE_NAME",
520
+ "DOCKER_IMAGE_NAME": "review/www",
521
+ "DOCKER_IMAGE_TAG": "$CI_COMMIT_SHA",
522
+ "DOCKER_REGISTRY": "$CI_REGISTRY",
523
+ "DOCKER_REGISTRY_IMAGE_PATH": "$CI_REGISTRY_IMAGE",
524
+ "DOCKER_TLS_CERTDIR": "",
525
+ "KUBERNETES_CPU_LIMIT": "1",
526
+ "KUBERNETES_CPU_REQUEST": "0.5",
527
+ "KUBERNETES_MEMORY_LIMIT": "2Gi",
528
+ "KUBERNETES_MEMORY_REQUEST": "1Gi",
529
+ },
530
+ },
531
+ "www 🚀 Deploy | review ": {
532
+ "allow_failure": false,
533
+ "artifacts": {
534
+ "paths": [
535
+ "____envvars.yaml",
536
+ ],
537
+ },
538
+ "environment": {
539
+ "auto_stop_in": "2 week",
540
+ "name": "review/some-commit/www",
541
+ "on_stop": "www 🛑 Stop ⚠️ | review ",
542
+ "url": "https://pan-test-app-review-mr1234-www-unknown-host.example.com",
543
+ },
544
+ "image": "path/to/docker/gcloud:the-version",
545
+ "interruptible": true,
546
+ "needs": [
547
+ {
548
+ "artifacts": false,
549
+ "job": "www 👮 lint",
550
+ },
551
+ {
552
+ "artifacts": false,
553
+ "job": "www 🔨 app | review ",
554
+ },
555
+ {
556
+ "artifacts": false,
557
+ "job": "www 🔨 docker | review ",
558
+ },
559
+ {
560
+ "artifacts": false,
561
+ "job": "www 🧪 test",
562
+ },
563
+ {
564
+ "artifacts": false,
565
+ "job": "www 🛡 audit",
566
+ },
567
+ ],
568
+ "retry": {
569
+ "max": 2,
570
+ "when": [
571
+ "runner_system_failure",
572
+ "stuck_or_timeout_failure",
573
+ ],
574
+ },
575
+ "rules": [
576
+ {
577
+ "when": "on_success",
578
+ },
579
+ ],
580
+ "script": [
581
+ "echo $CL_review_www_GCLOUD_DEPLOY_credentialsKey > ./____keyfile.json
582
+ ",
583
+ "gcloud auth activate-service-account --key-file="./____keyfile.json"",
584
+ "export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe asdf --format="value(projectNumber)")",
585
+ "echo "GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER"",
586
+ "docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY",
587
+ "gcloud auth configure-docker asia-east1-docker.pkg.dev",
588
+ "docker pull $DOCKER_IMAGE:$DOCKER_IMAGE_TAG",
589
+ "docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG",
590
+ "docker push asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG",
591
+ "echo "$ENV_VARS" > ____envvars.yaml",
592
+ "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",
593
+ "docker image rm asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG",
594
+ ],
595
+ "services": [
596
+ {
597
+ "command": [
598
+ "--tls=false",
599
+ ],
600
+ "name": "docker:20-dind",
601
+ },
602
+ ],
603
+ "stage": "deploy review",
604
+ "variables": {
605
+ "APP_DIR": "www",
606
+ "CLOUDSDK_CORE_DISABLE_PROMPTS": "1",
607
+ "DOCKER_BUILDKIT": "1",
608
+ "DOCKER_CACHE_IMAGE": "$DOCKER_REGISTRY_IMAGE_PATH/caches/www",
609
+ "DOCKER_DRIVER": "overlay2",
610
+ "DOCKER_HOST": "tcp://0.0.0.0:2375",
611
+ "DOCKER_IMAGE": "$DOCKER_REGISTRY_IMAGE_PATH/$DOCKER_IMAGE_NAME",
612
+ "DOCKER_IMAGE_NAME": "review/www",
613
+ "DOCKER_IMAGE_TAG": "$CI_COMMIT_SHA",
614
+ "DOCKER_REGISTRY": "$CI_REGISTRY",
615
+ "DOCKER_REGISTRY_IMAGE_PATH": "$CI_REGISTRY_IMAGE",
616
+ "DOCKER_TLS_CERTDIR": "",
617
+ "ENV_SHORT": "review",
618
+ "ENV_TYPE": "review",
619
+ "ENV_VARS": "ENV_SHORT: 'review'
620
+ APP_DIR: 'www'
621
+ ENV_TYPE: 'review'
622
+ HOST: 'pan-test-app-review-mr1234-www-unknown-host.example.com'
623
+ ROOT_URL: 'https://pan-test-app-review-mr1234-www-unknown-host.example.com'
624
+ HOST_CANONICAL: 'pan-test-app-review-mr1234-www-unknown-host.example.com'
625
+ GCLOUD_RUN_canonicalHostSuffix: '$CL_review_www_GCLOUD_RUN_canonicalHostSuffix'
626
+ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","HOST","ROOT_URL","HOST_CANONICAL","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]'
627
+ ",
628
+ "GCLOUD_DEPLOY_credentialsKey": "$CL_review_www_GCLOUD_DEPLOY_credentialsKey",
629
+ "GCLOUD_RUN_canonicalHostSuffix": "$CL_review_www_GCLOUD_RUN_canonicalHostSuffix",
630
+ "HOST": "pan-test-app-review-mr1234-www-unknown-host.example.com",
631
+ "HOST_CANONICAL": "pan-test-app-review-mr1234-www-unknown-host.example.com",
632
+ "KUBERNETES_CPU_LIMIT": "1",
633
+ "KUBERNETES_CPU_REQUEST": "0.5",
634
+ "KUBERNETES_MEMORY_LIMIT": "500Mi",
635
+ "KUBERNETES_MEMORY_REQUEST": "200Mi",
636
+ "ROOT_URL": "https://pan-test-app-review-mr1234-www-unknown-host.example.com",
637
+ "_ALL_ENV_VAR_KEYS": "["ENV_SHORT","APP_DIR","ENV_TYPE","HOST","ROOT_URL","HOST_CANONICAL","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]",
638
+ },
639
+ },
640
+ "www 🛑 Stop ⚠️ | review ": {
641
+ "environment": {
642
+ "action": "stop",
643
+ "name": "review/some-commit/www",
644
+ "url": "https://pan-test-app-review-mr1234-www-unknown-host.example.com",
645
+ },
646
+ "image": "path/to/docker/gcloud:the-version",
647
+ "interruptible": true,
648
+ "needs": [],
649
+ "retry": {
650
+ "max": 2,
651
+ "when": [
652
+ "runner_system_failure",
653
+ "stuck_or_timeout_failure",
654
+ ],
655
+ },
656
+ "rules": [
657
+ {
658
+ "allow_failure": true,
659
+ "if": "$CI_COMMIT_BRANCH =~ /^[0-9]+\\.([0-9]+|x)\\.x$/",
660
+ "when": "on_success",
661
+ },
662
+ {
663
+ "allow_failure": true,
664
+ "when": "manual",
665
+ },
666
+ ],
667
+ "script": [
668
+ "set +e",
669
+ "echo $CL_review_www_GCLOUD_DEPLOY_credentialsKey > ./____keyfile.json
670
+ ",
671
+ "gcloud auth activate-service-account --key-file="./____keyfile.json"",
672
+ "gcloud run services delete pan-test-app-review-mr1234-www --project=asdf --region=asia-east1",
673
+ "set -e",
674
+ ],
675
+ "stage": "stop review",
676
+ "variables": {
677
+ "CLOUDSDK_CORE_DISABLE_PROMPTS": "1",
678
+ "GIT_STRATEGY": "none",
679
+ "KUBERNETES_CPU_LIMIT": "1",
680
+ "KUBERNETES_CPU_REQUEST": "0.5",
681
+ "KUBERNETES_MEMORY_LIMIT": "500Mi",
682
+ "KUBERNETES_MEMORY_REQUEST": "200Mi",
683
+ },
684
+ },
685
+ "www 🛡 audit": {
686
+ "allow_failure": true,
687
+ "cache": undefined,
688
+ "environment": undefined,
689
+ "image": "audit-image",
690
+ "interruptible": true,
691
+ "needs": [],
692
+ "retry": {
693
+ "max": 2,
694
+ "when": [
695
+ "runner_system_failure",
696
+ "stuck_or_timeout_failure",
697
+ ],
698
+ },
699
+ "script": [
700
+ "audit",
701
+ ],
702
+ "stage": "test",
703
+ "variables": {
704
+ "APP_PATH": "www",
705
+ "KUBERNETES_CPU_LIMIT": "2",
706
+ "KUBERNETES_CPU_REQUEST": "0.5",
707
+ "KUBERNETES_MEMORY_LIMIT": "4Gi",
708
+ "KUBERNETES_MEMORY_REQUEST": "2Gi",
709
+ },
710
+ },
711
+ "www 🧪 test": {
712
+ "cache": undefined,
713
+ "environment": undefined,
714
+ "image": "test-image",
715
+ "interruptible": true,
716
+ "needs": [],
717
+ "retry": {
718
+ "max": 2,
719
+ "when": [
720
+ "runner_system_failure",
721
+ "stuck_or_timeout_failure",
722
+ ],
723
+ },
724
+ "script": [
725
+ "test",
726
+ ],
727
+ "stage": "test",
728
+ "variables": {
729
+ "APP_PATH": "www",
730
+ "KUBERNETES_CPU_LIMIT": "2",
731
+ "KUBERNETES_CPU_REQUEST": "0.5",
732
+ "KUBERNETES_MEMORY_LIMIT": "4Gi",
733
+ "KUBERNETES_MEMORY_REQUEST": "2Gi",
734
+ },
735
+ },
736
+ },
737
+ "stages": [
738
+ "setup",
739
+ "setup dev",
740
+ "setup review",
741
+ "setup stage",
742
+ "setup prod",
743
+ "setup local",
744
+ "test",
745
+ "test dev",
746
+ "test review",
747
+ "test stage",
748
+ "test prod",
749
+ "test local",
750
+ "build",
751
+ "build dev",
752
+ "build review",
753
+ "build stage",
754
+ "build prod",
755
+ "build local",
756
+ "deploy",
757
+ "deploy dev",
758
+ "deploy review",
759
+ "deploy stage",
760
+ "deploy prod",
761
+ "deploy local",
762
+ "verify",
763
+ "verify dev",
764
+ "verify review",
765
+ "verify stage",
766
+ "verify prod",
767
+ "verify local",
768
+ "rollback",
769
+ "rollback dev",
770
+ "rollback review",
771
+ "rollback stage",
772
+ "rollback prod",
773
+ "rollback local",
774
+ "stop",
775
+ "stop dev",
776
+ "stop review",
777
+ "stop stage",
778
+ "stop prod",
779
+ "stop local",
780
+ ],
781
+ "variables": {
782
+ "FF_USE_FASTZIP": "true",
783
+ },
784
+ "workflow": {
785
+ "rules": [
786
+ {
787
+ "if": "$CI_COMMIT_TAG",
788
+ },
789
+ {
790
+ "if": "$CI_COMMIT_MESSAGE =~ /^chore\\(release\\).*/",
791
+ "when": "never",
792
+ },
793
+ {
794
+ "if": "$CI_COMMIT_BRANCH =~ /^[0-9]+.([0-9]+|x).x$/",
795
+ },
796
+ {
797
+ "if": "$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH",
798
+ },
799
+ {
800
+ "if": "$CI_MERGE_REQUEST_ID",
801
+ },
802
+ ],
803
+ },
804
+ },
805
+ "taggedRelease": {
806
+ "image": "path/to/docker/jobs-default:the-version",
807
+ "jobs": {
808
+ "www 🔨 app | prod ": {
809
+ "artifacts": {
810
+ "paths": [
811
+ "www/__build_info.json",
812
+ "www/dist",
813
+ ],
814
+ "reports": {
815
+ "junit": undefined,
816
+ },
817
+ },
818
+ "cache": [],
819
+ "environment": undefined,
820
+ "image": "foo",
821
+ "interruptible": true,
822
+ "needs": [],
823
+ "retry": {
824
+ "max": 2,
825
+ "when": [
826
+ "runner_system_failure",
827
+ "stuck_or_timeout_failure",
828
+ ],
829
+ },
830
+ "script": [
831
+ "echo '{"id":"some-id","time":"01-01-2023 12:13:14"}' > www/__build_info.json",
832
+ "if [ -f ./.nvmrc ]; then source /root/.nvm/nvm.sh && nvm install <<< .nvmrc; fi",
833
+ "cd www",
834
+ ],
835
+ "services": undefined,
836
+ "stage": "build",
837
+ "variables": {
838
+ "APP_DIR": "www",
839
+ "ENV_SHORT": "prod",
840
+ "ENV_TYPE": "prod",
841
+ "GCLOUD_DEPLOY_credentialsKey": "$CL_prod_www_GCLOUD_DEPLOY_credentialsKey",
842
+ "GCLOUD_RUN_canonicalHostSuffix": "$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix",
843
+ "HOST": "pan-test-app-prod-www-unknown-host.example.com",
844
+ "HOST_CANONICAL": "pan-test-app-prod-www-unknown-host.example.com",
845
+ "KUBERNETES_CPU_LIMIT": "2",
846
+ "KUBERNETES_CPU_REQUEST": "0.5",
847
+ "KUBERNETES_MEMORY_LIMIT": "4Gi",
848
+ "KUBERNETES_MEMORY_REQUEST": "2Gi",
849
+ "ROOT_URL": "https://pan-test-app-prod-www-unknown-host.example.com",
850
+ "_ALL_ENV_VAR_KEYS": "["ENV_SHORT","APP_DIR","ENV_TYPE","HOST","ROOT_URL","HOST_CANONICAL","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]",
851
+ },
852
+ },
853
+ "www 🔨 app | stage ": {
854
+ "artifacts": {
855
+ "paths": [
856
+ "www/__build_info.json",
857
+ "www/dist",
858
+ ],
859
+ "reports": {
860
+ "junit": undefined,
861
+ },
862
+ },
863
+ "cache": [],
864
+ "environment": undefined,
865
+ "image": "foo",
866
+ "interruptible": true,
867
+ "needs": [],
868
+ "retry": {
869
+ "max": 2,
870
+ "when": [
871
+ "runner_system_failure",
872
+ "stuck_or_timeout_failure",
873
+ ],
874
+ },
875
+ "script": [
876
+ "echo '{"id":"some-id","time":"01-01-2023 12:13:14"}' > www/__build_info.json",
877
+ "if [ -f ./.nvmrc ]; then source /root/.nvm/nvm.sh && nvm install <<< .nvmrc; fi",
878
+ "cd www",
879
+ ],
880
+ "services": undefined,
881
+ "stage": "build",
882
+ "variables": {
883
+ "APP_DIR": "www",
884
+ "ENV_SHORT": "stage",
885
+ "ENV_TYPE": "stage",
886
+ "GCLOUD_DEPLOY_credentialsKey": "$CL_stage_www_GCLOUD_DEPLOY_credentialsKey",
887
+ "GCLOUD_RUN_canonicalHostSuffix": "$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix",
888
+ "HOST": "pan-test-app-stage-www-unknown-host.example.com",
889
+ "HOST_CANONICAL": "pan-test-app-stage-www-unknown-host.example.com",
890
+ "KUBERNETES_CPU_LIMIT": "2",
891
+ "KUBERNETES_CPU_REQUEST": "0.5",
892
+ "KUBERNETES_MEMORY_LIMIT": "4Gi",
893
+ "KUBERNETES_MEMORY_REQUEST": "2Gi",
894
+ "ROOT_URL": "https://pan-test-app-stage-www-unknown-host.example.com",
895
+ "_ALL_ENV_VAR_KEYS": "["ENV_SHORT","APP_DIR","ENV_TYPE","HOST","ROOT_URL","HOST_CANONICAL","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]",
896
+ },
897
+ },
898
+ "www 🔨 docker | prod ": {
899
+ "environment": undefined,
900
+ "image": "path/to/docker/docker-build:the-version",
901
+ "interruptible": true,
902
+ "needs": [
903
+ "www 🔨 app | prod ",
904
+ ],
905
+ "retry": {
906
+ "max": 2,
907
+ "when": [
908
+ "runner_system_failure",
909
+ "stuck_or_timeout_failure",
910
+ ],
911
+ },
912
+ "script": [
913
+ "ensureNginxDockerfile",
914
+ "docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY",
915
+ "docker version",
916
+ "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",
917
+ "docker push $DOCKER_IMAGE:$DOCKER_IMAGE_TAG",
918
+ "docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG $DOCKER_CACHE_IMAGE",
919
+ "docker push $DOCKER_CACHE_IMAGE",
920
+ ],
921
+ "services": [
922
+ {
923
+ "command": [
924
+ "--tls=false",
925
+ ],
926
+ "name": "docker:20-dind",
927
+ },
928
+ ],
929
+ "stage": "build",
930
+ "variables": {
931
+ "APP_DIR": "www",
932
+ "DOCKERFILE_ADDITIONS": undefined,
933
+ "DOCKERFILE_ADDITIONS_END": undefined,
934
+ "DOCKER_BUILDKIT": "1",
935
+ "DOCKER_CACHE_IMAGE": "$DOCKER_REGISTRY_IMAGE_PATH/caches/www",
936
+ "DOCKER_DIR": ".",
937
+ "DOCKER_DRIVER": "overlay2",
938
+ "DOCKER_HOST": "tcp://0.0.0.0:2375",
939
+ "DOCKER_IMAGE": "$DOCKER_REGISTRY_IMAGE_PATH/$DOCKER_IMAGE_NAME",
940
+ "DOCKER_IMAGE_NAME": "prod/www",
941
+ "DOCKER_IMAGE_TAG": "$CI_COMMIT_SHA",
942
+ "DOCKER_REGISTRY": "$CI_REGISTRY",
943
+ "DOCKER_REGISTRY_IMAGE_PATH": "$CI_REGISTRY_IMAGE",
944
+ "DOCKER_TLS_CERTDIR": "",
945
+ "KUBERNETES_CPU_LIMIT": "1",
946
+ "KUBERNETES_CPU_REQUEST": "0.5",
947
+ "KUBERNETES_MEMORY_LIMIT": "2Gi",
948
+ "KUBERNETES_MEMORY_REQUEST": "1Gi",
949
+ },
950
+ },
951
+ "www 🔨 docker | stage ": {
952
+ "environment": undefined,
953
+ "image": "path/to/docker/docker-build:the-version",
954
+ "interruptible": true,
955
+ "needs": [
956
+ "www 🔨 app | stage ",
957
+ ],
958
+ "retry": {
959
+ "max": 2,
960
+ "when": [
961
+ "runner_system_failure",
962
+ "stuck_or_timeout_failure",
963
+ ],
964
+ },
965
+ "script": [
966
+ "ensureNginxDockerfile",
967
+ "docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY",
968
+ "docker version",
969
+ "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",
970
+ "docker push $DOCKER_IMAGE:$DOCKER_IMAGE_TAG",
971
+ "docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG $DOCKER_CACHE_IMAGE",
972
+ "docker push $DOCKER_CACHE_IMAGE",
973
+ ],
974
+ "services": [
975
+ {
976
+ "command": [
977
+ "--tls=false",
978
+ ],
979
+ "name": "docker:20-dind",
980
+ },
981
+ ],
982
+ "stage": "build",
983
+ "variables": {
984
+ "APP_DIR": "www",
985
+ "DOCKERFILE_ADDITIONS": undefined,
986
+ "DOCKERFILE_ADDITIONS_END": undefined,
987
+ "DOCKER_BUILDKIT": "1",
988
+ "DOCKER_CACHE_IMAGE": "$DOCKER_REGISTRY_IMAGE_PATH/caches/www",
989
+ "DOCKER_DIR": ".",
990
+ "DOCKER_DRIVER": "overlay2",
991
+ "DOCKER_HOST": "tcp://0.0.0.0:2375",
992
+ "DOCKER_IMAGE": "$DOCKER_REGISTRY_IMAGE_PATH/$DOCKER_IMAGE_NAME",
993
+ "DOCKER_IMAGE_NAME": "stage/www",
994
+ "DOCKER_IMAGE_TAG": "$CI_COMMIT_SHA",
995
+ "DOCKER_REGISTRY": "$CI_REGISTRY",
996
+ "DOCKER_REGISTRY_IMAGE_PATH": "$CI_REGISTRY_IMAGE",
997
+ "DOCKER_TLS_CERTDIR": "",
998
+ "KUBERNETES_CPU_LIMIT": "1",
999
+ "KUBERNETES_CPU_REQUEST": "0.5",
1000
+ "KUBERNETES_MEMORY_LIMIT": "2Gi",
1001
+ "KUBERNETES_MEMORY_REQUEST": "1Gi",
1002
+ },
1003
+ },
1004
+ "www 🚀 Deploy | prod ": {
1005
+ "allow_failure": true,
1006
+ "artifacts": {
1007
+ "paths": [
1008
+ "____envvars.yaml",
1009
+ ],
1010
+ },
1011
+ "environment": {
1012
+ "auto_stop_in": undefined,
1013
+ "name": "prod/www",
1014
+ "on_stop": "www 🛑 Stop ⚠️ | prod ",
1015
+ "url": "https://pan-test-app-prod-www-unknown-host.example.com",
1016
+ },
1017
+ "image": "path/to/docker/gcloud:the-version",
1018
+ "interruptible": true,
1019
+ "needs": [
1020
+ {
1021
+ "artifacts": false,
1022
+ "job": "www 🔨 app | prod ",
1023
+ },
1024
+ {
1025
+ "artifacts": false,
1026
+ "job": "www 🔨 docker | prod ",
1027
+ },
1028
+ ],
1029
+ "retry": {
1030
+ "max": 2,
1031
+ "when": [
1032
+ "runner_system_failure",
1033
+ "stuck_or_timeout_failure",
1034
+ ],
1035
+ },
1036
+ "rules": [
1037
+ {
1038
+ "when": "manual",
1039
+ },
1040
+ ],
1041
+ "script": [
1042
+ "echo $CL_prod_www_GCLOUD_DEPLOY_credentialsKey > ./____keyfile.json
1043
+ ",
1044
+ "gcloud auth activate-service-account --key-file="./____keyfile.json"",
1045
+ "export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe asdf --format="value(projectNumber)")",
1046
+ "echo "GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER"",
1047
+ "docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY",
1048
+ "gcloud auth configure-docker asia-east1-docker.pkg.dev",
1049
+ "docker pull $DOCKER_IMAGE:$DOCKER_IMAGE_TAG",
1050
+ "docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG",
1051
+ "docker push asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG",
1052
+ "echo "$ENV_VARS" > ____envvars.yaml",
1053
+ "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",
1054
+ "docker image rm asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG",
1055
+ ],
1056
+ "services": [
1057
+ {
1058
+ "command": [
1059
+ "--tls=false",
1060
+ ],
1061
+ "name": "docker:20-dind",
1062
+ },
1063
+ ],
1064
+ "stage": "deploy prod",
1065
+ "variables": {
1066
+ "APP_DIR": "www",
1067
+ "CLOUDSDK_CORE_DISABLE_PROMPTS": "1",
1068
+ "DOCKER_BUILDKIT": "1",
1069
+ "DOCKER_CACHE_IMAGE": "$DOCKER_REGISTRY_IMAGE_PATH/caches/www",
1070
+ "DOCKER_DRIVER": "overlay2",
1071
+ "DOCKER_HOST": "tcp://0.0.0.0:2375",
1072
+ "DOCKER_IMAGE": "$DOCKER_REGISTRY_IMAGE_PATH/$DOCKER_IMAGE_NAME",
1073
+ "DOCKER_IMAGE_NAME": "prod/www",
1074
+ "DOCKER_IMAGE_TAG": "$CI_COMMIT_SHA",
1075
+ "DOCKER_REGISTRY": "$CI_REGISTRY",
1076
+ "DOCKER_REGISTRY_IMAGE_PATH": "$CI_REGISTRY_IMAGE",
1077
+ "DOCKER_TLS_CERTDIR": "",
1078
+ "ENV_SHORT": "prod",
1079
+ "ENV_TYPE": "prod",
1080
+ "ENV_VARS": "ENV_SHORT: 'prod'
1081
+ APP_DIR: 'www'
1082
+ ENV_TYPE: 'prod'
1083
+ HOST: 'pan-test-app-prod-www-unknown-host.example.com'
1084
+ ROOT_URL: 'https://pan-test-app-prod-www-unknown-host.example.com'
1085
+ HOST_CANONICAL: 'pan-test-app-prod-www-unknown-host.example.com'
1086
+ GCLOUD_RUN_canonicalHostSuffix: '$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix'
1087
+ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","HOST","ROOT_URL","HOST_CANONICAL","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]'
1088
+ ",
1089
+ "GCLOUD_DEPLOY_credentialsKey": "$CL_prod_www_GCLOUD_DEPLOY_credentialsKey",
1090
+ "GCLOUD_RUN_canonicalHostSuffix": "$CL_prod_www_GCLOUD_RUN_canonicalHostSuffix",
1091
+ "HOST": "pan-test-app-prod-www-unknown-host.example.com",
1092
+ "HOST_CANONICAL": "pan-test-app-prod-www-unknown-host.example.com",
1093
+ "KUBERNETES_CPU_LIMIT": "1",
1094
+ "KUBERNETES_CPU_REQUEST": "0.5",
1095
+ "KUBERNETES_MEMORY_LIMIT": "500Mi",
1096
+ "KUBERNETES_MEMORY_REQUEST": "200Mi",
1097
+ "ROOT_URL": "https://pan-test-app-prod-www-unknown-host.example.com",
1098
+ "_ALL_ENV_VAR_KEYS": "["ENV_SHORT","APP_DIR","ENV_TYPE","HOST","ROOT_URL","HOST_CANONICAL","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]",
1099
+ },
1100
+ },
1101
+ "www 🚀 Deploy | stage ": {
1102
+ "allow_failure": false,
1103
+ "artifacts": {
1104
+ "paths": [
1105
+ "____envvars.yaml",
1106
+ ],
1107
+ },
1108
+ "environment": {
1109
+ "auto_stop_in": undefined,
1110
+ "name": "stage/www",
1111
+ "on_stop": "www 🛑 Stop ⚠️ | stage ",
1112
+ "url": "https://pan-test-app-stage-www-unknown-host.example.com",
1113
+ },
1114
+ "image": "path/to/docker/gcloud:the-version",
1115
+ "interruptible": true,
1116
+ "needs": [
1117
+ {
1118
+ "artifacts": false,
1119
+ "job": "www 🔨 app | stage ",
1120
+ },
1121
+ {
1122
+ "artifacts": false,
1123
+ "job": "www 🔨 docker | stage ",
1124
+ },
1125
+ ],
1126
+ "retry": {
1127
+ "max": 2,
1128
+ "when": [
1129
+ "runner_system_failure",
1130
+ "stuck_or_timeout_failure",
1131
+ ],
1132
+ },
1133
+ "rules": [
1134
+ {
1135
+ "when": "on_success",
1136
+ },
1137
+ ],
1138
+ "script": [
1139
+ "echo $CL_stage_www_GCLOUD_DEPLOY_credentialsKey > ./____keyfile.json
1140
+ ",
1141
+ "gcloud auth activate-service-account --key-file="./____keyfile.json"",
1142
+ "export GCLOUD_PROJECT_NUMBER=$(gcloud projects describe asdf --format="value(projectNumber)")",
1143
+ "echo "GCLOUD_PROJECT_NUMBER: $GCLOUD_PROJECT_NUMBER"",
1144
+ "docker login --username gitlab-ci-token --password $CI_JOB_TOKEN $CI_REGISTRY",
1145
+ "gcloud auth configure-docker asia-east1-docker.pkg.dev",
1146
+ "docker pull $DOCKER_IMAGE:$DOCKER_IMAGE_TAG",
1147
+ "docker tag $DOCKER_IMAGE:$DOCKER_IMAGE_TAG asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG",
1148
+ "docker push asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG",
1149
+ "echo "$ENV_VARS" > ____envvars.yaml",
1150
+ "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",
1151
+ "docker image rm asia-east1-docker.pkg.dev/asdf/catladder-deploy/pan-test-app/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG",
1152
+ ],
1153
+ "services": [
1154
+ {
1155
+ "command": [
1156
+ "--tls=false",
1157
+ ],
1158
+ "name": "docker:20-dind",
1159
+ },
1160
+ ],
1161
+ "stage": "deploy stage",
1162
+ "variables": {
1163
+ "APP_DIR": "www",
1164
+ "CLOUDSDK_CORE_DISABLE_PROMPTS": "1",
1165
+ "DOCKER_BUILDKIT": "1",
1166
+ "DOCKER_CACHE_IMAGE": "$DOCKER_REGISTRY_IMAGE_PATH/caches/www",
1167
+ "DOCKER_DRIVER": "overlay2",
1168
+ "DOCKER_HOST": "tcp://0.0.0.0:2375",
1169
+ "DOCKER_IMAGE": "$DOCKER_REGISTRY_IMAGE_PATH/$DOCKER_IMAGE_NAME",
1170
+ "DOCKER_IMAGE_NAME": "stage/www",
1171
+ "DOCKER_IMAGE_TAG": "$CI_COMMIT_SHA",
1172
+ "DOCKER_REGISTRY": "$CI_REGISTRY",
1173
+ "DOCKER_REGISTRY_IMAGE_PATH": "$CI_REGISTRY_IMAGE",
1174
+ "DOCKER_TLS_CERTDIR": "",
1175
+ "ENV_SHORT": "stage",
1176
+ "ENV_TYPE": "stage",
1177
+ "ENV_VARS": "ENV_SHORT: 'stage'
1178
+ APP_DIR: 'www'
1179
+ ENV_TYPE: 'stage'
1180
+ HOST: 'pan-test-app-stage-www-unknown-host.example.com'
1181
+ ROOT_URL: 'https://pan-test-app-stage-www-unknown-host.example.com'
1182
+ HOST_CANONICAL: 'pan-test-app-stage-www-unknown-host.example.com'
1183
+ GCLOUD_RUN_canonicalHostSuffix: '$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix'
1184
+ _ALL_ENV_VAR_KEYS: '["ENV_SHORT","APP_DIR","ENV_TYPE","HOST","ROOT_URL","HOST_CANONICAL","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]'
1185
+ ",
1186
+ "GCLOUD_DEPLOY_credentialsKey": "$CL_stage_www_GCLOUD_DEPLOY_credentialsKey",
1187
+ "GCLOUD_RUN_canonicalHostSuffix": "$CL_stage_www_GCLOUD_RUN_canonicalHostSuffix",
1188
+ "HOST": "pan-test-app-stage-www-unknown-host.example.com",
1189
+ "HOST_CANONICAL": "pan-test-app-stage-www-unknown-host.example.com",
1190
+ "KUBERNETES_CPU_LIMIT": "1",
1191
+ "KUBERNETES_CPU_REQUEST": "0.5",
1192
+ "KUBERNETES_MEMORY_LIMIT": "500Mi",
1193
+ "KUBERNETES_MEMORY_REQUEST": "200Mi",
1194
+ "ROOT_URL": "https://pan-test-app-stage-www-unknown-host.example.com",
1195
+ "_ALL_ENV_VAR_KEYS": "["ENV_SHORT","APP_DIR","ENV_TYPE","HOST","ROOT_URL","HOST_CANONICAL","GCLOUD_DEPLOY_credentialsKey","GCLOUD_RUN_canonicalHostSuffix"]",
1196
+ },
1197
+ },
1198
+ "www 🛑 Stop ⚠️ | prod ": {
1199
+ "environment": {
1200
+ "action": "stop",
1201
+ "name": "prod/www",
1202
+ "url": "https://pan-test-app-prod-www-unknown-host.example.com",
1203
+ },
1204
+ "image": "path/to/docker/gcloud:the-version",
1205
+ "interruptible": true,
1206
+ "needs": [],
1207
+ "retry": {
1208
+ "max": 2,
1209
+ "when": [
1210
+ "runner_system_failure",
1211
+ "stuck_or_timeout_failure",
1212
+ ],
1213
+ },
1214
+ "rules": [
1215
+ {
1216
+ "allow_failure": true,
1217
+ "if": "$CI_COMMIT_BRANCH =~ /^[0-9]+\\.([0-9]+|x)\\.x$/",
1218
+ "when": "on_success",
1219
+ },
1220
+ {
1221
+ "allow_failure": true,
1222
+ "when": "manual",
1223
+ },
1224
+ ],
1225
+ "script": [
1226
+ "set +e",
1227
+ "echo $CL_prod_www_GCLOUD_DEPLOY_credentialsKey > ./____keyfile.json
1228
+ ",
1229
+ "gcloud auth activate-service-account --key-file="./____keyfile.json"",
1230
+ "gcloud run services delete pan-test-app-prod-www --project=asdf --region=asia-east1",
1231
+ "set -e",
1232
+ ],
1233
+ "stage": "stop prod",
1234
+ "variables": {
1235
+ "CLOUDSDK_CORE_DISABLE_PROMPTS": "1",
1236
+ "GIT_STRATEGY": "none",
1237
+ "KUBERNETES_CPU_LIMIT": "1",
1238
+ "KUBERNETES_CPU_REQUEST": "0.5",
1239
+ "KUBERNETES_MEMORY_LIMIT": "500Mi",
1240
+ "KUBERNETES_MEMORY_REQUEST": "200Mi",
1241
+ },
1242
+ },
1243
+ "www 🛑 Stop ⚠️ | stage ": {
1244
+ "environment": {
1245
+ "action": "stop",
1246
+ "name": "stage/www",
1247
+ "url": "https://pan-test-app-stage-www-unknown-host.example.com",
1248
+ },
1249
+ "image": "path/to/docker/gcloud:the-version",
1250
+ "interruptible": true,
1251
+ "needs": [],
1252
+ "retry": {
1253
+ "max": 2,
1254
+ "when": [
1255
+ "runner_system_failure",
1256
+ "stuck_or_timeout_failure",
1257
+ ],
1258
+ },
1259
+ "rules": [
1260
+ {
1261
+ "allow_failure": true,
1262
+ "if": "$CI_COMMIT_BRANCH =~ /^[0-9]+\\.([0-9]+|x)\\.x$/",
1263
+ "when": "on_success",
1264
+ },
1265
+ {
1266
+ "allow_failure": true,
1267
+ "when": "manual",
1268
+ },
1269
+ ],
1270
+ "script": [
1271
+ "set +e",
1272
+ "echo $CL_stage_www_GCLOUD_DEPLOY_credentialsKey > ./____keyfile.json
1273
+ ",
1274
+ "gcloud auth activate-service-account --key-file="./____keyfile.json"",
1275
+ "gcloud run services delete pan-test-app-stage-www --project=asdf --region=asia-east1",
1276
+ "set -e",
1277
+ ],
1278
+ "stage": "stop stage",
1279
+ "variables": {
1280
+ "CLOUDSDK_CORE_DISABLE_PROMPTS": "1",
1281
+ "GIT_STRATEGY": "none",
1282
+ "KUBERNETES_CPU_LIMIT": "1",
1283
+ "KUBERNETES_CPU_REQUEST": "0.5",
1284
+ "KUBERNETES_MEMORY_LIMIT": "500Mi",
1285
+ "KUBERNETES_MEMORY_REQUEST": "200Mi",
1286
+ },
1287
+ },
1288
+ },
1289
+ "stages": [
1290
+ "setup",
1291
+ "setup dev",
1292
+ "setup review",
1293
+ "setup stage",
1294
+ "setup prod",
1295
+ "setup local",
1296
+ "test",
1297
+ "test dev",
1298
+ "test review",
1299
+ "test stage",
1300
+ "test prod",
1301
+ "test local",
1302
+ "build",
1303
+ "build dev",
1304
+ "build review",
1305
+ "build stage",
1306
+ "build prod",
1307
+ "build local",
1308
+ "deploy",
1309
+ "deploy dev",
1310
+ "deploy review",
1311
+ "deploy stage",
1312
+ "deploy prod",
1313
+ "deploy local",
1314
+ "verify",
1315
+ "verify dev",
1316
+ "verify review",
1317
+ "verify stage",
1318
+ "verify prod",
1319
+ "verify local",
1320
+ "rollback",
1321
+ "rollback dev",
1322
+ "rollback review",
1323
+ "rollback stage",
1324
+ "rollback prod",
1325
+ "rollback local",
1326
+ "stop",
1327
+ "stop dev",
1328
+ "stop review",
1329
+ "stop stage",
1330
+ "stop prod",
1331
+ "stop local",
1332
+ ],
1333
+ "variables": {
1334
+ "FF_USE_FASTZIP": "true",
1335
+ },
1336
+ "workflow": {
1337
+ "rules": [
1338
+ {
1339
+ "if": "$CI_COMMIT_TAG",
1340
+ },
1341
+ {
1342
+ "if": "$CI_COMMIT_MESSAGE =~ /^chore\\(release\\).*/",
1343
+ "when": "never",
1344
+ },
1345
+ {
1346
+ "if": "$CI_COMMIT_BRANCH =~ /^[0-9]+.([0-9]+|x).x$/",
1347
+ },
1348
+ {
1349
+ "if": "$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH",
1350
+ },
1351
+ {
1352
+ "if": "$CI_MERGE_REQUEST_ID",
1353
+ },
1354
+ ],
1355
+ },
1356
+ },
1357
+ }
1358
+ `;