@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
- 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:
@@ -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:
@@ -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
@@ -289,6 +280,7 @@ www ๐Ÿงช test:
289
280
  - www/dist
290
281
  exclude:
291
282
  - www/.env
283
+ - www/.next/cache/**/*
292
284
  expire_in: 1 day
293
285
  when: always
294
286
  reports: {}
@@ -477,17 +469,17 @@ www ๐Ÿงช 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: www ๐Ÿ‘ฎ lint
472
+ - job: 'www ๐Ÿ‘ฎ lint | dev '
481
473
  artifacts: false
482
474
  - job: 'www ๐Ÿ”จ app | dev '
483
475
  artifacts: false
484
476
  - job: 'www ๐Ÿ”จ docker | dev '
485
477
  artifacts: false
486
- - job: www ๐Ÿงช test
478
+ - job: 'www ๐Ÿงช test | dev '
487
479
  artifacts: false
488
480
  - job: 'www ๐Ÿงพ sbom | dev '
489
481
  artifacts: true
490
- - job: www ๐Ÿ›ก audit
482
+ - job: 'www ๐Ÿ›ก audit | dev '
491
483
  artifacts: false
492
484
  retry: *a1
493
485
  interruptible: true
@@ -581,6 +573,115 @@ www ๐Ÿงช test:
581
573
  artifacts: false
582
574
  retry: *a1
583
575
  interruptible: true
576
+ 'www ๐Ÿ›ก audit | 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="www"
586
+ - collapseable_section_end "injectvars"
587
+ - cd www
588
+ - yarn npm audit --environment production
589
+ rules:
590
+ - when: never
591
+ if: $CI_PIPELINE_SOURCE == "trigger"
592
+ - if: $CI_MERGE_REQUEST_ID
593
+ needs: []
594
+ retry: *a1
595
+ interruptible: true
596
+ allow_failure: true
597
+ 'www ๐Ÿ‘ฎ lint | review ':
598
+ stage: test
599
+ image: path/to/docker/jobs-default:the-version
600
+ variables:
601
+ KUBERNETES_CPU_REQUEST: '0.45'
602
+ KUBERNETES_MEMORY_REQUEST: 1Gi
603
+ KUBERNETES_MEMORY_LIMIT: 4Gi
604
+ script:
605
+ - collapseable_section_start "injectvars" "Injecting variables"
606
+ - export APP_PATH="www"
607
+ - collapseable_section_end "injectvars"
608
+ - collapseable_section_start "nodeinstall" "Ensure node version"
609
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
610
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
611
+ - collapseable_section_end "nodeinstall"
612
+ - cd www
613
+ - collapseable_section_start "nodeinstall" "Ensure node version"
614
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
615
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
616
+ - collapseable_section_end "nodeinstall"
617
+ - collapseable_section_start "yarninstall" "Yarn install"
618
+ - yarn install --immutable
619
+ - collapseable_section_end "yarninstall"
620
+ - yarn lint
621
+ cache:
622
+ - key: www-yarn-mr$CI_MERGE_REQUEST_IID
623
+ policy: pull-push
624
+ paths:
625
+ - www/.yarn
626
+ fallback_keys:
627
+ - www-yarn
628
+ - key: www-node-modules-mr$CI_MERGE_REQUEST_IID
629
+ policy: pull-push
630
+ paths:
631
+ - www/node_modules
632
+ fallback_keys:
633
+ - www-node-modules
634
+ rules:
635
+ - when: never
636
+ if: $CI_PIPELINE_SOURCE == "trigger"
637
+ - if: $CI_MERGE_REQUEST_ID
638
+ needs: []
639
+ retry: *a1
640
+ interruptible: true
641
+ 'www ๐Ÿงช test | review ':
642
+ stage: test
643
+ image: path/to/docker/jobs-testing-chrome:the-version
644
+ variables:
645
+ KUBERNETES_CPU_REQUEST: '0.45'
646
+ KUBERNETES_MEMORY_REQUEST: 1Gi
647
+ KUBERNETES_MEMORY_LIMIT: 4Gi
648
+ script:
649
+ - collapseable_section_start "injectvars" "Injecting variables"
650
+ - export APP_PATH="www"
651
+ - collapseable_section_end "injectvars"
652
+ - collapseable_section_start "nodeinstall" "Ensure node version"
653
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
654
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
655
+ - collapseable_section_end "nodeinstall"
656
+ - cd www
657
+ - collapseable_section_start "nodeinstall" "Ensure node version"
658
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
659
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
660
+ - collapseable_section_end "nodeinstall"
661
+ - collapseable_section_start "yarninstall" "Yarn install"
662
+ - yarn install --immutable
663
+ - collapseable_section_end "yarninstall"
664
+ - yarn test
665
+ cache:
666
+ - key: www-yarn-mr$CI_MERGE_REQUEST_IID
667
+ policy: pull-push
668
+ paths:
669
+ - www/.yarn
670
+ fallback_keys:
671
+ - www-yarn
672
+ - key: www-node-modules-mr$CI_MERGE_REQUEST_IID
673
+ policy: pull-push
674
+ paths:
675
+ - www/node_modules
676
+ fallback_keys:
677
+ - www-node-modules
678
+ rules:
679
+ - when: never
680
+ if: $CI_PIPELINE_SOURCE == "trigger"
681
+ - if: $CI_MERGE_REQUEST_ID
682
+ needs: []
683
+ retry: *a1
684
+ interruptible: true
584
685
  'www ๐Ÿ”จ app | review ':
