@catladder/pipeline 3.25.0 → 3.27.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.
Files changed (77) hide show
  1. package/dist/build/custom/testJob.js +1 -2
  2. package/dist/build/node/testJob.js +1 -2
  3. package/dist/build/node/yarn.js +3 -2
  4. package/dist/build/rails/test.js +1 -2
  5. package/dist/constants.js +1 -1
  6. package/dist/deploy/types/googleCloudRun.d.ts +1 -1
  7. package/dist/pipeline/agent/createAgentReviewJob.js +1 -0
  8. package/dist/pipeline/agent/shared.d.ts +1 -1
  9. package/dist/pipeline/agent/shared.js +0 -1
  10. package/dist/pipeline/createMainPipeline.js +1 -0
  11. package/dist/pipeline/gitlab/cache.d.ts +9 -0
  12. package/dist/pipeline/gitlab/cache.js +47 -0
  13. package/dist/pipeline/gitlab/createGitlabJobs.js +7 -7
  14. package/dist/tsconfig.tsbuildinfo +1 -1
  15. package/dist/types/jobs.d.ts +2 -3
  16. package/examples/__snapshots__/automatic-releases.test.ts.snap +141 -31
  17. package/examples/__snapshots__/cloud-run-health-check-defaults.test.ts.snap +141 -31
  18. package/examples/__snapshots__/cloud-run-health-check-only-startup.test.ts.snap +141 -31
  19. package/examples/__snapshots__/cloud-run-health-check.test.ts.snap +141 -31
  20. package/examples/__snapshots__/cloud-run-http2.test.ts.snap +141 -31
  21. package/examples/__snapshots__/cloud-run-memory-limit.test.ts.snap +141 -31
  22. package/examples/__snapshots__/cloud-run-meteor-with-worker.test.ts.snap +133 -27
  23. package/examples/__snapshots__/cloud-run-nextjs.test.ts.snap +144 -32
  24. package/examples/__snapshots__/cloud-run-no-cpu-throttling.test.ts.snap +141 -31
  25. package/examples/__snapshots__/cloud-run-no-service.test.ts.snap +141 -31
  26. package/examples/__snapshots__/cloud-run-non-public.test.ts.snap +141 -31
  27. package/examples/__snapshots__/cloud-run-post-stop-job.test.ts.snap +141 -31
  28. package/examples/__snapshots__/cloud-run-service-custom-vpc-connector.test.ts.snap +141 -31
  29. package/examples/__snapshots__/cloud-run-service-custom-vpc.test.ts.snap +141 -31
  30. package/examples/__snapshots__/cloud-run-service-gen2.test.ts.snap +141 -31
  31. package/examples/__snapshots__/cloud-run-service-increase-timout.test.ts.snap +141 -31
  32. package/examples/__snapshots__/cloud-run-service-with-volumes.test.ts.snap +141 -31
  33. package/examples/__snapshots__/cloud-run-storybook.test.ts.snap +21 -11
  34. package/examples/__snapshots__/cloud-run-with-agents.test.ts.snap +144 -32
  35. package/examples/__snapshots__/cloud-run-with-gpu.test.ts.snap +141 -31
  36. package/examples/__snapshots__/cloud-run-with-ngnix.test.ts.snap +141 -31
  37. package/examples/__snapshots__/cloud-run-with-sql-legacy-jobs.test.ts.snap +141 -31
  38. package/examples/__snapshots__/cloud-run-with-sql-multiple-dbs.test.ts.snap +423 -93
  39. package/examples/__snapshots__/cloud-run-with-sql-reuse-db.test.ts.snap +282 -62
  40. package/examples/__snapshots__/cloud-run-with-sql.test.ts.snap +141 -31
  41. package/examples/__snapshots__/cloud-run-with-worker.test.ts.snap +141 -31
  42. package/examples/__snapshots__/custom-build-job-with-tests.test.ts.snap +93 -22
  43. package/examples/__snapshots__/custom-deploy.test.ts.snap +141 -31
  44. package/examples/__snapshots__/custom-envs.test.ts.snap +328 -40
  45. package/examples/__snapshots__/custom-verify-job.test.ts.snap +144 -32
  46. package/examples/__snapshots__/git-submodule.test.ts.snap +141 -31
  47. package/examples/__snapshots__/kubernetes-application-customization.test.ts.snap +141 -31
  48. package/examples/__snapshots__/kubernetes-with-cloud-sql.test.ts.snap +141 -31
  49. package/examples/__snapshots__/kubernetes-with-jobs.test.ts.snap +282 -62
  50. package/examples/__snapshots__/kubernetes-with-mongodb.test.ts.snap +141 -31
  51. package/examples/__snapshots__/local-dot-env.test.ts.snap +141 -31
  52. package/examples/__snapshots__/meteor-kubernetes.test.ts.snap +133 -27
  53. package/examples/__snapshots__/modify-generated-files.test.ts.snap +124 -20
  54. package/examples/__snapshots__/modify-generated-yaml.test.ts.snap +124 -20
  55. package/examples/__snapshots__/multiline-var.test.ts.snap +423 -93
  56. package/examples/__snapshots__/native-app.test.ts.snap +277 -57
  57. package/examples/__snapshots__/node-build-with-custom-image.test.ts.snap +141 -31
  58. package/examples/__snapshots__/node-build-with-docker-additions.test.ts.snap +141 -31
  59. package/examples/__snapshots__/override-secrets.test.ts.snap +141 -31
  60. package/examples/__snapshots__/rails-k8s-with-worker-dockerfile.test.ts.snap +84 -22
  61. package/examples/__snapshots__/rails-k8s-with-worker.test.ts.snap +84 -22
  62. package/examples/__snapshots__/referencing-other-vars.test.ts.snap +423 -93
  63. package/examples/__snapshots__/wait-for-other-deploy.test.ts.snap +260 -52
  64. package/examples/__snapshots__/workspace-api-www-turbo-cache.test.ts.snap +161 -43
  65. package/examples/__snapshots__/workspace-api-www.test.ts.snap +161 -43
  66. package/package.json +1 -1
  67. package/src/build/custom/testJob.ts +0 -1
  68. package/src/build/node/testJob.ts +0 -1
  69. package/src/build/node/yarn.ts +3 -2
  70. package/src/build/rails/test.ts +0 -1
  71. package/src/deploy/types/googleCloudRun.ts +1 -1
  72. package/src/pipeline/agent/createAgentReviewJob.ts +1 -0
  73. package/src/pipeline/agent/shared.ts +2 -2
  74. package/src/pipeline/createMainPipeline.ts +1 -0
  75. package/src/pipeline/gitlab/cache.ts +49 -0
  76. package/src/pipeline/gitlab/createGitlabJobs.ts +7 -9
  77. package/src/types/jobs.ts +2 -3
