@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
- app1 ๐Ÿ›ก audit:
106
+ 'app1 ๐Ÿ›ก audit | dev ':
107
107
  stage: test
108
108
  image: path/to/docker/jobs-default:the-version
109
109
  variables:
@@ -120,9 +120,6 @@ app1 ๐Ÿ›ก 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 @@ app1 ๐Ÿ›ก audit:
131
128
  - stuck_or_timeout_failure
132
129
  interruptible: true
133
130
  allow_failure: true
134
- app1 ๐Ÿ‘ฎ lint:
131
+ 'app1 ๐Ÿ‘ฎ lint | dev ':
135
132
  stage: test
136
133
  image: path/to/docker/jobs-default:the-version
137
134
  variables:
@@ -168,13 +165,10 @@ app1 ๐Ÿ‘ฎ 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
- app1 ๐Ÿงช test:
171
+ 'app1 ๐Ÿงช test | dev ':
178
172
  stage: test
179
173
  image: path/to/docker/jobs-testing-chrome:the-version
180
174
  variables:
@@ -211,9 +205,6 @@ app1 ๐Ÿงช 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
@@ -312,6 +303,7 @@ app1 ๐Ÿงช test:
312
303
  - app1/dist
313
304
  exclude:
314
305
  - app1/.env
306
+ - app1/.next/cache/**/*
315
307
  expire_in: 1 day
316
308
  when: always
317
309
  reports: {}
@@ -525,17 +517,17 @@ app1 ๐Ÿงช test:
525
517
  - when: on_success
526
518
  if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
527
519
  needs:
528
- - job: app1 ๐Ÿ‘ฎ lint
520
+ - job: 'app1 ๐Ÿ‘ฎ lint | dev '
529
521
  artifacts: false
530
522
  - job: 'app1 ๐Ÿ”จ app | dev '
531
523
  artifacts: false
532
524
  - job: 'app1 ๐Ÿ”จ docker | dev '
533
525
  artifacts: false
534
- - job: app1 ๐Ÿงช test
526
+ - job: 'app1 ๐Ÿงช test | dev '
535
527
  artifacts: false
536
528
  - job: 'app1 ๐Ÿงพ sbom | dev '
537
529
  artifacts: true
538
- - job: app1 ๐Ÿ›ก audit
530
+ - job: 'app1 ๐Ÿ›ก audit | dev '
539
531
  artifacts: false
540
532
  retry: *a1
541
533
  interruptible: true
@@ -574,6 +566,115 @@ app1 ๐Ÿงช test:
574
566
  retry: *a1
575
567
  interruptible: true
576
568
  allow_failure: true
