@catladder/pipeline 3.24.0 → 3.26.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 (75) hide show
  1. package/dist/build/custom/testJob.js +1 -2
  2. package/dist/build/index.js +2 -1
  3. package/dist/build/node/testJob.js +1 -2
  4. package/dist/build/rails/test.js +1 -2
  5. package/dist/constants.js +1 -1
  6. package/dist/pipeline/agent/createAgentReviewJob.js +1 -0
  7. package/dist/pipeline/agent/shared.d.ts +1 -1
  8. package/dist/pipeline/agent/shared.js +0 -1
  9. package/dist/pipeline/createMainPipeline.js +1 -0
  10. package/dist/pipeline/gitlab/cache.d.ts +9 -0
  11. package/dist/pipeline/gitlab/cache.js +47 -0
  12. package/dist/pipeline/gitlab/createGitlabJobs.js +7 -7
  13. package/dist/tsconfig.tsbuildinfo +1 -1
  14. package/dist/types/jobs.d.ts +2 -3
  15. package/examples/__snapshots__/automatic-releases.test.ts.snap +131 -21
  16. package/examples/__snapshots__/cloud-run-health-check-defaults.test.ts.snap +131 -21
  17. package/examples/__snapshots__/cloud-run-health-check-only-startup.test.ts.snap +131 -21
  18. package/examples/__snapshots__/cloud-run-health-check.test.ts.snap +131 -21
  19. package/examples/__snapshots__/cloud-run-http2.test.ts.snap +131 -21
  20. package/examples/__snapshots__/cloud-run-memory-limit.test.ts.snap +131 -21
  21. package/examples/__snapshots__/cloud-run-meteor-with-worker.test.ts.snap +127 -21
  22. package/examples/__snapshots__/cloud-run-nextjs.test.ts.snap +134 -22
  23. package/examples/__snapshots__/cloud-run-no-cpu-throttling.test.ts.snap +131 -21
  24. package/examples/__snapshots__/cloud-run-no-service.test.ts.snap +131 -21
  25. package/examples/__snapshots__/cloud-run-non-public.test.ts.snap +131 -21
  26. package/examples/__snapshots__/cloud-run-post-stop-job.test.ts.snap +131 -21
  27. package/examples/__snapshots__/cloud-run-service-custom-vpc-connector.test.ts.snap +131 -21
  28. package/examples/__snapshots__/cloud-run-service-custom-vpc.test.ts.snap +131 -21
  29. package/examples/__snapshots__/cloud-run-service-gen2.test.ts.snap +131 -21
  30. package/examples/__snapshots__/cloud-run-service-increase-timout.test.ts.snap +131 -21
  31. package/examples/__snapshots__/cloud-run-service-with-volumes.test.ts.snap +131 -21
  32. package/examples/__snapshots__/cloud-run-storybook.test.ts.snap +13 -3
  33. package/examples/__snapshots__/cloud-run-with-agents.test.ts.snap +134 -22
  34. package/examples/__snapshots__/cloud-run-with-gpu.test.ts.snap +131 -21
  35. package/examples/__snapshots__/cloud-run-with-ngnix.test.ts.snap +131 -21
  36. package/examples/__snapshots__/cloud-run-with-sql-legacy-jobs.test.ts.snap +131 -21
  37. package/examples/__snapshots__/cloud-run-with-sql-multiple-dbs.test.ts.snap +393 -63
  38. package/examples/__snapshots__/cloud-run-with-sql-reuse-db.test.ts.snap +262 -42
  39. package/examples/__snapshots__/cloud-run-with-sql.test.ts.snap +131 -21
  40. package/examples/__snapshots__/cloud-run-with-worker.test.ts.snap +131 -21
  41. package/examples/__snapshots__/custom-build-job-with-tests.test.ts.snap +93 -22
  42. package/examples/__snapshots__/custom-deploy.test.ts.snap +131 -21
  43. package/examples/__snapshots__/custom-envs.test.ts.snap +326 -32
  44. package/examples/__snapshots__/custom-verify-job.test.ts.snap +134 -22
  45. package/examples/__snapshots__/git-submodule.test.ts.snap +131 -21
  46. package/examples/__snapshots__/kubernetes-application-customization.test.ts.snap +135 -21
  47. package/examples/__snapshots__/kubernetes-with-cloud-sql.test.ts.snap +135 -21
  48. package/examples/__snapshots__/kubernetes-with-jobs.test.ts.snap +266 -42
  49. package/examples/__snapshots__/kubernetes-with-mongodb.test.ts.snap +135 -21
  50. package/examples/__snapshots__/local-dot-env.test.ts.snap +135 -21
  51. package/examples/__snapshots__/meteor-kubernetes.test.ts.snap +127 -21
  52. package/examples/__snapshots__/modify-generated-files.test.ts.snap +122 -14
  53. package/examples/__snapshots__/modify-generated-yaml.test.ts.snap +122 -14
  54. package/examples/__snapshots__/multiline-var.test.ts.snap +393 -63
  55. package/examples/__snapshots__/native-app.test.ts.snap +265 -41
  56. package/examples/__snapshots__/node-build-with-custom-image.test.ts.snap +131 -21
  57. package/examples/__snapshots__/node-build-with-docker-additions.test.ts.snap +131 -21
  58. package/examples/__snapshots__/override-secrets.test.ts.snap +131 -21
  59. package/examples/__snapshots__/rails-k8s-with-worker-dockerfile.test.ts.snap +84 -22
  60. package/examples/__snapshots__/rails-k8s-with-worker.test.ts.snap +84 -22
  61. package/examples/__snapshots__/referencing-other-vars.test.ts.snap +393 -63
  62. package/examples/__snapshots__/wait-for-other-deploy.test.ts.snap +256 -40
  63. package/examples/__snapshots__/workspace-api-www-turbo-cache.test.ts.snap +147 -29
  64. package/examples/__snapshots__/workspace-api-www.test.ts.snap +147 -29
  65. package/package.json +1 -1
  66. package/src/build/custom/testJob.ts +0 -1
  67. package/src/build/index.ts +1 -0
  68. package/src/build/node/testJob.ts +0 -1
  69. package/src/build/rails/test.ts +0 -1
  70. package/src/pipeline/agent/createAgentReviewJob.ts +1 -0
  71. package/src/pipeline/agent/shared.ts +2 -2
  72. package/src/pipeline/createMainPipeline.ts +1 -0
  73. package/src/pipeline/gitlab/cache.ts +49 -0
  74. package/src/pipeline/gitlab/createGitlabJobs.ts +7 -9
  75. 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