@@ -103,7 +103,7 @@ before_script:
103
103
  local section_title="\${1}"
104
104
  echo -e "section_end:\`date +%s\`:\${section_title}\\r\\e[0K"
105
105
  }
106
- www 🛡 audit:
106
+ 'www 🛡 audit | dev ':
107
107
  stage: test
108
108
  image: audit-image
109
109
  services: &a1
@@ -128,9 +128,6 @@ www 🛡 audit:
128
128
  - when: never
129
129
  if: $CI_PIPELINE_SOURCE == "trigger"
130
130
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
131
- - when: never
132
- if: $CI_PIPELINE_SOURCE == "trigger"
133
- - if: $CI_MERGE_REQUEST_ID
134
131
  needs: []
135
132
  retry: &a2
136
133
  max: 2
@@ -139,7 +136,7 @@ www 🛡 audit:
139
136
  - stuck_or_timeout_failure
140
137
  interruptible: true
141
138
  allow_failure: true
142
- www 👮 lint:
139
+ 'www 👮 lint | dev ':
143
140
  stage: test
144
141
  image: lint-image
145
142
  services: *a1
@@ -161,13 +158,10 @@ www 👮 lint:
161
158
  - when: never
162
159
  if: $CI_PIPELINE_SOURCE == "trigger"
163
160
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
164
- - when: never
165
- if: $CI_PIPELINE_SOURCE == "trigger"
166
- - if: $CI_MERGE_REQUEST_ID
167
161
  needs: []
168
162
  retry: *a2
169
163
  interruptible: true
170
- www 🧪 test:
164
+ 'www 🧪 test | dev ':
171
165
  stage: test
172
166
  image: test-image
173
167
  services: *a1
@@ -190,9 +184,6 @@ www 🧪 test:
190
184
  - when: never
191
185
  if: $CI_PIPELINE_SOURCE == "trigger"