585
686
  stage: build
586
687
  image: path/to/docker/jobs-default:the-version
@@ -638,14 +739,18 @@ www ๐Ÿงช test:
638
739
  - collapseable_section_end "yarninstall"
639
740
  - yarn build
640
741
  cache:
641
- - key: www-yarn
742
+ - key: www-yarn-mr$CI_MERGE_REQUEST_IID
642
743
  policy: pull-push
643
744
  paths:
644
745
  - www/.yarn
645
- - key: www-node-modules
746
+ fallback_keys:
747
+ - www-yarn
748
+ - key: www-node-modules-mr$CI_MERGE_REQUEST_IID
646
749
  policy: pull-push
647
750
  paths:
648
751
  - www/node_modules
752
+ fallback_keys:
753
+ - www-node-modules
649
754
  artifacts:
650
755
  paths:
651
756
  - www/__build_info.json
@@ -653,6 +758,7 @@ www ๐Ÿงช test:
653
758
  - www/dist
654
759
  exclude:
655
760
  - www/.env
761
+ - www/.next/cache/**/*
656
762
  expire_in: 1 day
657
763
  when: always
658
764
  reports: {}
@@ -711,10 +817,12 @@ www ๐Ÿงช test:
711
817
  - docker push $DOCKER_CACHE_IMAGE
712
818
  - collapseable_section_end "docker-push"
713
819
  cache:
714
- - key: www-yarn
820
+ - key: www-yarn-mr$CI_MERGE_REQUEST_IID
715
821
  policy: pull
716
822
  paths:
717
823
  - www/.yarn
824
+ fallback_keys:
825
+ - www-yarn
718
826
  rules:
719
827
  - when: never
720
828
  if: $CI_PIPELINE_SOURCE == "trigger"
@@ -844,17 +952,17 @@ www ๐Ÿงช test:
844
952
  - when: on_success
845
953
  if: $CI_MERGE_REQUEST_ID
846
954
  needs:
847
- - job: www ๐Ÿ‘ฎ lint
955
+ - job: 'www ๐Ÿ‘ฎ lint | review '
848
956
  artifacts: false
849
957
  - job: 'www ๐Ÿ”จ app | review '
850
958
  artifacts: false
851
959
  - job: 'www ๐Ÿ”จ docker | review '
852
960
  artifacts: false
853
- - job: www ๐Ÿงช test
961
+ - job: 'www ๐Ÿงช test | review '
854
962
  artifacts: false
855
963
  - job: 'www ๐Ÿงพ sbom | review '
856
964
  artifacts: true
857
- - job: www ๐Ÿ›ก audit
965
+ - job: 'www ๐Ÿ›ก audit | review '
858
966
  artifacts: false
859
967
  retry: *a1
860
968
  interruptible: true
@@ -923,12 +1031,14 @@ www ๐Ÿงช test:
923
1031
  - echo "custom job for env 'review'"
924
1032
  - CYPRESS_BASE_URL=$CI_ENVIRONMENT_URL yarn cypress:run:ci
925
1033
  cache:
926
- key: cypress
1034
+ key: cypress-mr$CI_MERGE_REQUEST_IID
927
1035
  policy: pull-push
928
1036
  paths:
929
1037
  - .yarn/cache
930
1038
  - node_modules/
931
1039
  - cache/cypress
1040
+ fallback_keys:
1041
+ - cypress
932
1042
  environment:
933
1043
  name: review/$CI_COMMIT_REF_NAME/www
934
1044
  action: access
@@ -1023,6 +1133,7 @@ www ๐Ÿงช test:
1023
1133
  - www/dist
1024
1134
  exclude:
1025
1135
  - www/.env
1136
+ - www/.next/cache/**/*
1026
1137
  expire_in: 1 day
1027
1138
  when: always
1028
1139
  reports: {}
@@ -1380,6 +1491,7 @@ www ๐Ÿงช test:
1380
1491
  - www/dist
1381
1492
  exclude:
1382
1493
  - www/.env
1494
+ - www/.next/cache/**/*
1383
1495
  expire_in: 1 day
1384
1496
  when: always
1385
1497
  reports: {}
@@ -104,7 +104,7 @@ before_script:
104
104
  local section_title="\${1}"
105
105
  echo -e "section_end:\`date +%s\`:\${section_title}\\r\\e[0K"
106
106
  }
107
- app ๐Ÿ›ก audit:
107
+ 'app ๐Ÿ›ก audit | dev ':
108
108
  stage: test
109
109
  image: path/to/docker/jobs-default:the-version
110
110
  variables:
@@ -121,9 +121,6 @@ app ๐Ÿ›ก audit:
121
121
  - when: never
122
122
  if: $CI_PIPELINE_SOURCE == "trigger"
123
123
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
124
- - when: never
125
- if: $CI_PIPELINE_SOURCE == "trigger"
126
- - if: $CI_MERGE_REQUEST_ID
127
124
  needs: []
128
125
  retry: &a1
129
126
  max: 2
@@ -132,7 +129,7 @@ app ๐Ÿ›ก audit:
132
129
  - stuck_or_timeout_failure
133
130
  interruptible: true
134
131
  allow_failure: true
135
- app ๐Ÿ‘ฎ lint:
132
+ 'app ๐Ÿ‘ฎ lint | dev ':
136
133
  stage: test
137
134
  image: path/to/docker/jobs-default:the-version
138
135
  variables:
@@ -169,13 +166,10 @@ app ๐Ÿ‘ฎ lint:
169
166
  - when: never
170
167
  if: $CI_PIPELINE_SOURCE == "trigger"
171
168
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
172
- - when: never
173
- if: $CI_PIPELINE_SOURCE == "trigger"
174
- - if: $CI_MERGE_REQUEST_ID
175
169
  needs: []
176
170
  retry: *a1
177
171
  interruptible: true
178
- app ๐Ÿงช test:
172
+ 'app ๐Ÿงช test | dev ':
179
173
  stage: test
180
174
  image: path/to/docker/jobs-testing-chrome:the-version
181
175
  variables:
@@ -212,9 +206,6 @@ app ๐Ÿงช test:
212
206
  - when: never
213
207
  if: $CI_PIPELINE_SOURCE == "trigger"
214
208
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
215
- - when: never
216
- if: $CI_PIPELINE_SOURCE == "trigger"
217
- - if: $CI_MERGE_REQUEST_ID
218
209
  needs: []
219
210
  retry: *a1
220
211
  interruptible: true
@@ -290,6 +281,7 @@ app ๐Ÿงช test:
290
281
  - app/dist
291
282
  exclude:
292
283
  - app/.env
284
+ - app/.next/cache/**/*
293
285
  expire_in: 1 day
294
286
  when: always
295
287
  reports: {}
@@ -478,17 +470,17 @@ app ๐Ÿงช test:
478
470
  - when: on_success
479
471
  if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
480
472
  needs:
481
- - job: app ๐Ÿ‘ฎ lint
473
+ - job: 'app ๐Ÿ‘ฎ lint | dev '
482
474
  artifacts: false
483
475
  - job: 'app ๐Ÿ”จ app | dev '
484
476
  artifacts: false
485
477
  - job: 'app ๐Ÿ”จ docker | dev '
486
478
  artifacts: false