569
+ 'app1 ๐Ÿ›ก audit | 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="app1"
579
+ - collapseable_section_end "injectvars"
580
+ - cd app1
581
+ - yarn npm audit --environment production
582
+ rules:
583
+ - when: never
584
+ if: $CI_PIPELINE_SOURCE == "trigger"
585
+ - if: $CI_MERGE_REQUEST_ID
586
+ needs: []
587
+ retry: *a1
588
+ interruptible: true
589
+ allow_failure: true
590
+ 'app1 ๐Ÿ‘ฎ lint | review ':
591
+ stage: test
592
+ image: path/to/docker/jobs-default:the-version
593
+ variables:
594
+ KUBERNETES_CPU_REQUEST: '0.45'
595
+ KUBERNETES_MEMORY_REQUEST: 1Gi
596
+ KUBERNETES_MEMORY_LIMIT: 4Gi
597
+ script:
598
+ - collapseable_section_start "injectvars" "Injecting variables"
599
+ - export APP_PATH="app1"
600
+ - collapseable_section_end "injectvars"
601
+ - collapseable_section_start "nodeinstall" "Ensure node version"
602
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
603
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
604
+ - collapseable_section_end "nodeinstall"
605
+ - cd app1
606
+ - collapseable_section_start "nodeinstall" "Ensure node version"
607
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
608
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
609
+ - collapseable_section_end "nodeinstall"
610
+ - collapseable_section_start "yarninstall" "Yarn install"
611
+ - yarn install --immutable
612
+ - collapseable_section_end "yarninstall"
613
+ - yarn lint
614
+ cache:
615
+ - key: app1-yarn-mr$CI_MERGE_REQUEST_IID
616
+ policy: pull-push
617
+ paths:
618
+ - app1/.yarn
619
+ fallback_keys:
620
+ - app1-yarn
621
+ - key: app1-node-modules-mr$CI_MERGE_REQUEST_IID
622
+ policy: pull-push
623
+ paths:
624
+ - app1/node_modules
625
+ fallback_keys:
626
+ - app1-node-modules
627
+ rules:
628
+ - when: never
629
+ if: $CI_PIPELINE_SOURCE == "trigger"
630
+ - if: $CI_MERGE_REQUEST_ID
631
+ needs: []
632
+ retry: *a1
633
+ interruptible: true
634
+ 'app1 ๐Ÿงช test | review ':
635
+ stage: test
636
+ image: path/to/docker/jobs-testing-chrome:the-version
637
+ variables:
638
+ KUBERNETES_CPU_REQUEST: '0.45'
639
+ KUBERNETES_MEMORY_REQUEST: 1Gi
640
+ KUBERNETES_MEMORY_LIMIT: 4Gi
641
+ script:
642
+ - collapseable_section_start "injectvars" "Injecting variables"
643
+ - export APP_PATH="app1"
644
+ - collapseable_section_end "injectvars"
645
+ - collapseable_section_start "nodeinstall" "Ensure node version"
646
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
647
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
648
+ - collapseable_section_end "nodeinstall"
649
+ - cd app1
650
+ - collapseable_section_start "nodeinstall" "Ensure node version"
651
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
652
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
653
+ - collapseable_section_end "nodeinstall"
654
+ - collapseable_section_start "yarninstall" "Yarn install"
655
+ - yarn install --immutable
656
+ - collapseable_section_end "yarninstall"
657
+ - yarn test
658
+ cache:
659
+ - key: app1-yarn-mr$CI_MERGE_REQUEST_IID
660
+ policy: pull-push
661
+ paths:
662
+ - app1/.yarn
663
+ fallback_keys:
664
+ - app1-yarn
665
+ - key: app1-node-modules-mr$CI_MERGE_REQUEST_IID
666
+ policy: pull-push
667
+ paths:
668
+ - app1/node_modules
669
+ fallback_keys:
670
+ - app1-node-modules
671
+ rules:
672
+ - when: never
673
+ if: $CI_PIPELINE_SOURCE == "trigger"
674
+ - if: $CI_MERGE_REQUEST_ID
675
+ needs: []
676
+ retry: *a1
677
+ interruptible: true
577
678
  'app1 ๐Ÿ”จ app | review ':
578
679
  stage: build
579
680
  image: path/to/docker/jobs-default:the-version
@@ -654,14 +755,18 @@ app1 ๐Ÿงช test:
654
755
  - collapseable_section_end "yarninstall"
655
756
  - yarn build
656
757
  cache:
657
- - key: app1-yarn
758
+ - key: app1-yarn-mr$CI_MERGE_REQUEST_IID
658
759
  policy: pull-push
659
760
  paths:
660
761
  - app1/.yarn
661
- - key: app1-node-modules
762
+ fallback_keys:
763
+ - app1-yarn
764
+ - key: app1-node-modules-mr$CI_MERGE_REQUEST_IID
662
765
  policy: pull-push
663
766
  paths:
664
767
  - app1/node_modules
768
+ fallback_keys:
769
+ - app1-node-modules
665
770
  artifacts:
666
771
  paths:
667
772
  - app1/__build_info.json
@@ -669,6 +774,7 @@ app1 ๐Ÿงช test:
669
774
  - app1/dist
670
775
  exclude:
671
776
  - app1/.env
777
+ - app1/.next/cache/**/*
672
778
  expire_in: 1 day
673
779
  when: always
674
780
  reports: {}
@@ -727,10 +833,12 @@ app1 ๐Ÿงช test:
727
833
  - docker push $DOCKER_CACHE_IMAGE
728
834
  - collapseable_section_end "docker-push"
729
835
  cache:
730
- - key: app1-yarn
836
+ - key: app1-yarn-mr$CI_MERGE_REQUEST_IID
731
837
  policy: pull
732
838
  paths:
733
839
  - app1/.yarn
840
+ fallback_keys:
841
+ - app1-yarn
734
842
  rules:
735
843
  - when: never
736
844
  if: $CI_PIPELINE_SOURCE == "trigger"
@@ -885,17 +993,17 @@ app1 ๐Ÿงช test:
885
993
  - when: on_success
886
994
  if: $CI_MERGE_REQUEST_ID
887
995
  needs:
888
- - job: app1 ๐Ÿ‘ฎ lint
996
+ - job: 'app1 ๐Ÿ‘ฎ lint | review '
889
997
  artifacts: false