192
186
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
193
- - when: never
194
- if: $CI_PIPELINE_SOURCE == "trigger"
195
- - if: $CI_MERGE_REQUEST_ID
196
187
  needs: []
197
188
  retry: *a2
198
189
  interruptible: true
@@ -428,17 +419,17 @@ www 🧪 test:
428
419
  - when: on_success
429
420
  if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
430
421
  needs:
431
- - job: www 👮 lint
422
+ - job: 'www 👮 lint | dev '
432
423
  artifacts: false
433
424
  - job: 'www 🔨 app | dev '
434
425
  artifacts: false
435
426
  - job: 'www 🔨 docker | dev '
436
427
  artifacts: false
437
- - job: www 🧪 test
428
+ - job: 'www 🧪 test | dev '
438
429
  artifacts: false
439
430
  - job: 'www 🧾 sbom | dev '
440
431
  artifacts: true
441
- - job: www 🛡 audit
432
+ - job: 'www 🛡 audit | dev '
442
433
  artifacts: false
443
434
  retry: *a2
444
435
  interruptible: true
@@ -477,6 +468,86 @@ www 🧪 test:
477
468
  retry: *a2
478
469
  interruptible: true
479
470
  allow_failure: true
471
+ 'www 🛡 audit | review ':
472
+ stage: test
473
+ image: audit-image
474
+ services: &a3
475
+ - name: job-service-1
476
+ command:
477
+ - --some-command=some-value
478
+ variables:
479
+ KUBERNETES_CPU_REQUEST: '0.45'
480
+ KUBERNETES_MEMORY_REQUEST: 1Gi
481
+ KUBERNETES_MEMORY_LIMIT: 4Gi
482
+ script:
483
+ - collapseable_section_start "injectvars" "Injecting variables"
484
+ - export APP_PATH="www"
485
+ - collapseable_section_end "injectvars"
486
+ - audit
487
+ artifacts:
488
+ paths: []
489
+ reports:
490
+ junit:
491
+ - www/dist/audit.xml
492
+ rules:
493
+ - when: never
494
+ if: $CI_PIPELINE_SOURCE == "trigger"
495
+ - if: $CI_MERGE_REQUEST_ID
496
+ needs: []
497
+ retry: *a2
498
+ interruptible: true
499
+ allow_failure: true
500
+ 'www 👮 lint | review ':
501
+ stage: test
502
+ image: lint-image
503
+ services: *a3
504
+ variables:
505
+ KUBERNETES_CPU_REQUEST: '0.45'
506
+ KUBERNETES_MEMORY_REQUEST: 1Gi
507
+ KUBERNETES_MEMORY_LIMIT: 4Gi
508
+ script:
509
+ - collapseable_section_start "injectvars" "Injecting variables"
510
+ - export APP_PATH="www"
511
+ - collapseable_section_end "injectvars"
512
+ - lint
513
+ artifacts:
514
+ paths: []
515
+ reports:
516
+ junit:
517
+ - www/dist/lint.xml
518
+ rules:
519
+ - when: never
520
+ if: $CI_PIPELINE_SOURCE == "trigger"
521
+ - if: $CI_MERGE_REQUEST_ID
522
+ needs: []
523
+ retry: *a2
524
+ interruptible: true
525
+ 'www 🧪 test | review ':
526
+ stage: test
527
+ image: test-image
528
+ services: *a3
529
+ variables:
530
+ KUBERNETES_CPU_REQUEST: '0.45'
531
+ KUBERNETES_MEMORY_REQUEST: 1Gi
532
+ KUBERNETES_MEMORY_LIMIT: 4Gi
533
+ script:
534
+ - collapseable_section_start "injectvars" "Injecting variables"
535
+ - export APP_PATH="www"
536
+ - collapseable_section_end "injectvars"
537
+ - test
538
+ artifacts:
539
+ paths: []
540
+ reports:
541
+ junit:
542
+ - www/dist/TEST-*.xml
543
+ - www/dist/junit-*.xml
544
+ rules:
545
+ - when: never
546
+ if: $CI_PIPELINE_SOURCE == "trigger"
547
+ - if: $CI_MERGE_REQUEST_ID
548
+ needs: []
549
+ retry: *a2
550
+ interruptible: true
480
551
  'www 🔨 app | review ':
481
552
  stage: build
482
553
  image: foo