487
- - job: app ๐Ÿงช test
479
+ - job: 'app ๐Ÿงช test | dev '
488
480
  artifacts: false
489
481
  - job: 'app ๐Ÿงพ sbom | dev '
490
482
  artifacts: true
491
- - job: app ๐Ÿ›ก audit
483
+ - job: 'app ๐Ÿ›ก audit | dev '
492
484
  artifacts: false
493
485
  retry: *a1
494
486
  interruptible: true
@@ -527,6 +519,115 @@ app ๐Ÿงช test:
527
519
  retry: *a1
528
520
  interruptible: true
529
521
  allow_failure: true
522
+ 'app ๐Ÿ›ก audit | review ':
523
+ stage: test
524
+ image: path/to/docker/jobs-default:the-version
525
+ variables:
526
+ KUBERNETES_CPU_REQUEST: '0.45'
527
+ KUBERNETES_MEMORY_REQUEST: 1Gi
528
+ KUBERNETES_MEMORY_LIMIT: 4Gi
529
+ script:
530
+ - collapseable_section_start "injectvars" "Injecting variables"
531
+ - export APP_PATH="app"
532
+ - collapseable_section_end "injectvars"
533
+ - cd app
534
+ - yarn npm audit --environment production
535
+ rules:
536
+ - when: never
537
+ if: $CI_PIPELINE_SOURCE == "trigger"
538
+ - if: $CI_MERGE_REQUEST_ID
539
+ needs: []
540
+ retry: *a1
541
+ interruptible: true
542
+ allow_failure: true
543
+ 'app ๐Ÿ‘ฎ lint | review ':
544
+ stage: test
545
+ image: path/to/docker/jobs-default:the-version
546
+ variables:
547
+ KUBERNETES_CPU_REQUEST: '0.45'
548
+ KUBERNETES_MEMORY_REQUEST: 1Gi
549
+ KUBERNETES_MEMORY_LIMIT: 4Gi
550
+ script:
551
+ - collapseable_section_start "injectvars" "Injecting variables"
552
+ - export APP_PATH="app"
553
+ - collapseable_section_end "injectvars"
554
+ - collapseable_section_start "nodeinstall" "Ensure node version"
555
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
556
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
557
+ - collapseable_section_end "nodeinstall"
558
+ - cd app
559
+ - collapseable_section_start "nodeinstall" "Ensure node version"
560
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
561
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
562
+ - collapseable_section_end "nodeinstall"
563
+ - collapseable_section_start "yarninstall" "Yarn install"
564
+ - yarn install --immutable
565
+ - collapseable_section_end "yarninstall"
566
+ - yarn lint
567
+ cache:
568
+ - key: app-yarn-mr$CI_MERGE_REQUEST_IID
569
+ policy: pull-push
570
+ paths:
571
+ - app/.yarn
572
+ fallback_keys:
573
+ - app-yarn
574
+ - key: app-node-modules-mr$CI_MERGE_REQUEST_IID
575
+ policy: pull-push
576
+ paths:
577
+ - app/node_modules
578
+ fallback_keys:
579
+ - app-node-modules
580
+ rules:
581
+ - when: never
582
+ if: $CI_PIPELINE_SOURCE == "trigger"
583
+ - if: $CI_MERGE_REQUEST_ID
584
+ needs: []
585
+ retry: *a1
586
+ interruptible: true
587
+ 'app ๐Ÿงช test | review ':
588
+ stage: test
589
+ image: path/to/docker/jobs-testing-chrome:the-version
590
+ variables:
591
+ KUBERNETES_CPU_REQUEST: '0.45'
592
+ KUBERNETES_MEMORY_REQUEST: 1Gi
593
+ KUBERNETES_MEMORY_LIMIT: 4Gi
594
+ script:
595
+ - collapseable_section_start "injectvars" "Injecting variables"
596
+ - export APP_PATH="app"
597
+ - collapseable_section_end "injectvars"
598
+ - collapseable_section_start "nodeinstall" "Ensure node version"
599
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
600
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
601
+ - collapseable_section_end "nodeinstall"
602
+ - cd app
603
+ - collapseable_section_start "nodeinstall" "Ensure node version"
604
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
605
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
606
+ - collapseable_section_end "nodeinstall"
607
+ - collapseable_section_start "yarninstall" "Yarn install"
608
+ - yarn install --immutable
609
+ - collapseable_section_end "yarninstall"
610
+ - yarn test
611
+ cache:
612
+ - key: app-yarn-mr$CI_MERGE_REQUEST_IID
613
+ policy: pull-push
614
+ paths:
615
+ - app/.yarn
616
+ fallback_keys:
617
+ - app-yarn
618
+ - key: app-node-modules-mr$CI_MERGE_REQUEST_IID
619
+ policy: pull-push
620
+ paths:
621
+ - app/node_modules
622
+ fallback_keys:
623
+ - app-node-modules
624
+ rules:
625
+ - when: never
626
+ if: $CI_PIPELINE_SOURCE == "trigger"
627
+ - if: $CI_MERGE_REQUEST_ID
628
+ needs: []
629
+ retry: *a1
630
+ interruptible: true
530
631
  'app ๐Ÿ”จ app | review ':