890
998
  - job: 'app1 ๐Ÿ”จ app | review '
891
999
  artifacts: false
892
1000
  - job: 'app1 ๐Ÿ”จ docker | review '
893
1001
  artifacts: false
894
- - job: app1 ๐Ÿงช test
1002
+ - job: 'app1 ๐Ÿงช test | review '
895
1003
  artifacts: false
896
1004
  - job: 'app1 ๐Ÿงพ sbom | review '
897
1005
  artifacts: true
898
- - job: app1 ๐Ÿ›ก audit
1006
+ - job: 'app1 ๐Ÿ›ก audit | review '
899
1007
  artifacts: false
900
1008
  retry: *a1
901
1009
  interruptible: true
@@ -1032,6 +1140,7 @@ app1 ๐Ÿงช test:
1032
1140
  - app1/dist
1033
1141
  exclude:
1034
1142
  - app1/.env
1143
+ - app1/.next/cache/**/*
1035
1144
  expire_in: 1 day
1036
1145
  when: always
1037
1146
  reports: {}
@@ -1382,6 +1491,7 @@ app1 ๐Ÿงช test:
1382
1491
  - app1/dist
1383
1492
  exclude:
1384
1493
  - app1/.env
1494
+ - app1/.next/cache/**/*
1385
1495
  expire_in: 1 day
1386
1496
  when: always
1387
1497
  reports: {}
@@ -1637,7 +1747,7 @@ app1 ๐Ÿงช test:
1637
1747
  retry: *a1
1638
1748
  interruptible: true
1639
1749
  allow_failure: true
1640
- app2 ๐Ÿ›ก audit:
1750
+ 'app2 ๐Ÿ›ก audit | dev ':
1641
1751
  stage: test
1642
1752
  image: path/to/docker/jobs-default:the-version
1643
1753
  variables:
@@ -1654,14 +1764,11 @@ app2 ๐Ÿ›ก audit:
1654
1764
  - when: never
1655
1765
  if: $CI_PIPELINE_SOURCE == "trigger"
1656
1766
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
1657
- - when: never
1658
- if: $CI_PIPELINE_SOURCE == "trigger"
1659
- - if: $CI_MERGE_REQUEST_ID
1660
1767
  needs: []
1661
1768
  retry: *a1
1662
1769
  interruptible: true
1663
1770
  allow_failure: true
1664
- app2 ๐Ÿ‘ฎ lint:
1771
+ 'app2 ๐Ÿ‘ฎ lint | dev ':
1665
1772
  stage: test
1666
1773
  image: path/to/docker/jobs-default:the-version
1667
1774
  variables:
@@ -1698,13 +1805,10 @@ app2 ๐Ÿ‘ฎ lint:
1698
1805
  - when: never
1699
1806
  if: $CI_PIPELINE_SOURCE == "trigger"
1700
1807
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
1701
- - when: never
1702
- if: $CI_PIPELINE_SOURCE == "trigger"
1703
- - if: $CI_MERGE_REQUEST_ID
1704
1808
  needs: []
1705
1809
  retry: *a1
1706
1810
  interruptible: true
1707
- app2 ๐Ÿงช test:
1811
+ 'app2 ๐Ÿงช test | dev ':
1708
1812
  stage: test
1709
1813
  image: path/to/docker/jobs-testing-chrome:the-version
1710
1814
  variables:
@@ -1741,9 +1845,6 @@ app2 ๐Ÿงช test:
1741
1845
  - when: never
1742
1846
  if: $CI_PIPELINE_SOURCE == "trigger"
1743
1847
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
1744
- - when: never
1745
- if: $CI_PIPELINE_SOURCE == "trigger"
1746
- - if: $CI_MERGE_REQUEST_ID
1747
1848
  needs: []
1748
1849
  retry: *a1
1749
1850
  interruptible: true
@@ -1852,6 +1953,7 @@ app2 ๐Ÿงช test:
1852
1953
  - app2/dist
1853
1954
  exclude:
1854
1955
  - app2/.env
1956
+ - app2/.next/cache/**/*
1855
1957
  expire_in: 1 day
1856
1958
  when: always
1857
1959
  reports: {}
@@ -2075,17 +2177,17 @@ app2 ๐Ÿงช test:
2075
2177
  - when: on_success
2076
2178
  if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
2077
2179
  needs:
2078
- - job: app2 ๐Ÿ‘ฎ lint
2180
+ - job: 'app2 ๐Ÿ‘ฎ lint | dev '
2079
2181
  artifacts: false
