@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
@@ -301,6 +292,7 @@ api 🧪 test:
301
292
  - api/dist
302
293
  exclude:
303
294
  - api/.env
295
+ - api/.next/cache/**/*
304
296
  expire_in: 1 day
305
297
  when: always
306
298
  reports: {}
@@ -511,17 +503,17 @@ api 🧪 test:
511
503
  - when: on_success
512
504
  if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
513
505
  needs:
514
- - job: api 👮 lint
506
+ - job: 'api 👮 lint | dev '
515
507
  artifacts: false
516
508
  - job: 'api 🔨 app | dev '
517
509
  artifacts: false
518
510
  - job: 'api 🔨 docker | dev '
519
511
  artifacts: false
520
- - job: api 🧪 test
512
+ - job: 'api 🧪 test | dev '
521
513
  artifacts: false
522
514
  - job: 'api 🧾 sbom | dev '
523
515
  artifacts: true
524
- - job: api 🛡 audit
516
+ - job: 'api 🛡 audit | dev '
525
517
  artifacts: false
526
518
  retry: *a1
527
519
  interruptible: true
@@ -560,6 +552,115 @@ api 🧪 test:
560
552
  retry: *a1
561
553
  interruptible: true
562
554
  allow_failure: true
555
+ 'api 🛡 audit | review ':
556
+ stage: test
557
+ image: path/to/docker/jobs-default:the-version
558
+ variables:
559
+ KUBERNETES_CPU_REQUEST: '0.45'
560
+ KUBERNETES_MEMORY_REQUEST: 1Gi
561
+ KUBERNETES_MEMORY_LIMIT: 4Gi
562
+ script:
563
+ - collapseable_section_start "injectvars" "Injecting variables"
564
+ - export APP_PATH="api"
565
+ - collapseable_section_end "injectvars"
566
+ - cd api
567
+ - yarn npm audit --environment production
568
+ rules:
569
+ - when: never
570
+ if: $CI_PIPELINE_SOURCE == "trigger"
571
+ - if: $CI_MERGE_REQUEST_ID
572
+ needs: []
573
+ retry: *a1
574
+ interruptible: true
575
+ allow_failure: true
576
+ 'api 👮 lint | review ':
577
+ stage: test
578
+ image: path/to/docker/jobs-default:the-version
579
+ variables:
580
+ KUBERNETES_CPU_REQUEST: '0.45'
581
+ KUBERNETES_MEMORY_REQUEST: 1Gi
582
+ KUBERNETES_MEMORY_LIMIT: 4Gi
583
+ script:
584
+ - collapseable_section_start "injectvars" "Injecting variables"
585
+ - export APP_PATH="api"
586
+ - collapseable_section_end "injectvars"
587
+ - collapseable_section_start "nodeinstall" "Ensure node version"
588
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
589
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
590
+ - collapseable_section_end "nodeinstall"
591
+ - cd api
592
+ - collapseable_section_start "nodeinstall" "Ensure node version"
593
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
594
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
595
+ - collapseable_section_end "nodeinstall"
596
+ - collapseable_section_start "yarninstall" "Yarn install"
597
+ - yarn install --immutable
598
+ - collapseable_section_end "yarninstall"
599
+ - yarn lint
600
+ cache:
601
+ - key: api-yarn-mr$CI_MERGE_REQUEST_IID
602
+ policy: pull-push
603
+ paths:
604
+ - api/.yarn
605
+ fallback_keys:
606
+ - api-yarn
607
+ - key: api-node-modules-mr$CI_MERGE_REQUEST_IID
608
+ policy: pull-push
609
+ paths:
610
+ - api/node_modules
611
+ fallback_keys:
612
+ - api-node-modules
613
+ rules:
614
+ - when: never
615
+ if: $CI_PIPELINE_SOURCE == "trigger"
616
+ - if: $CI_MERGE_REQUEST_ID
617
+ needs: []
618
+ retry: *a1
619
+ interruptible: true
620
+ 'api 🧪 test | review ':
621
+ stage: test
622
+ image: path/to/docker/jobs-testing-chrome:the-version
623
+ variables:
624
+ KUBERNETES_CPU_REQUEST: '0.45'
625
+ KUBERNETES_MEMORY_REQUEST: 1Gi
626
+ KUBERNETES_MEMORY_LIMIT: 4Gi
627
+ script:
628
+ - collapseable_section_start "injectvars" "Injecting variables"
629
+ - export APP_PATH="api"
630
+ - collapseable_section_end "injectvars"
631
+ - collapseable_section_start "nodeinstall" "Ensure node version"
632
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
633
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
634
+ - collapseable_section_end "nodeinstall"
635
+ - cd api
636
+ - collapseable_section_start "nodeinstall" "Ensure node version"
637
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
638
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
639
+ - collapseable_section_end "nodeinstall"
640
+ - collapseable_section_start "yarninstall" "Yarn install"
641
+ - yarn install --immutable
642
+ - collapseable_section_end "yarninstall"
643
+ - yarn test
644
+ cache:
645
+ - key: api-yarn-mr$CI_MERGE_REQUEST_IID
646
+ policy: pull-push
647
+ paths:
648
+ - api/.yarn
649
+ fallback_keys:
650
+ - api-yarn
651
+ - key: api-node-modules-mr$CI_MERGE_REQUEST_IID
652
+ policy: pull-push
653
+ paths:
654
+ - api/node_modules
655
+ fallback_keys:
656
+ - api-node-modules
657
+ rules:
658
+ - when: never
659
+ if: $CI_PIPELINE_SOURCE == "trigger"
660
+ - if: $CI_MERGE_REQUEST_ID
661
+ needs: []
662
+ retry: *a1
663
+ interruptible: true
563
664
  'api 🔨 app | review ':