531
632
  stage: build
532
633
  image: path/to/docker/jobs-default:the-version
@@ -584,14 +685,18 @@ app ๐Ÿงช test:
584
685
  - collapseable_section_end "yarninstall"
585
686
  - yarn build
586
687
  cache:
587
- - key: app-yarn
688
+ - key: app-yarn-mr$CI_MERGE_REQUEST_IID
588
689
  policy: pull-push
589
690
  paths:
590
691
  - app/.yarn
591
- - key: app-node-modules
692
+ fallback_keys:
693
+ - app-yarn
694
+ - key: app-node-modules-mr$CI_MERGE_REQUEST_IID
592
695
  policy: pull-push
593
696
  paths:
594
697
  - app/node_modules
698
+ fallback_keys:
699
+ - app-node-modules
595
700
  artifacts:
596
701
  paths:
597
702
  - app/__build_info.json
@@ -599,6 +704,7 @@ app ๐Ÿงช test:
599
704
  - app/dist
600
705
  exclude:
601
706
  - app/.env
707
+ - app/.next/cache/**/*
602
708
  expire_in: 1 day
603
709
  when: always
604
710
  reports: {}
@@ -657,10 +763,12 @@ app ๐Ÿงช test:
657
763
  - docker push $DOCKER_CACHE_IMAGE
658
764
  - collapseable_section_end "docker-push"
659
765
  cache:
660
- - key: app-yarn
766
+ - key: app-yarn-mr$CI_MERGE_REQUEST_IID
661
767
  policy: pull
662
768
  paths:
663
769
  - app/.yarn
770
+ fallback_keys:
771
+ - app-yarn
664
772
  rules:
665
773
  - when: never
666
774
  if: $CI_PIPELINE_SOURCE == "trigger"
@@ -790,17 +898,17 @@ app ๐Ÿงช test:
790
898
  - when: on_success
791
899
  if: $CI_MERGE_REQUEST_ID
792
900
  needs:
793
- - job: app ๐Ÿ‘ฎ lint
901
+ - job: 'app ๐Ÿ‘ฎ lint | review '
794
902
  artifacts: false
795
903
  - job: 'app ๐Ÿ”จ app | review '
796
904
  artifacts: false
797
905
  - job: 'app ๐Ÿ”จ docker | review '
798
906
  artifacts: false
799
- - job: app ๐Ÿงช test
907
+ - job: 'app ๐Ÿงช test | review '
800
908
  artifacts: false
801
909
  - job: 'app ๐Ÿงพ sbom | review '
802
910
  artifacts: true
803
- - job: app ๐Ÿ›ก audit
911
+ - job: 'app ๐Ÿ›ก audit | review '
804
912
  artifacts: false
805
913
  retry: *a1
806
914
  interruptible: true
@@ -914,6 +1022,7 @@ app ๐Ÿงช test:
914
1022
  - app/dist
915
1023
  exclude:
916
1024
  - app/.env
1025
+ - app/.next/cache/**/*
917
1026
  expire_in: 1 day
918
1027
  when: always
919
1028
  reports: {}
@@ -1216,6 +1325,7 @@ app ๐Ÿงช test:
1216
1325
  - app/dist
1217
1326
  exclude:
1218
1327
  - app/.env
1328
+ - app/.next/cache/**/*
1219
1329
  expire_in: 1 day
1220
1330
  when: always
1221
1331
  reports: {}