2080
2182
  - job: 'app2 ๐Ÿ”จ app | dev '
2081
2183
  artifacts: false
2082
2184
  - job: 'app2 ๐Ÿ”จ docker | dev '
2083
2185
  artifacts: false
2084
- - job: app2 ๐Ÿงช test
2186
+ - job: 'app2 ๐Ÿงช test | dev '
2085
2187
  artifacts: false
2086
2188
  - job: 'app2 ๐Ÿงพ sbom | dev '
2087
2189
  artifacts: true
2088
- - job: app2 ๐Ÿ›ก audit
2190
+ - job: 'app2 ๐Ÿ›ก audit | dev '
2089
2191
  artifacts: false
2090
2192
  retry: *a1
2091
2193
  interruptible: true
@@ -2124,6 +2226,115 @@ app2 ๐Ÿงช test:
2124
2226
  retry: *a1
2125
2227
  interruptible: true
2126
2228
  allow_failure: true
2229
+ 'app2 ๐Ÿ›ก audit | review ':
2230
+ stage: test
2231
+ image: path/to/docker/jobs-default:the-version
2232
+ variables:
2233
+ KUBERNETES_CPU_REQUEST: '0.45'
2234
+ KUBERNETES_MEMORY_REQUEST: 1Gi
2235
+ KUBERNETES_MEMORY_LIMIT: 4Gi
2236
+ script:
2237
+ - collapseable_section_start "injectvars" "Injecting variables"
2238
+ - export APP_PATH="app2"
2239
+ - collapseable_section_end "injectvars"
2240
+ - cd app2
2241
+ - yarn npm audit --environment production
2242
+ rules:
2243
+ - when: never
2244
+ if: $CI_PIPELINE_SOURCE == "trigger"
2245
+ - if: $CI_MERGE_REQUEST_ID
2246
+ needs: []
2247
+ retry: *a1
2248
+ interruptible: true
2249
+ allow_failure: true
2250
+ 'app2 ๐Ÿ‘ฎ lint | review ':
2251
+ stage: test
2252
+ image: path/to/docker/jobs-default:the-version
2253
+ variables:
2254
+ KUBERNETES_CPU_REQUEST: '0.45'
2255
+ KUBERNETES_MEMORY_REQUEST: 1Gi
2256
+ KUBERNETES_MEMORY_LIMIT: 4Gi
2257
+ script:
2258
+ - collapseable_section_start "injectvars" "Injecting variables"
2259
+ - export APP_PATH="app2"
2260
+ - collapseable_section_end "injectvars"
2261
+ - collapseable_section_start "nodeinstall" "Ensure node version"
2262
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
2263
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
2264
+ - collapseable_section_end "nodeinstall"
2265
+ - cd app2
2266
+ - collapseable_section_start "nodeinstall" "Ensure node version"
2267
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
2268
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
2269
+ - collapseable_section_end "nodeinstall"
2270
+ - collapseable_section_start "yarninstall" "Yarn install"
2271
+ - yarn install --immutable
2272
+ - collapseable_section_end "yarninstall"
2273
+ - yarn lint
2274
+ cache:
2275
+ - key: app2-yarn-mr$CI_MERGE_REQUEST_IID
2276
+ policy: pull-push
2277
+ paths:
2278
+ - app2/.yarn
2279
+ fallback_keys:
2280
+ - app2-yarn
2281
+ - key: app2-node-modules-mr$CI_MERGE_REQUEST_IID
2282
+ policy: pull-push
2283
+ paths:
2284
+ - app2/node_modules
2285
+ fallback_keys:
2286
+ - app2-node-modules
2287
+ rules:
2288
+ - when: never
2289
+ if: $CI_PIPELINE_SOURCE == "trigger"
2290
+ - if: $CI_MERGE_REQUEST_ID
2291
+ needs: []
2292
+ retry: *a1
2293
+ interruptible: true
2294
+ 'app2 ๐Ÿงช test | review ':
2295
+ stage: test
2296
+ image: path/to/docker/jobs-testing-chrome:the-version
2297
+ variables:
2298
+ KUBERNETES_CPU_REQUEST: '0.45'
2299
+ KUBERNETES_MEMORY_REQUEST: 1Gi
2300
+ KUBERNETES_MEMORY_LIMIT: 4Gi
2301
+ script:
2302
+ - collapseable_section_start "injectvars" "Injecting variables"
2303
+ - export APP_PATH="app2"
2304
+ - collapseable_section_end "injectvars"
2305
+ - collapseable_section_start "nodeinstall" "Ensure node version"
2306
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
2307
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
2308
+ - collapseable_section_end "nodeinstall"
2309
+ - cd app2
2310
+ - collapseable_section_start "nodeinstall" "Ensure node version"
2311
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
2312
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
2313
+ - collapseable_section_end "nodeinstall"
2314
+ - collapseable_section_start "yarninstall" "Yarn install"
2315
+ - yarn install --immutable
2316
+ - collapseable_section_end "yarninstall"
2317
+ - yarn test
2318
+ cache:
2319
+ - key: app2-yarn-mr$CI_MERGE_REQUEST_IID
2320
+ policy: pull-push
2321
+ paths:
2322
+ - app2/.yarn
2323
+ fallback_keys:
2324
+ - app2-yarn
2325
+ - key: app2-node-modules-mr$CI_MERGE_REQUEST_IID
2326
+ policy: pull-push
2327
+ paths:
2328
+ - app2/node_modules
2329
+ fallback_keys:
2330
+ - app2-node-modules
2331
+ rules:
2332
+ - when: never
2333
+ if: $CI_PIPELINE_SOURCE == "trigger"
2334
+ - if: $CI_MERGE_REQUEST_ID
2335
+ needs: []
2336
+ retry: *a1
2337
+ interruptible: true
2127
2338
  'app2 ๐Ÿ”จ app | review ':