564
665
  stage: build
565
666
  image: path/to/docker/jobs-default:the-version
@@ -629,14 +730,18 @@ api 🧪 test:
629
730
  - collapseable_section_end "yarninstall"
630
731
  - yarn build
631
732
  cache:
632
- - key: api-yarn
733
+ - key: api-yarn-mr$CI_MERGE_REQUEST_IID
633
734
  policy: pull-push
634
735
  paths:
635
736
  - api/.yarn
636
- - key: api-node-modules
737
+ fallback_keys:
738
+ - api-yarn
739
+ - key: api-node-modules-mr$CI_MERGE_REQUEST_IID
637
740
  policy: pull-push
638
741
  paths:
639
742
  - api/node_modules
743
+ fallback_keys:
744
+ - api-node-modules
640
745
  artifacts:
641
746
  paths:
642
747
  - api/__build_info.json
@@ -644,6 +749,7 @@ api 🧪 test:
644
749
  - api/dist
645
750
  exclude:
646
751
  - api/.env
752
+ - api/.next/cache/**/*
647
753
  expire_in: 1 day
648
754
  when: always
649
755
  reports: {}
@@ -702,10 +808,12 @@ api 🧪 test:
702
808
  - docker push $DOCKER_CACHE_IMAGE
703
809
  - collapseable_section_end "docker-push"
704
810
  cache:
705
- - key: api-yarn
811
+ - key: api-yarn-mr$CI_MERGE_REQUEST_IID
706
812
  policy: pull
707
813
  paths:
708
814
  - api/.yarn
815
+ fallback_keys:
816
+ - api-yarn
709
817
  rules:
710
818
  - when: never
711
819
  if: $CI_PIPELINE_SOURCE == "trigger"
@@ -857,17 +965,17 @@ api 🧪 test:
857
965
  - when: on_success
858
966
  if: $CI_MERGE_REQUEST_ID
859
967
  needs:
860
- - job: api 👮 lint
968
+ - job: 'api 👮 lint | review '
861
969
  artifacts: false
862
970
  - job: 'api 🔨 app | review '
863
971
  artifacts: false
864
972
  - job: 'api 🔨 docker | review '
865
973
  artifacts: false
866
- - job: api 🧪 test
974
+ - job: 'api 🧪 test | review '
867
975
  artifacts: false
868
976
  - job: 'api 🧾 sbom | review '
869
977
  artifacts: true
870
- - job: api 🛡 audit
978
+ - job: 'api 🛡 audit | review '
871
979
  artifacts: false
872
980
  retry: *a1
873
981
  interruptible: true