@@ -712,17 +783,17 @@ www 🧪 test:
712
783
  - when: on_success
713
784
  if: $CI_MERGE_REQUEST_ID
714
785
  needs:
715
- - job: www 👮 lint
786
+ - job: 'www 👮 lint | review '
716
787
  artifacts: false
717
788
  - job: 'www 🔨 app | review '
718
789
  artifacts: false
719
790
  - job: 'www 🔨 docker | review '
720
791
  artifacts: false
721
- - job: www 🧪 test
792
+ - job: 'www 🧪 test | review '
722
793
  artifacts: false
723
794
  - job: 'www 🧾 sbom | review '
724
795
  artifacts: true
725
- - job: www 🛡 audit
796
+ - job: 'www 🛡 audit | review '
726
797
  artifacts: false
727
798
  retry: *a2
728
799
  interruptible: true
@@ -1319,13 +1390,13 @@ create release:
1319
1390
  - semanticRelease
1320
1391
  - echo '👉 The project access token might be invald - run \`project-renew-token\` in catladder CLI to fix.'
1321
1392
  rules:
1322
- - &a3
1393
+ - &a4
1323
1394
  if: $CI_COMMIT_MESSAGE =~ /^chore\\(release\\).*/
1324
1395
  when: never
1325
- - &a4
1396
+ - &a5
1326
1397
  if: $CI_PIPELINE_SOURCE == "trigger"
1327
1398
  when: never
1328
- - &a5
1399
+ - &a6
1329
1400
  if: $CI_PIPELINE_SOURCE == "schedule"
1330
1401
  when: never
1331
1402
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
@@ -1339,9 +1410,9 @@ create release:
1339
1410
  - semanticRelease
1340
1411
  - echo '👉 The project access token might be invald - run \`project-renew-token\` in catladder CLI to fix.'
1341
1412
  rules:
1342
- - *a3
1343
1413
  - *a4
1344
1414
  - *a5
1415
+ - *a6
1345
1416
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
1346
1417
  when: manual
1347
1418
  - if: $CI_COMMIT_BRANCH =~ /^[0-9]+.([0-9]+|x).x$/
@@ -103,7 +103,7 @@ before_script:
103
103
  local section_title="\${1}"
104
104
  echo -e "section_end:\`date +%s\`:\${section_title}\\r\\e[0K"
105
105
  }
106
- www 🛡 audit:
106
+ 'www 🛡 audit | dev ':
107
107
  stage: test
108
108
  image: path/to/docker/jobs-default:the-version
109
109
  variables:
@@ -120,9 +120,6 @@ www 🛡 audit:
120
120
  - when: never
121
121
  if: $CI_PIPELINE_SOURCE == "trigger"
122
122
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
123
- - when: never
124
- if: $CI_PIPELINE_SOURCE == "trigger"
125
- - if: $CI_MERGE_REQUEST_ID
126
123
  needs: []
127
124
  retry: &a1
128
125
  max: 2
@@ -131,7 +128,7 @@ www 🛡 audit:
131
128
  - stuck_or_timeout_failure
132
129
  interruptible: true
133
130
  allow_failure: true
134
- www 👮 lint:
131
+ 'www 👮 lint | dev ':
135
132
  stage: test
136
133
  image: path/to/docker/jobs-default:the-version
137
134
  variables:
@@ -152,7 +149,7 @@ www 👮 lint:
152
149
  - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
153
150
  - collapseable_section_end "nodeinstall"
154
151
  - collapseable_section_start "yarninstall" "Yarn install"
155
- - yarn install --immutable
152
+ - yarn install --immutable --inline-builds
156
153
  - collapseable_section_end "yarninstall"
157
154
  - yarn lint
158
155
  cache:
@@ -168,13 +165,10 @@ www 👮 lint:
168
165
  - when: never
169
166
  if: $CI_PIPELINE_SOURCE == "trigger"
170
167
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
171
- - when: never
172
- if: $CI_PIPELINE_SOURCE == "trigger"
173
- - if: $CI_MERGE_REQUEST_ID
174
168
  needs: []
175
169
  retry: *a1
176
170
  interruptible: true
177
- www 🧪 test:
171
+ 'www 🧪 test | dev ':
178
172
  stage: test
179
173
  image: path/to/docker/jobs-testing-chrome:the-version
180
174
  variables:
@@ -195,7 +189,7 @@ www 🧪 test:
195
189
  - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