2128
2339
  stage: build
2129
2340
  image: path/to/docker/jobs-default:the-version
@@ -2214,14 +2425,18 @@ app2 ๐Ÿงช test:
2214
2425
  - collapseable_section_end "yarninstall"
2215
2426
  - yarn build
2216
2427
  cache:
2217
- - key: app2-yarn
2428
+ - key: app2-yarn-mr$CI_MERGE_REQUEST_IID
2218
2429
  policy: pull-push
2219
2430
  paths:
2220
2431
  - app2/.yarn
2221
- - key: app2-node-modules
2432
+ fallback_keys:
2433
+ - app2-yarn
2434
+ - key: app2-node-modules-mr$CI_MERGE_REQUEST_IID
2222
2435
  policy: pull-push
2223
2436
  paths:
2224
2437
  - app2/node_modules
2438
+ fallback_keys:
2439
+ - app2-node-modules
2225
2440
  artifacts:
2226
2441
  paths:
2227
2442
  - app2/__build_info.json
@@ -2229,6 +2444,7 @@ app2 ๐Ÿงช test:
2229
2444
  - app2/dist
2230
2445
  exclude:
2231
2446
  - app2/.env
2447
+ - app2/.next/cache/**/*
2232
2448
  expire_in: 1 day
2233
2449
  when: always
2234
2450
  reports: {}
@@ -2287,10 +2503,12 @@ app2 ๐Ÿงช test:
2287
2503
  - docker push $DOCKER_CACHE_IMAGE
2288
2504
  - collapseable_section_end "docker-push"
2289
2505
  cache:
2290
- - key: app2-yarn
2506
+ - key: app2-yarn-mr$CI_MERGE_REQUEST_IID
2291
2507
  policy: pull
2292
2508
  paths:
2293
2509
  - app2/.yarn
2510
+ fallback_keys:
2511
+ - app2-yarn
2294
2512
  rules:
2295
2513
  - when: never
2296
2514
  if: $CI_PIPELINE_SOURCE == "trigger"
@@ -2455,17 +2673,17 @@ app2 ๐Ÿงช test:
2455
2673
  - when: on_success
2456
2674
  if: $CI_MERGE_REQUEST_ID
2457
2675
  needs:
2458
- - job: app2 ๐Ÿ‘ฎ lint
2676
+ - job: 'app2 ๐Ÿ‘ฎ lint | review '
2459
2677
  artifacts: false
2460
2678
  - job: 'app2 ๐Ÿ”จ app | review '
2461
2679
  artifacts: false
2462
2680
  - job: 'app2 ๐Ÿ”จ docker | review '
2463
2681
  artifacts: false
2464
- - job: app2 ๐Ÿงช test
2682
+ - job: 'app2 ๐Ÿงช test | review '
2465
2683
  artifacts: false
2466
2684
  - job: 'app2 ๐Ÿงพ sbom | review '
2467
2685
  artifacts: true
2468
- - job: app2 ๐Ÿ›ก audit
2686
+ - job: 'app2 ๐Ÿ›ก audit | review '
2469
2687
  artifacts: false