@@ -996,6 +1104,7 @@ api 🧪 test:
996
1104
  - api/dist
997
1105
  exclude:
998
1106
  - api/.env
1107
+ - api/.next/cache/**/*
999
1108
  expire_in: 1 day
1000
1109
  when: always
1001
1110
  reports: {}
@@ -1332,6 +1441,7 @@ api 🧪 test:
1332
1441
  - api/dist
1333
1442
  exclude:
1334
1443
  - api/.env
1444
+ - api/.next/cache/**/*
1335
1445
  expire_in: 1 day
1336
1446
  when: always
1337
1447
  reports: {}
@@ -1584,7 +1694,7 @@ api 🧪 test:
1584
1694
  retry: *a1
1585
1695
  interruptible: true
1586
1696
  allow_failure: true
1587
- worker 🛡 audit:
1697
+ 'worker 🛡 audit | dev ':
1588
1698
  stage: test
1589
1699
  image: path/to/docker/jobs-default:the-version
1590
1700
  variables:
@@ -1601,14 +1711,11 @@ worker 🛡 audit:
1601
1711
  - when: never
1602
1712
  if: $CI_PIPELINE_SOURCE == "trigger"
1603
1713
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
1604
- - when: never
1605
- if: $CI_PIPELINE_SOURCE == "trigger"
1606
- - if: $CI_MERGE_REQUEST_ID
1607
1714
  needs: []
1608
1715
  retry: *a1
1609
1716
  interruptible: true
1610
1717
  allow_failure: true
1611
- worker 👮 lint:
1718
+ 'worker 👮 lint | dev ':
1612
1719
  stage: test
1613
1720
  image: path/to/docker/jobs-default:the-version
1614
1721
  variables:
@@ -1645,13 +1752,10 @@ worker 👮 lint:
1645
1752
  - when: never
1646
1753
  if: $CI_PIPELINE_SOURCE == "trigger"
1647
1754
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
1648
- - when: never
1649
- if: $CI_PIPELINE_SOURCE == "trigger"
1650
- - if: $CI_MERGE_REQUEST_ID
1651
1755
  needs: []
1652
1756
  retry: *a1
1653
1757
  interruptible: true
1654
- worker 🧪 test:
1758
+ 'worker 🧪 test | dev ':
1655
1759
  stage: test
1656
1760
  image: path/to/docker/jobs-testing-chrome:the-version
1657
1761
  variables:
@@ -1688,9 +1792,6 @@ worker 🧪 test:
1688
1792
  - when: never
1689
1793
  if: $CI_PIPELINE_SOURCE == "trigger"
1690
1794
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
1691
- - when: never
1692
- if: $CI_PIPELINE_SOURCE == "trigger"
1693
- - if: $CI_MERGE_REQUEST_ID
1694
1795
  needs: []
1695
1796
  retry: *a1
1696
1797
  interruptible: true
@@ -1778,6 +1879,7 @@ worker 🧪 test:
1778
1879
  - api/dist
1779
1880
  exclude:
1780
1881
  - api/.env
1882
+ - api/.next/cache/**/*
1781
1883
  expire_in: 1 day
1782
1884
  when: always
1783
1885
  reports: {}
@@ -1988,17 +2090,17 @@ worker 🧪 test:
1988
2090
  - when: on_success
1989
2091
  if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
1990
2092
  needs:
1991
- - job: worker 👮 lint
2093
+ - job: 'worker 👮 lint | dev '
1992
2094
  artifacts: false
1993
2095
  - job: 'worker 🔨 app | dev '
1994
2096
  artifacts: false
1995
2097
  - job: 'worker 🔨 docker | dev '
1996
2098
  artifacts: false
1997
- - job: worker 🧪 test
2099
+ - job: 'worker 🧪 test | dev '
1998
2100
  artifacts: false
1999
2101
  - job: 'worker 🧾 sbom | dev '
2000
2102
  artifacts: true
2001
- - job: worker 🛡 audit
2103
+ - job: 'worker 🛡 audit | dev '
2002
2104
  artifacts: false
2003
2105
  retry: *a1
2004
2106
  interruptible: true
@@ -2037,6 +2139,115 @@ worker 🧪 test:
2037
2139
  retry: *a1