- api 🛡 audit:
106
+ 'api 🛡 audit | dev ':
107
107
  stage: test
108
108
  image: path/to/docker/jobs-default:the-version
109
109
  variables:
@@ -120,9 +120,6 @@ api 🛡 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 @@ api 🛡 audit:
131
128
  - stuck_or_timeout_failure
132
129
  interruptible: true
133
130
  allow_failure: true
134
- api 👮 lint:
131
+ 'api 👮 lint | dev ':
135
132
  stage: test
136
133
  image: path/to/docker/jobs-default:the-version
137
134
  variables:
@@ -168,13 +165,10 @@ api 👮 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
- api 🧪 test:
171
+ 'api 🧪 test | dev ':
178
172
  stage: test
179
173
  image: path/to/docker/jobs-testing-chrome:the-version
180
174
  variables:
@@ -211,9 +205,6 @@ api 🧪 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
@@ -289,6 +280,7 @@ api 🧪 test:
289
280
  - api/dist
290
281
  exclude:
291
282
  - api/.env
283
+ - api/.next/cache/**/*
292
284
  expire_in: 1 day
293
285
  when: always
294
286
  reports: {}
@@ -477,17 +469,17 @@ api 🧪 test:
477
469
  - when: on_success
478
470
  if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
479
471
  needs:
480
- - job: api 👮 lint
472
+ - job: 'api 👮 lint | dev '
481
473
  artifacts: false
482
474
  - job: 'api 🔨 app | dev '
483
475
  artifacts: false
484
476
  - job: 'api 🔨 docker | dev '
485
477
  artifacts: false
486
- - job: api 🧪 test
478
+ - job: 'api 🧪 test | dev '
487
479
  artifacts: false
488
480
  - job: 'api 🧾 sbom | dev '
489
481
  artifacts: true
490
- - job: api 🛡 audit
482
+ - job: 'api 🛡 audit | dev '
491
483
  artifacts: false
492
484
  retry: *a1
493
485
  interruptible: true
@@ -526,6 +518,115 @@ api 🧪 test:
526
518
  retry: *a1
527
519
  interruptible: true
528
520
  allow_failure: true