2470
2688
  retry: *a1
2471
2689
  interruptible: true
@@ -2612,6 +2830,7 @@ app2 ๐Ÿงช test:
2612
2830
  - app2/dist
2613
2831
  exclude:
2614
2832
  - app2/.env
2833
+ - app2/.next/cache/**/*
2615
2834
  expire_in: 1 day
2616
2835
  when: always
2617
2836
  reports: {}
@@ -2982,6 +3201,7 @@ app2 ๐Ÿงช test:
2982
3201
  - app2/dist
2983
3202
  exclude:
2984
3203
  - app2/.env
3204
+ - app2/.next/cache/**/*
2985
3205
  expire_in: 1 day
2986
3206
  when: always
2987
3207
  reports: {}
@@ -3247,7 +3467,7 @@ app2 ๐Ÿงช test:
3247
3467
  retry: *a1
3248
3468
  interruptible: true
3249
3469
  allow_failure: true
3250
- kube ๐Ÿ›ก audit:
3470
+ 'kube ๐Ÿ›ก audit | dev ':
3251
3471
  stage: test
3252
3472
  image: path/to/docker/jobs-default:the-version
3253
3473
  variables:
@@ -3264,14 +3484,11 @@ kube ๐Ÿ›ก audit:
3264
3484
  - when: never
3265
3485
  if: $CI_PIPELINE_SOURCE == "trigger"
3266
3486
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
3267
- - when: never
3268
- if: $CI_PIPELINE_SOURCE == "trigger"
3269
- - if: $CI_MERGE_REQUEST_ID
3270
3487
  needs: []
3271
3488
  retry: *a1
3272
3489
  interruptible: true
3273
3490
  allow_failure: true
3274
- kube ๐Ÿ‘ฎ lint:
3491
+ 'kube ๐Ÿ‘ฎ lint | dev ':
3275
3492
  stage: test
3276
3493
  image: path/to/docker/jobs-default:the-version
3277
3494
  variables:
@@ -3308,13 +3525,10 @@ kube ๐Ÿ‘ฎ lint:
3308
3525
  - when: never
3309
3526
  if: $CI_PIPELINE_SOURCE == "trigger"
3310
3527
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
3311
- - when: never
3312
- if: $CI_PIPELINE_SOURCE == "trigger"
3313
- - if: $CI_MERGE_REQUEST_ID
3314
3528
  needs: []
3315
3529
  retry: *a1
3316
3530
  interruptible: true
3317
- kube ๐Ÿงช test:
3531
+ 'kube ๐Ÿงช test | dev ':
3318
3532
  stage: test
3319
3533
  image: path/to/docker/jobs-testing-chrome:the-version
3320
3534
  variables:
@@ -3351,9 +3565,6 @@ kube ๐Ÿงช test:
3351
3565
  - when: never
3352
3566
  if: $CI_PIPELINE_SOURCE == "trigger"
3353
3567
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
3354
- - when: never
3355
- if: $CI_PIPELINE_SOURCE == "trigger"
3356
- - if: $CI_MERGE_REQUEST_ID
3357
3568
  needs: []
3358
3569
  retry: *a1
3359
3570
  interruptible: true
@@ -3497,6 +3708,7 @@ kube ๐Ÿงช test:
3497
3708
  - kube/dist
3498
3709
  exclude:
3499
3710
  - kube/.env
3711
+ - kube/.next/cache/**/*
3500
3712
  expire_in: 1 day
3501
3713
  when: always
3502
3714
  reports: {}
@@ -3773,17 +3985,17 @@ kube ๐Ÿงช test:
3773
3985
  - when: on_success
3774
3986
  if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
3775
3987
  needs:
3776
- - job: kube ๐Ÿ‘ฎ lint
3988
+ - job: 'kube ๐Ÿ‘ฎ lint | dev '
3777
3989
  artifacts: false
3778
3990
  - job: 'kube ๐Ÿ”จ app | dev '
3779
3991
  artifacts: false
3780
3992
  - job: 'kube ๐Ÿ”จ docker | dev '
3781
3993
  artifacts: false
3782
- - job: kube ๐Ÿงช test
3994
+ - job: 'kube ๐Ÿงช test | dev '
3783
3995
  artifacts: false
3784
3996
  - job: 'kube ๐Ÿงพ sbom | dev '
3785
3997
  artifacts: true
3786
- - job: kube ๐Ÿ›ก audit
3998
+ - job: 'kube ๐Ÿ›ก audit | dev '
3787
3999
  artifacts: false