196
190
  - collapseable_section_end "nodeinstall"
197
191
  - collapseable_section_start "yarninstall" "Yarn install"
198
- - yarn install --immutable
192
+ - yarn install --immutable --inline-builds
199
193
  - collapseable_section_end "yarninstall"
200
194
  - yarn test
201
195
  cache:
@@ -211,9 +205,6 @@ www 🧪 test:
211
205
  - when: never
212
206
  if: $CI_PIPELINE_SOURCE == "trigger"
213
207
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
214
- - when: never
215
- if: $CI_PIPELINE_SOURCE == "trigger"
216
- - if: $CI_MERGE_REQUEST_ID
217
208
  needs: []
218
209
  retry: *a1
219
210
  interruptible: true
@@ -262,7 +253,7 @@ www 🧪 test:
262
253
  - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
263
254
  - collapseable_section_end "nodeinstall"
264
255
  - collapseable_section_start "yarninstall" "Yarn install"
265
- - yarn install --immutable
256
+ - yarn install --immutable --inline-builds
266
257
  - collapseable_section_end "yarninstall"
267
258
  - yarn build
268
259
  cache:
@@ -318,7 +309,8 @@ www 🧪 test:
318
309
  - export DOCKER_IMAGE="$CI_REGISTRY_IMAGE/$DOCKER_IMAGE_NAME"
319
310
  - export DOCKER_IMAGE_TAG="$CI_COMMIT_SHA"
320
311
  - |-
321
- export DOCKER_COPY_AND_INSTALL_APP="COPY --chown=node:node $APP_DIR .
312
+ export DOCKER_COPY_AND_INSTALL_APP="ENV YARN_ENABLE_INLINE_BUILDS=1
313
+ COPY --chown=node:node $APP_DIR .
322
314
  RUN yarn plugin import workspace-tools
323
315
  RUN yarn workspaces focus --production && yarn rebuild"
324
316
  - |-
@@ -418,21 +410,130 @@ www 🧪 test:
418
410
  - when: on_success
419
411
  if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
420
412
  needs:
421
- - job: www 👮 lint
413
+ - job: 'www 👮 lint | dev '
422
414
  artifacts: false
423
415
  - job: 'www 🔨 app | dev '
424
416
  artifacts: false
425
417
  - job: 'www 🔨 docker | dev '
426
418
  artifacts: false
427
- - job: www 🧪 test
419
+ - job: 'www 🧪 test | dev '
428
420
  artifacts: false
429
421
  - job: 'www 🧾 sbom | dev '
430
422
  artifacts: true
431
- - job: www 🛡 audit
423
+ - job: 'www 🛡 audit | dev '
432
424
  artifacts: false
433
425
  retry: *a1
434
426
  interruptible: true
435
427
  allow_failure: false