521
+ 'api 🛡 audit | review ':
522
+ stage: test
523
+ image: path/to/docker/jobs-default:the-version
524
+ variables:
525
+ KUBERNETES_CPU_REQUEST: '0.45'
526
+ KUBERNETES_MEMORY_REQUEST: 1Gi
527
+ KUBERNETES_MEMORY_LIMIT: 4Gi
528
+ script:
529
+ - collapseable_section_start "injectvars" "Injecting variables"
530
+ - export APP_PATH="api"
531
+ - collapseable_section_end "injectvars"
532
+ - cd api
533
+ - yarn npm audit --environment production
534
+ rules:
535
+ - when: never
536
+ if: $CI_PIPELINE_SOURCE == "trigger"
537
+ - if: $CI_MERGE_REQUEST_ID
538
+ needs: []
539
+ retry: *a1
540
+ interruptible: true
541
+ allow_failure: true
542
+ 'api 👮 lint | review ':
543
+ stage: test
544
+ image: path/to/docker/jobs-default:the-version
545
+ variables:
546
+ KUBERNETES_CPU_REQUEST: '0.45'
547
+ KUBERNETES_MEMORY_REQUEST: 1Gi
548
+ KUBERNETES_MEMORY_LIMIT: 4Gi
549
+ script:
550
+ - collapseable_section_start "injectvars" "Injecting variables"
551
+ - export APP_PATH="api"
552
+ - collapseable_section_end "injectvars"
553
+ - collapseable_section_start "nodeinstall" "Ensure node version"
554
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
555
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
556
+ - collapseable_section_end "nodeinstall"
557
+ - cd api
558
+ - collapseable_section_start "nodeinstall" "Ensure node version"
559
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
560
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
561
+ - collapseable_section_end "nodeinstall"
562
+ - collapseable_section_start "yarninstall" "Yarn install"
563
+ - yarn install --immutable
564
+ - collapseable_section_end "yarninstall"
565
+ - yarn lint
566
+ cache:
567
+ - key: api-yarn-mr$CI_MERGE_REQUEST_IID
568
+ policy: pull-push
569
+ paths:
570
+ - api/.yarn
571
+ fallback_keys:
572
+ - api-yarn
573
+ - key: api-node-modules-mr$CI_MERGE_REQUEST_IID
574
+ policy: pull-push
575
+ paths:
576
+ - api/node_modules
577
+ fallback_keys:
578
+ - api-node-modules
579
+ rules:
580
+ - when: never
581
+ if: $CI_PIPELINE_SOURCE == "trigger"
582
+ - if: $CI_MERGE_REQUEST_ID
583
+ needs: []
584
+ retry: *a1
585
+ interruptible: true
586
+ 'api 🧪 test | review ':
587
+ stage: test
588
+ image: path/to/docker/jobs-testing-chrome:the-version
589
+ variables:
590
+ KUBERNETES_CPU_REQUEST: '0.45'
591
+ KUBERNETES_MEMORY_REQUEST: 1Gi
592
+ KUBERNETES_MEMORY_LIMIT: 4Gi
593
+ script:
594
+ - collapseable_section_start "injectvars" "Injecting variables"
595
+ - export APP_PATH="api"
596
+ - collapseable_section_end "injectvars"
597
+ - collapseable_section_start "nodeinstall" "Ensure node version"
598
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
599
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
600
+ - collapseable_section_end "nodeinstall"
601
+ - cd api
602
+ - collapseable_section_start "nodeinstall" "Ensure node version"
603
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
604
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
605
+ - collapseable_section_end "nodeinstall"
606
+ - collapseable_section_start "yarninstall" "Yarn install"
607
+ - yarn install --immutable
608
+ - collapseable_section_end "yarninstall"
609
+ - yarn test
610
+ cache:
611
+ - key: api-yarn-mr$CI_MERGE_REQUEST_IID
612
+ policy: pull-push
613
+ paths:
614
+ - api/.yarn
615
+ fallback_keys:
616
+ - api-yarn
617
+ - key: api-node-modules-mr$CI_MERGE_REQUEST_IID
618
+ policy: pull-push
619
+ paths:
620
+ - api/node_modules
621
+ fallback_keys:
622
+ - api-node-modules
623
+ rules:
624
+ - when: never
625
+ if: $CI_PIPELINE_SOURCE == "trigger"
626
+ - if: $CI_MERGE_REQUEST_ID
627
+ needs: []
628
+ retry: *a1
629
+ interruptible: true
529
630
  'api 🔨 app | review ':