2038
2140
  interruptible: true
2039
2141
  allow_failure: true
2142
+ 'worker 🛡 audit | review ':
2143
+ stage: test
2144
+ image: path/to/docker/jobs-default:the-version
2145
+ variables:
2146
+ KUBERNETES_CPU_REQUEST: '0.45'
2147
+ KUBERNETES_MEMORY_REQUEST: 1Gi
2148
+ KUBERNETES_MEMORY_LIMIT: 4Gi
2149
+ script:
2150
+ - collapseable_section_start "injectvars" "Injecting variables"
2151
+ - export APP_PATH="api"
2152
+ - collapseable_section_end "injectvars"
2153
+ - cd api
2154
+ - yarn npm audit --environment production
2155
+ rules:
2156
+ - when: never
2157
+ if: $CI_PIPELINE_SOURCE == "trigger"
2158
+ - if: $CI_MERGE_REQUEST_ID
2159
+ needs: []
2160
+ retry: *a1
2161
+ interruptible: true
2162
+ allow_failure: true
2163
+ 'worker 👮 lint | review ':
2164
+ stage: test
2165
+ image: path/to/docker/jobs-default:the-version
2166
+ variables:
2167
+ KUBERNETES_CPU_REQUEST: '0.45'
2168
+ KUBERNETES_MEMORY_REQUEST: 1Gi
2169
+ KUBERNETES_MEMORY_LIMIT: 4Gi
2170
+ script:
2171
+ - collapseable_section_start "injectvars" "Injecting variables"
2172
+ - export APP_PATH="api"
2173
+ - collapseable_section_end "injectvars"
2174
+ - collapseable_section_start "nodeinstall" "Ensure node version"
2175
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
2176
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
2177
+ - collapseable_section_end "nodeinstall"
2178
+ - cd api
2179
+ - collapseable_section_start "nodeinstall" "Ensure node version"
2180
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
2181
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
2182
+ - collapseable_section_end "nodeinstall"
2183
+ - collapseable_section_start "yarninstall" "Yarn install"
2184
+ - yarn install --immutable
2185
+ - collapseable_section_end "yarninstall"
2186
+ - yarn lint
2187
+ cache:
2188
+ - key: api-yarn-mr$CI_MERGE_REQUEST_IID
2189
+ policy: pull-push
2190
+ paths:
2191
+ - api/.yarn
2192
+ fallback_keys:
2193
+ - api-yarn
2194
+ - key: api-node-modules-mr$CI_MERGE_REQUEST_IID
2195
+ policy: pull-push
2196
+ paths:
2197
+ - api/node_modules
2198
+ fallback_keys:
2199
+ - api-node-modules
2200
+ rules:
2201
+ - when: never
2202
+ if: $CI_PIPELINE_SOURCE == "trigger"
2203
+ - if: $CI_MERGE_REQUEST_ID
2204
+ needs: []
2205
+ retry: *a1
2206
+ interruptible: true
2207
+ 'worker 🧪 test | review ':
2208
+ stage: test
2209
+ image: path/to/docker/jobs-testing-chrome:the-version
2210
+ variables:
2211
+ KUBERNETES_CPU_REQUEST: '0.45'
2212
+ KUBERNETES_MEMORY_REQUEST: 1Gi
2213
+ KUBERNETES_MEMORY_LIMIT: 4Gi
2214
+ script:
2215
+ - collapseable_section_start "injectvars" "Injecting variables"
2216
+ - export APP_PATH="api"
2217
+ - collapseable_section_end "injectvars"
2218
+ - collapseable_section_start "nodeinstall" "Ensure node version"
2219
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
2220
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
2221
+ - collapseable_section_end "nodeinstall"
2222
+ - cd api
2223
+ - collapseable_section_start "nodeinstall" "Ensure node version"
2224
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
2225
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
2226
+ - collapseable_section_end "nodeinstall"
2227
+ - collapseable_section_start "yarninstall" "Yarn install"
2228
+ - yarn install --immutable
2229
+ - collapseable_section_end "yarninstall"
2230
+ - yarn test
2231
+ cache:
2232
+ - key: api-yarn-mr$CI_MERGE_REQUEST_IID
2233
+ policy: pull-push
2234
+ paths:
2235
+ - api/.yarn
2236
+ fallback_keys:
2237
+ - api-yarn
2238
+ - key: api-node-modules-mr$CI_MERGE_REQUEST_IID
2239
+ policy: pull-push
2240
+ paths:
2241
+ - api/node_modules
2242
+ fallback_keys:
2243
+ - api-node-modules
2244
+ rules:
2245
+ - when: never
2246
+ if: $CI_PIPELINE_SOURCE == "trigger"
2247
+ - if: $CI_MERGE_REQUEST_ID
2248
+ needs: []
2249
+ retry: *a1
2250
+ interruptible: true
2040
2251
  'worker 🔨 app | review ':