3788
4000
  retry: *a1
3789
4001
  interruptible: true
@@ -3960,6 +4172,115 @@ kube ๐Ÿงช test:
3960
4172
  retry: *a1
3961
4173
  interruptible: true
3962
4174
  allow_failure: true
4175
+ 'kube ๐Ÿ›ก audit | review ':
4176
+ stage: test
4177
+ image: path/to/docker/jobs-default:the-version
4178
+ variables:
4179
+ KUBERNETES_CPU_REQUEST: '0.45'
4180
+ KUBERNETES_MEMORY_REQUEST: 1Gi
4181
+ KUBERNETES_MEMORY_LIMIT: 4Gi
4182
+ script:
4183
+ - collapseable_section_start "injectvars" "Injecting variables"
4184
+ - export APP_PATH="kube"
4185
+ - collapseable_section_end "injectvars"
4186
+ - cd kube
4187
+ - yarn npm audit --environment production
4188
+ rules:
4189
+ - when: never
4190
+ if: $CI_PIPELINE_SOURCE == "trigger"
4191
+ - if: $CI_MERGE_REQUEST_ID
4192
+ needs: []
4193
+ retry: *a1
4194
+ interruptible: true
4195
+ allow_failure: true
4196
+ 'kube ๐Ÿ‘ฎ lint | review ':
4197
+ stage: test
4198
+ image: path/to/docker/jobs-default:the-version
4199
+ variables:
4200
+ KUBERNETES_CPU_REQUEST: '0.45'
4201
+ KUBERNETES_MEMORY_REQUEST: 1Gi
4202
+ KUBERNETES_MEMORY_LIMIT: 4Gi
4203
+ script:
4204
+ - collapseable_section_start "injectvars" "Injecting variables"
4205
+ - export APP_PATH="kube"
4206
+ - collapseable_section_end "injectvars"
4207
+ - collapseable_section_start "nodeinstall" "Ensure node version"
4208
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
4209
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
4210
+ - collapseable_section_end "nodeinstall"
4211
+ - cd kube
4212
+ - collapseable_section_start "nodeinstall" "Ensure node version"
4213
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
4214
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
4215
+ - collapseable_section_end "nodeinstall"
4216
+ - collapseable_section_start "yarninstall" "Yarn install"
4217
+ - yarn install --immutable
4218
+ - collapseable_section_end "yarninstall"
4219
+ - yarn lint
4220
+ cache:
4221
+ - key: kube-yarn-mr$CI_MERGE_REQUEST_IID
4222
+ policy: pull-push
4223
+ paths:
4224
+ - kube/.yarn
4225
+ fallback_keys:
4226
+ - kube-yarn
4227
+ - key: kube-node-modules-mr$CI_MERGE_REQUEST_IID
4228
+ policy: pull-push
4229
+ paths:
4230
+ - kube/node_modules
4231
+ fallback_keys:
4232
+ - kube-node-modules
4233
+ rules:
4234
+ - when: never
4235
+ if: $CI_PIPELINE_SOURCE == "trigger"
4236
+ - if: $CI_MERGE_REQUEST_ID
4237
+ needs: []
4238
+ retry: *a1
4239
+ interruptible: true
4240
+ 'kube ๐Ÿงช test | review ':
4241
+ stage: test
4242
+ image: path/to/docker/jobs-testing-chrome:the-version
4243
+ variables:
4244
+ KUBERNETES_CPU_REQUEST: '0.45'
4245
+ KUBERNETES_MEMORY_REQUEST: 1Gi
4246
+ KUBERNETES_MEMORY_LIMIT: 4Gi
4247
+ script:
4248
+ - collapseable_section_start "injectvars" "Injecting variables"
4249
+ - export APP_PATH="kube"
4250
+ - collapseable_section_end "injectvars"
4251
+ - collapseable_section_start "nodeinstall" "Ensure node version"
4252
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
4253
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
4254
+ - collapseable_section_end "nodeinstall"
4255
+ - cd kube
4256
+ - collapseable_section_start "nodeinstall" "Ensure node version"
4257
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
4258
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
4259
+ - collapseable_section_end "nodeinstall"
4260
+ - collapseable_section_start "yarninstall" "Yarn install"
4261
+ - yarn install --immutable
4262
+ - collapseable_section_end "yarninstall"
4263
+ - yarn test
4264
+ cache:
4265
+ - key: kube-yarn-mr$CI_MERGE_REQUEST_IID
4266
+ policy: pull-push
4267
+ paths:
4268
+ - kube/.yarn
4269
+ fallback_keys:
4270
+ - kube-yarn
4271
+ - key: kube-node-modules-mr$CI_MERGE_REQUEST_IID
4272
+ policy: pull-push
4273
+ paths:
4274
+ - kube/node_modules
4275
+ fallback_keys:
4276
+ - kube-node-modules
4277
+ rules:
4278
+ - when: never
4279
+ if: $CI_PIPELINE_SOURCE == "trigger"
4280
+ - if: $CI_MERGE_REQUEST_ID
4281
+ needs: []
4282
+ retry: *a1
4283
+ interruptible: true
3963
4284
  'kube ๐Ÿ”จ app | review ':