530
631
  stage: build
531
632
  image: path/to/docker/jobs-default:the-version
@@ -583,14 +684,18 @@ api 🧪 test:
583
684
  - collapseable_section_end "yarninstall"
584
685
  - yarn build
585
686
  cache:
586
- - key: api-yarn
687
+ - key: api-yarn-mr$CI_MERGE_REQUEST_IID
587
688
  policy: pull-push
588
689
  paths:
589
690
  - api/.yarn
590
- - key: api-node-modules
691
+ fallback_keys:
692
+ - api-yarn
693
+ - key: api-node-modules-mr$CI_MERGE_REQUEST_IID
591
694
  policy: pull-push
592
695
  paths:
593
696
  - api/node_modules
697
+ fallback_keys:
698
+ - api-node-modules
594
699
  artifacts:
595
700
  paths:
596
701
  - api/__build_info.json
@@ -598,6 +703,7 @@ api 🧪 test:
598
703
  - api/dist
599
704
  exclude:
600
705
  - api/.env
706
+ - api/.next/cache/**/*
601
707
  expire_in: 1 day
602
708
  when: always
603
709
  reports: {}
@@ -656,10 +762,12 @@ api 🧪 test:
656
762
  - docker push $DOCKER_CACHE_IMAGE
657
763
  - collapseable_section_end "docker-push"
658
764
  cache:
659
- - key: api-yarn
765
+ - key: api-yarn-mr$CI_MERGE_REQUEST_IID
660
766
  policy: pull
661
767
  paths:
662
768
  - api/.yarn
769
+ fallback_keys:
770
+ - api-yarn
663
771
  rules:
664
772
  - when: never
665
773
  if: $CI_PIPELINE_SOURCE == "trigger"
@@ -789,17 +897,17 @@ api 🧪 test:
789
897
  - when: on_success
790
898
  if: $CI_MERGE_REQUEST_ID
791
899
  needs:
792
- - job: api 👮 lint
900
+ - job: 'api 👮 lint | review '
793
901
  artifacts: false
794
902
  - job: 'api 🔨 app | review '
795
903
  artifacts: false
796
904
  - job: 'api 🔨 docker | review '
797
905
  artifacts: false
798
- - job: api 🧪 test
906
+ - job: 'api 🧪 test | review '
799
907
  artifacts: false
800
908
  - job: 'api 🧾 sbom | review '
801
909
  artifacts: true
802
- - job: api 🛡 audit
910
+ - job: 'api 🛡 audit | review '
803
911
  artifacts: false
804
912
  retry: *a1
805
913
  interruptible: true
@@ -913,6 +1021,7 @@ api 🧪 test:
913
1021
  - api/dist
914
1022
  exclude:
915
1023
  - api/.env
1024
+ - api/.next/cache/**/*
916
1025
  expire_in: 1 day
917
1026
  when: always
918
1027
  reports: {}
@@ -1215,6 +1324,7 @@ api 🧪 test:
1215
1324
  - api/dist
1216
1325
  exclude:
1217
1326
  - api/.env
1327
+ - api/.next/cache/**/*
1218
1328
  expire_in: 1 day
1219
1329
  when: always
1220
1330
  reports: {}
@@ -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
- api 🛡 audit:
106
+ 'api 🛡 audit | dev ':
107
107
  stage: test
108
108
  image: path/to/docker/jobs-default:the-version
109
109
  variables:
@@ -120,9 +120,6 @@ api 🛡 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 @@ api 🛡 audit:
131
128
  - stuck_or_timeout_failure
132
129
  interruptible: true
133
130
  allow_failure: true
134
- api 👮 lint:
131
+ 'api 👮 lint | dev ':
135
132
  stage: test
136
133
  image: path/to/docker/jobs-default:the-version
137
134
  variables:
@@ -168,13 +165,10 @@ api 👮 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
- api 🧪 test:
171
+ 'api 🧪 test | dev ':
178
172
  stage: test
179
173
  image: path/to/docker/jobs-testing-chrome:the-version
180
174
  variables:
@@ -211,9 +205,6 @@ api 🧪 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
@@ -291,6 +282,7 @@ api 🧪 test:
291
282
  - app/dist
292
283
  exclude:
293
284
  - app/.env