2041
2252
  stage: build
2042
2253
  image: path/to/docker/jobs-default:the-version
@@ -2106,14 +2317,18 @@ worker 🧪 test:
2106
2317
  - collapseable_section_end "yarninstall"
2107
2318
  - yarn build:worker
2108
2319
  cache:
2109
- - key: api-yarn
2320
+ - key: api-yarn-mr$CI_MERGE_REQUEST_IID
2110
2321
  policy: pull-push
2111
2322
  paths:
2112
2323
  - api/.yarn
2113
- - key: api-node-modules
2324
+ fallback_keys:
2325
+ - api-yarn
2326
+ - key: api-node-modules-mr$CI_MERGE_REQUEST_IID
2114
2327
  policy: pull-push
2115
2328
  paths:
2116
2329
  - api/node_modules
2330
+ fallback_keys:
2331
+ - api-node-modules
2117
2332
  artifacts:
2118
2333
  paths:
2119
2334
  - api/__build_info.json
@@ -2121,6 +2336,7 @@ worker 🧪 test:
2121
2336
  - api/dist
2122
2337
  exclude:
2123
2338
  - api/.env
2339
+ - api/.next/cache/**/*
2124
2340
  expire_in: 1 day
2125
2341
  when: always
2126
2342
  reports: {}
@@ -2179,10 +2395,12 @@ worker 🧪 test:
2179
2395
  - docker push $DOCKER_CACHE_IMAGE
2180
2396
  - collapseable_section_end "docker-push"
2181
2397
  cache:
2182
- - key: api-yarn
2398
+ - key: api-yarn-mr$CI_MERGE_REQUEST_IID
2183
2399
  policy: pull
2184
2400
  paths:
2185
2401
  - api/.yarn
2402
+ fallback_keys:
2403
+ - api-yarn
2186
2404
  rules:
2187
2405
  - when: never
2188
2406
  if: $CI_PIPELINE_SOURCE == "trigger"
@@ -2334,17 +2552,17 @@ worker 🧪 test:
2334
2552
  - when: on_success
2335
2553
  if: $CI_MERGE_REQUEST_ID
2336
2554
  needs:
2337
- - job: worker 👮 lint
2555
+ - job: 'worker 👮 lint | review '
2338
2556
  artifacts: false
2339
2557
  - job: 'worker 🔨 app | review '
2340
2558
  artifacts: false
2341
2559
  - job: 'worker 🔨 docker | review '
2342
2560
  artifacts: false
2343
- - job: worker 🧪 test
2561
+ - job: 'worker 🧪 test | review '
2344
2562
  artifacts: false
2345
2563
  - job: 'worker 🧾 sbom | review '
2346
2564
  artifacts: true
2347
- - job: worker 🛡 audit
2565
+ - job: 'worker 🛡 audit | review '
2348
2566
  artifacts: false
2349
2567
  retry: *a1
2350
2568
  interruptible: true
@@ -2473,6 +2691,7 @@ worker 🧪 test:
2473
2691
  - api/dist
2474
2692
  exclude:
2475
2693
  - api/.env
2694
+ - api/.next/cache/**/*
2476
2695
  expire_in: 1 day
2477
2696
  when: always
2478
2697
  reports: {}
@@ -2809,6 +3028,7 @@ worker 🧪 test:
2809
3028
  - api/dist
2810
3029
  exclude:
2811
3030
  - api/.env
3031
+ - api/.next/cache/**/*
2812
3032
  expire_in: 1 day
2813
3033
  when: always
2814
3034
  reports: {}