428
+ 'www 🛡 audit | review ':
429
+ stage: test
430
+ image: path/to/docker/jobs-default:the-version
431
+ variables:
432
+ KUBERNETES_CPU_REQUEST: '0.45'
433
+ KUBERNETES_MEMORY_REQUEST: 1Gi
434
+ KUBERNETES_MEMORY_LIMIT: 4Gi
435
+ script:
436
+ - collapseable_section_start "injectvars" "Injecting variables"
437
+ - export APP_PATH="www"
438
+ - collapseable_section_end "injectvars"
439
+ - cd www
440
+ - yarn npm audit --environment production
441
+ rules:
442
+ - when: never
443
+ if: $CI_PIPELINE_SOURCE == "trigger"
444
+ - if: $CI_MERGE_REQUEST_ID
445
+ needs: []
446
+ retry: *a1
447
+ interruptible: true
448
+ allow_failure: true
449
+ 'www 👮 lint | review ':
450
+ stage: test
451
+ image: path/to/docker/jobs-default:the-version
452
+ variables:
453
+ KUBERNETES_CPU_REQUEST: '0.45'
454
+ KUBERNETES_MEMORY_REQUEST: 1Gi
455
+ KUBERNETES_MEMORY_LIMIT: 4Gi
456
+ script:
457
+ - collapseable_section_start "injectvars" "Injecting variables"
458
+ - export APP_PATH="www"
459
+ - collapseable_section_end "injectvars"
460
+ - collapseable_section_start "nodeinstall" "Ensure node version"
461
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
462
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
463
+ - collapseable_section_end "nodeinstall"
464
+ - cd www
465
+ - collapseable_section_start "nodeinstall" "Ensure node version"
466
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
467
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
468
+ - collapseable_section_end "nodeinstall"
469
+ - collapseable_section_start "yarninstall" "Yarn install"
470
+ - yarn install --immutable --inline-builds
471
+ - collapseable_section_end "yarninstall"
472
+ - yarn lint
473
+ cache:
474
+ - key: www-yarn-mr$CI_MERGE_REQUEST_IID
475
+ policy: pull-push
476
+ paths:
477
+ - www/.yarn
478
+ fallback_keys:
479
+ - www-yarn
480
+ - key: www-node-modules-mr$CI_MERGE_REQUEST_IID
481
+ policy: pull-push
482
+ paths:
483
+ - www/node_modules
484
+ fallback_keys:
485
+ - www-node-modules
486
+ rules:
487
+ - when: never
488
+ if: $CI_PIPELINE_SOURCE == "trigger"
489
+ - if: $CI_MERGE_REQUEST_ID
490
+ needs: []
491
+ retry: *a1
492
+ interruptible: true
493
+ 'www 🧪 test | review ':
494
+ stage: test
495
+ image: path/to/docker/jobs-testing-chrome:the-version
496
+ variables:
497
+ KUBERNETES_CPU_REQUEST: '0.45'
498
+ KUBERNETES_MEMORY_REQUEST: 1Gi
499
+ KUBERNETES_MEMORY_LIMIT: 4Gi
500
+ script:
501
+ - collapseable_section_start "injectvars" "Injecting variables"
502
+ - export APP_PATH="www"
503
+ - collapseable_section_end "injectvars"
504
+ - collapseable_section_start "nodeinstall" "Ensure node version"
505
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
506
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
507
+ - collapseable_section_end "nodeinstall"
508
+ - cd www
509
+ - collapseable_section_start "nodeinstall" "Ensure node version"
510
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
511
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
512
+ - collapseable_section_end "nodeinstall"
513
+ - collapseable_section_start "yarninstall" "Yarn install"
514
+ - yarn install --immutable --inline-builds
515
+ - collapseable_section_end "yarninstall"
516
+ - yarn test
517
+ cache:
518
+ - key: www-yarn-mr$CI_MERGE_REQUEST_IID
519
+ policy: pull-push
520
+ paths:
521
+ - www/.yarn
522
+ fallback_keys:
523
+ - www-yarn
524
+ - key: www-node-modules-mr$CI_MERGE_REQUEST_IID
525
+ policy: pull-push
526
+ paths:
527
+ - www/node_modules
528
+ fallback_keys:
529
+ - www-node-modules
530
+ rules:
531
+ - when: never
532
+ if: $CI_PIPELINE_SOURCE == "trigger"
533
+ - if: $CI_MERGE_REQUEST_ID
534
+ needs: []
535
+ retry: *a1
536
+ interruptible: true
436
537
  'www 🔨 app | review ':
437
538
  stage: build
438
539
  image: path/to/docker/jobs-default:the-version
@@ -478,18 +579,22 @@ www 🧪 test:
478
579
  - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
479
580
  - collapseable_section_end "nodeinstall"
480
581
  - collapseable_section_start "yarninstall" "Yarn install"
481
- - yarn install --immutable
582
+ - yarn install --immutable --inline-builds
482
583
  - collapseable_section_end "yarninstall"
483
584
  - yarn build
484
585
  cache:
485
- - key: www-yarn
586
+ - key: www-yarn-mr$CI_MERGE_REQUEST_IID
486
587
  policy: pull-push
487
588
  paths:
488
589
  - www/.yarn
489
- - key: www-node-modules
590
+ fallback_keys:
591
+ - www-yarn
592
+ - key: www-node-modules-mr$CI_MERGE_REQUEST_IID
490
593
  policy: pull-push
491
594
  paths:
492
595
  - www/node_modules
596
+ fallback_keys:
597
+ - www-node-modules
493
598
  artifacts:
494
599
  paths:
495
600
  - www/__build_info.json
@@ -534,7 +639,8 @@ www 🧪 test:
534
639
  - export DOCKER_IMAGE="$CI_REGISTRY_IMAGE/$DOCKER_IMAGE_NAME"