285
+ - app/.next/cache/**/*
294
286
  expire_in: 1 day
295
287
  when: always
296
288
  reports: {}
@@ -502,17 +494,17 @@ api 🧪 test:
502
494
  - when: on_success
503
495
  if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
504
496
  needs:
505
- - job: api 👮 lint
497
+ - job: 'api 👮 lint | dev '
506
498
  artifacts: false
507
499
  - job: 'api 🔨 app | dev '
508
500
  artifacts: false
509
501
  - job: 'api 🔨 docker | dev '
510
502
  artifacts: false
511
- - job: api 🧪 test
503
+ - job: 'api 🧪 test | dev '
512
504
  artifacts: false
513
505
  - job: 'api 🧾 sbom | dev '
514
506
  artifacts: true
515
- - job: api 🛡 audit
507
+ - job: 'api 🛡 audit | dev '
516
508
  artifacts: false
517
509
  retry: *a1
518
510
  interruptible: true
@@ -553,6 +545,115 @@ api 🧪 test:
553
545
  retry: *a1
554
546
  interruptible: true
555
547
  allow_failure: true
548
+ 'api 🛡 audit | review ':
549
+ stage: test
550
+ image: path/to/docker/jobs-default:the-version
551
+ variables:
552
+ KUBERNETES_CPU_REQUEST: '0.45'
553
+ KUBERNETES_MEMORY_REQUEST: 1Gi
554
+ KUBERNETES_MEMORY_LIMIT: 4Gi
555
+ script:
556
+ - collapseable_section_start "injectvars" "Injecting variables"
557
+ - export APP_PATH="app"
558
+ - collapseable_section_end "injectvars"
559
+ - cd app
560
+ - yarn npm audit --environment production
561
+ rules:
562
+ - when: never
563
+ if: $CI_PIPELINE_SOURCE == "trigger"
564
+ - if: $CI_MERGE_REQUEST_ID
565
+ needs: []
566
+ retry: *a1
567
+ interruptible: true
568
+ allow_failure: true
569
+ 'api 👮 lint | review ':
570
+ stage: test
571
+ image: path/to/docker/jobs-default:the-version
572
+ variables:
573
+ KUBERNETES_CPU_REQUEST: '0.45'
574
+ KUBERNETES_MEMORY_REQUEST: 1Gi
575
+ KUBERNETES_MEMORY_LIMIT: 4Gi
576
+ script:
577
+ - collapseable_section_start "injectvars" "Injecting variables"
578
+ - export APP_PATH="app"
579
+ - collapseable_section_end "injectvars"
580
+ - collapseable_section_start "nodeinstall" "Ensure node version"
581
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
582
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
583
+ - collapseable_section_end "nodeinstall"
584
+ - cd app
585
+ - collapseable_section_start "nodeinstall" "Ensure node version"
586
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
587
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
588
+ - collapseable_section_end "nodeinstall"
589
+ - collapseable_section_start "yarninstall" "Yarn install"
590
+ - yarn install --immutable
591
+ - collapseable_section_end "yarninstall"
592
+ - yarn lint
593
+ cache:
594
+ - key: app-yarn-mr$CI_MERGE_REQUEST_IID
595
+ policy: pull-push
596
+ paths:
597
+ - app/.yarn
598
+ fallback_keys:
599
+ - app-yarn
600
+ - key: app-node-modules-mr$CI_MERGE_REQUEST_IID
601
+ policy: pull-push
602
+ paths:
603
+ - app/node_modules
604
+ fallback_keys:
605
+ - app-node-modules
606
+ rules:
607
+ - when: never
608
+ if: $CI_PIPELINE_SOURCE == "trigger"
609
+ - if: $CI_MERGE_REQUEST_ID
610
+ needs: []
611
+ retry: *a1
612
+ interruptible: true
613
+ 'api 🧪 test | review ':
614
+ stage: test
615
+ image: path/to/docker/jobs-testing-chrome:the-version
616
+ variables:
617
+ KUBERNETES_CPU_REQUEST: '0.45'
618
+ KUBERNETES_MEMORY_REQUEST: 1Gi
619
+ KUBERNETES_MEMORY_LIMIT: 4Gi
620
+ script:
621
+ - collapseable_section_start "injectvars" "Injecting variables"
622
+ - export APP_PATH="app"
623
+ - collapseable_section_end "injectvars"
624
+ - collapseable_section_start "nodeinstall" "Ensure node version"
625
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
626
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
627
+ - collapseable_section_end "nodeinstall"
628
+ - cd app
629
+ - collapseable_section_start "nodeinstall" "Ensure node version"
630
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
631
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
632
+ - collapseable_section_end "nodeinstall"
633
+ - collapseable_section_start "yarninstall" "Yarn install"
634
+ - yarn install --immutable
635
+ - collapseable_section_end "yarninstall"
636
+ - yarn test
637
+ cache:
638
+ - key: app-yarn-mr$CI_MERGE_REQUEST_IID
639
+ policy: pull-push
640
+ paths:
641
+ - app/.yarn
642
+ fallback_keys:
643
+ - app-yarn
644
+ - key: app-node-modules-mr$CI_MERGE_REQUEST_IID
645
+ policy: pull-push
646
+ paths:
647
+ - app/node_modules
648
+ fallback_keys:
649
+ - app-node-modules
650
+ rules:
651
+ - when: never
652
+ if: $CI_PIPELINE_SOURCE == "trigger"
653
+ - if: $CI_MERGE_REQUEST_ID
654
+ needs: []
655
+ retry: *a1
656
+ interruptible: true
556
657
  'api 🔨 app | review ':