3964
4285
  stage: build
3965
4286
  image: path/to/docker/jobs-default:the-version
@@ -4085,14 +4406,18 @@ kube ๐Ÿงช test:
4085
4406
  - collapseable_section_end "yarninstall"
4086
4407
  - yarn build
4087
4408
  cache:
4088
- - key: kube-yarn
4409
+ - key: kube-yarn-mr$CI_MERGE_REQUEST_IID
4089
4410
  policy: pull-push
4090
4411
  paths:
4091
4412
  - kube/.yarn
4092
- - key: kube-node-modules
4413
+ fallback_keys:
4414
+ - kube-yarn
4415
+ - key: kube-node-modules-mr$CI_MERGE_REQUEST_IID
4093
4416
  policy: pull-push
4094
4417
  paths:
4095
4418
  - kube/node_modules
4419
+ fallback_keys:
4420
+ - kube-node-modules
4096
4421
  artifacts:
4097
4422
  paths:
4098
4423
  - kube/__build_info.json
@@ -4100,6 +4425,7 @@ kube ๐Ÿงช test:
4100
4425
  - kube/dist
4101
4426
  exclude:
4102
4427
  - kube/.env
4428
+ - kube/.next/cache/**/*
4103
4429
  expire_in: 1 day
4104
4430
  when: always
4105
4431
  reports: {}
@@ -4158,10 +4484,12 @@ kube ๐Ÿงช test:
4158
4484
  - docker push $DOCKER_CACHE_IMAGE
4159
4485
  - collapseable_section_end "docker-push"
4160
4486
  cache:
4161
- - key: kube-yarn
4487
+ - key: kube-yarn-mr$CI_MERGE_REQUEST_IID
4162
4488
  policy: pull
4163
4489
  paths:
4164
4490
  - kube/.yarn
4491
+ fallback_keys:
4492
+ - kube-yarn
4165
4493
  rules:
4166
4494
  - when: never
4167
4495
  if: $CI_PIPELINE_SOURCE == "trigger"
@@ -4377,17 +4705,17 @@ kube ๐Ÿงช test:
4377
4705
  - when: on_success
4378
4706
  if: $CI_MERGE_REQUEST_ID
4379
4707
  needs:
4380
- - job: kube ๐Ÿ‘ฎ lint
4708
+ - job: 'kube ๐Ÿ‘ฎ lint | review '
4381
4709
  artifacts: false
4382
4710
  - job: 'kube ๐Ÿ”จ app | review '
4383
4711
  artifacts: false
4384
4712
  - job: 'kube ๐Ÿ”จ docker | review '
4385
4713
  artifacts: false
4386
- - job: kube ๐Ÿงช test
4714
+ - job: 'kube ๐Ÿงช test | review '
4387
4715
  artifacts: false
4388
4716
  - job: 'kube ๐Ÿงพ sbom | review '
4389
4717
  artifacts: true
4390
- - job: kube ๐Ÿ›ก audit
4718
+ - job: 'kube ๐Ÿ›ก audit | review '
4391
4719
  artifacts: false
4392
4720
  retry: *a1
4393
4721
  interruptible: true
@@ -4704,6 +5032,7 @@ kube ๐Ÿงช test:
4704
5032
  - kube/dist
4705
5033
  exclude:
4706
5034
  - kube/.env
5035
+ - kube/.next/cache/**/*
4707
5036
  expire_in: 1 day
4708
5037
  when: always
4709
5038
  reports: {}
@@ -5300,6 +5629,7 @@ kube ๐Ÿงช test:
5300
5629
  - kube/dist
5301
5630
  exclude:
5302
5631
  - kube/.env
5632
+ - kube/.next/cache/**/*
5303
5633
  expire_in: 1 day
5304
5634
  when: always
5305
5635
  reports: {}