535
640
  - export DOCKER_IMAGE_TAG="$CI_COMMIT_SHA"
536
641
  - |-
537
- export DOCKER_COPY_AND_INSTALL_APP="COPY --chown=node:node $APP_DIR .
642
+ export DOCKER_COPY_AND_INSTALL_APP="ENV YARN_ENABLE_INLINE_BUILDS=1
643
+ COPY --chown=node:node $APP_DIR .
538
644
  RUN yarn plugin import workspace-tools
539
645
  RUN yarn workspaces focus --production && yarn rebuild"
540
646
  - |-
@@ -556,10 +662,12 @@ www 🧪 test:
556
662
  - docker push $DOCKER_CACHE_IMAGE
557
663
  - collapseable_section_end "docker-push"
558
664
  cache:
559
- - key: www-yarn
665
+ - key: www-yarn-mr$CI_MERGE_REQUEST_IID
560
666
  policy: pull
561
667
  paths:
562
668
  - www/.yarn
669
+ fallback_keys:
670
+ - www-yarn
563
671
  rules:
564
672
  - when: never
565
673
  if: $CI_PIPELINE_SOURCE == "trigger"
@@ -636,17 +744,17 @@ www 🧪 test:
636
744
  - when: on_success
637
745
  if: $CI_MERGE_REQUEST_ID
638
746
  needs:
639
- - job: www 👮 lint
747
+ - job: 'www 👮 lint | review '
640
748
  artifacts: false
641
749
  - job: 'www 🔨 app | review '
642
750
  artifacts: false
643
751
  - job: 'www 🔨 docker | review '
644
752
  artifacts: false
645
- - job: www 🧪 test
753
+ - job: 'www 🧪 test | review '
646
754
  artifacts: false
647
755
  - job: 'www 🧾 sbom | review '
648
756
  artifacts: true
649
- - job: www 🛡 audit
757
+ - job: 'www 🛡 audit | review '
650
758
  artifacts: false
651
759
  retry: *a1
652
760
  interruptible: true
@@ -725,7 +833,7 @@ www 🧪 test:
725
833
  - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
726
834
  - collapseable_section_end "nodeinstall"
727
835
  - collapseable_section_start "yarninstall" "Yarn install"
728
- - yarn install --immutable
836
+ - yarn install --immutable --inline-builds
729
837
  - collapseable_section_end "yarninstall"
730
838
  - yarn build
731
839
  cache:
@@ -781,7 +889,8 @@ www 🧪 test:
781
889
  - export DOCKER_IMAGE="$CI_REGISTRY_IMAGE/$DOCKER_IMAGE_NAME"
782
890
  - export DOCKER_IMAGE_TAG="$CI_COMMIT_SHA"
783
891
  - |-
784
- export DOCKER_COPY_AND_INSTALL_APP="COPY --chown=node:node $APP_DIR .
892
+ export DOCKER_COPY_AND_INSTALL_APP="ENV YARN_ENABLE_INLINE_BUILDS=1
893
+ COPY --chown=node:node $APP_DIR .
785
894
  RUN yarn plugin import workspace-tools
786
895
  RUN yarn workspaces focus --production && yarn rebuild"
787
896
  - |-
@@ -935,7 +1044,7 @@ www 🧪 test:
935
1044
  - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
936
1045
  - collapseable_section_end "nodeinstall"
937
1046
  - collapseable_section_start "yarninstall" "Yarn install"
938
- - yarn install --immutable
1047
+ - yarn install --immutable --inline-builds
939
1048
  - collapseable_section_end "yarninstall"
940
1049
  - yarn build
941
1050
  cache:
@@ -991,7 +1100,8 @@ www 🧪 test:
991
1100
  - export DOCKER_IMAGE="$CI_REGISTRY_IMAGE/$DOCKER_IMAGE_NAME"
992
1101
  - export DOCKER_IMAGE_TAG="$CI_COMMIT_SHA"
993
1102
  - |-
994
- export DOCKER_COPY_AND_INSTALL_APP="COPY --chown=node:node $APP_DIR .
1103
+ export DOCKER_COPY_AND_INSTALL_APP="ENV YARN_ENABLE_INLINE_BUILDS=1
1104
+ COPY --chown=node:node $APP_DIR .
995
1105
  RUN yarn plugin import workspace-tools
996
1106
  RUN yarn workspaces focus --production && yarn rebuild"
997
1107
  - |-