557
658
  stage: build
558
659
  image: path/to/docker/jobs-default:the-version
@@ -612,14 +713,18 @@ api 🧪 test:
612
713
  - collapseable_section_end "yarninstall"
613
714
  - yarn build
614
715
  cache:
615
- - key: app-yarn
716
+ - key: app-yarn-mr$CI_MERGE_REQUEST_IID
616
717
  policy: pull-push
617
718
  paths:
618
719
  - app/.yarn
619
- - key: app-node-modules
720
+ fallback_keys:
721
+ - app-yarn
722
+ - key: app-node-modules-mr$CI_MERGE_REQUEST_IID
620
723
  policy: pull-push
621
724
  paths:
622
725
  - app/node_modules
726
+ fallback_keys:
727
+ - app-node-modules
623
728
  artifacts:
624
729
  paths:
625
730
  - app/__build_info.json
@@ -627,6 +732,7 @@ api 🧪 test:
627
732
  - app/dist
628
733
  exclude:
629
734
  - app/.env
735
+ - app/.next/cache/**/*
630
736
  expire_in: 1 day
631
737
  when: always
632
738
  reports: {}
@@ -685,10 +791,12 @@ api 🧪 test:
685
791
  - docker push $DOCKER_CACHE_IMAGE
686
792
  - collapseable_section_end "docker-push"
687
793
  cache:
688
- - key: app-yarn
794
+ - key: app-yarn-mr$CI_MERGE_REQUEST_IID
689
795
  policy: pull
690
796
  paths:
691
797
  - app/.yarn
798
+ fallback_keys:
799
+ - app-yarn
692
800
  rules:
693
801
  - when: never
694
802
  if: $CI_PIPELINE_SOURCE == "trigger"
@@ -841,17 +949,17 @@ api 🧪 test:
841
949
  - when: on_success
842
950
  if: $CI_MERGE_REQUEST_ID
843
951
  needs:
844
- - job: api 👮 lint
952
+ - job: 'api 👮 lint | review '
845
953
  artifacts: false
846
954
  - job: 'api 🔨 app | review '
847
955
  artifacts: false
848
956
  - job: 'api 🔨 docker | review '
849
957
  artifacts: false
850
- - job: api 🧪 test
958
+ - job: 'api 🧪 test | review '
851
959
  artifacts: false
852
960
  - job: 'api 🧾 sbom | review '
853
961
  artifacts: true
854
- - job: api 🛡 audit
962
+ - job: 'api 🛡 audit | review '
855
963
  artifacts: false
856
964
  retry: *a1
857
965
  interruptible: true
@@ -969,6 +1077,7 @@ api 🧪 test:
969
1077
  - app/dist
970
1078
  exclude:
971
1079
  - app/.env
1080
+ - app/.next/cache/**/*
972
1081
  expire_in: 1 day
973
1082
  when: always
974
1083
  reports: {}
@@ -1298,6 +1407,7 @@ api 🧪 test:
1298
1407
  - app/dist
1299
1408
  exclude:
1300
1409
  - app/.env
1410
+ - app/.next/cache/**/*
1301
1411
  expire_in: 1 day
1302
1412
  when: always
1303
1413
  reports: {}