@catladder/pipeline 3.25.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 (73) hide show
  1. package/dist/build/custom/testJob.js +1 -2
  2. package/dist/build/node/testJob.js +1 -2
  3. package/dist/build/rails/test.js +1 -2
  4. package/dist/constants.js +1 -1
  5. package/dist/pipeline/agent/createAgentReviewJob.js +1 -0
  6. package/dist/pipeline/agent/shared.d.ts +1 -1
  7. package/dist/pipeline/agent/shared.js +0 -1
  8. package/dist/pipeline/createMainPipeline.js +1 -0
  9. package/dist/pipeline/gitlab/cache.d.ts +9 -0
  10. package/dist/pipeline/gitlab/cache.js +47 -0
  11. package/dist/pipeline/gitlab/createGitlabJobs.js +7 -7
  12. package/dist/tsconfig.tsbuildinfo +1 -1
  13. package/dist/types/jobs.d.ts +2 -3
  14. package/examples/__snapshots__/automatic-releases.test.ts.snap +127 -21
  15. package/examples/__snapshots__/cloud-run-health-check-defaults.test.ts.snap +127 -21
  16. package/examples/__snapshots__/cloud-run-health-check-only-startup.test.ts.snap +127 -21
  17. package/examples/__snapshots__/cloud-run-health-check.test.ts.snap +127 -21
  18. package/examples/__snapshots__/cloud-run-http2.test.ts.snap +127 -21
  19. package/examples/__snapshots__/cloud-run-memory-limit.test.ts.snap +127 -21
  20. package/examples/__snapshots__/cloud-run-meteor-with-worker.test.ts.snap +127 -21
  21. package/examples/__snapshots__/cloud-run-nextjs.test.ts.snap +130 -22
  22. package/examples/__snapshots__/cloud-run-no-cpu-throttling.test.ts.snap +127 -21
  23. package/examples/__snapshots__/cloud-run-no-service.test.ts.snap +127 -21
  24. package/examples/__snapshots__/cloud-run-non-public.test.ts.snap +127 -21
  25. package/examples/__snapshots__/cloud-run-post-stop-job.test.ts.snap +127 -21
  26. package/examples/__snapshots__/cloud-run-service-custom-vpc-connector.test.ts.snap +127 -21
  27. package/examples/__snapshots__/cloud-run-service-custom-vpc.test.ts.snap +127 -21
  28. package/examples/__snapshots__/cloud-run-service-gen2.test.ts.snap +127 -21
  29. package/examples/__snapshots__/cloud-run-service-increase-timout.test.ts.snap +127 -21
  30. package/examples/__snapshots__/cloud-run-service-with-volumes.test.ts.snap +127 -21
  31. package/examples/__snapshots__/cloud-run-storybook.test.ts.snap +9 -3
  32. package/examples/__snapshots__/cloud-run-with-agents.test.ts.snap +130 -22
  33. package/examples/__snapshots__/cloud-run-with-gpu.test.ts.snap +127 -21
  34. package/examples/__snapshots__/cloud-run-with-ngnix.test.ts.snap +127 -21
  35. package/examples/__snapshots__/cloud-run-with-sql-legacy-jobs.test.ts.snap +127 -21
  36. package/examples/__snapshots__/cloud-run-with-sql-multiple-dbs.test.ts.snap +381 -63
  37. package/examples/__snapshots__/cloud-run-with-sql-reuse-db.test.ts.snap +254 -42
  38. package/examples/__snapshots__/cloud-run-with-sql.test.ts.snap +127 -21
  39. package/examples/__snapshots__/cloud-run-with-worker.test.ts.snap +127 -21
  40. package/examples/__snapshots__/custom-build-job-with-tests.test.ts.snap +93 -22
  41. package/examples/__snapshots__/custom-deploy.test.ts.snap +127 -21
  42. package/examples/__snapshots__/custom-envs.test.ts.snap +320 -32
  43. package/examples/__snapshots__/custom-verify-job.test.ts.snap +130 -22
  44. package/examples/__snapshots__/git-submodule.test.ts.snap +127 -21
  45. package/examples/__snapshots__/kubernetes-application-customization.test.ts.snap +127 -21
  46. package/examples/__snapshots__/kubernetes-with-cloud-sql.test.ts.snap +127 -21
  47. package/examples/__snapshots__/kubernetes-with-jobs.test.ts.snap +254 -42
  48. package/examples/__snapshots__/kubernetes-with-mongodb.test.ts.snap +127 -21
  49. package/examples/__snapshots__/local-dot-env.test.ts.snap +127 -21
  50. package/examples/__snapshots__/meteor-kubernetes.test.ts.snap +127 -21
  51. package/examples/__snapshots__/modify-generated-files.test.ts.snap +118 -14
  52. package/examples/__snapshots__/modify-generated-yaml.test.ts.snap +118 -14
  53. package/examples/__snapshots__/multiline-var.test.ts.snap +381 -63
  54. package/examples/__snapshots__/native-app.test.ts.snap +257 -41
  55. package/examples/__snapshots__/node-build-with-custom-image.test.ts.snap +127 -21
  56. package/examples/__snapshots__/node-build-with-docker-additions.test.ts.snap +127 -21
  57. package/examples/__snapshots__/override-secrets.test.ts.snap +127 -21
  58. package/examples/__snapshots__/rails-k8s-with-worker-dockerfile.test.ts.snap +84 -22
  59. package/examples/__snapshots__/rails-k8s-with-worker.test.ts.snap +84 -22
  60. package/examples/__snapshots__/referencing-other-vars.test.ts.snap +381 -63
  61. package/examples/__snapshots__/wait-for-other-deploy.test.ts.snap +248 -40
  62. package/examples/__snapshots__/workspace-api-www-turbo-cache.test.ts.snap +139 -29
  63. package/examples/__snapshots__/workspace-api-www.test.ts.snap +139 -29
  64. package/package.json +1 -1
  65. package/src/build/custom/testJob.ts +0 -1
  66. package/src/build/node/testJob.ts +0 -1
  67. package/src/build/rails/test.ts +0 -1
  68. package/src/pipeline/agent/createAgentReviewJob.ts +1 -0
  69. package/src/pipeline/agent/shared.ts +2 -2
  70. package/src/pipeline/createMainPipeline.ts +1 -0
  71. package/src/pipeline/gitlab/cache.ts +49 -0
  72. package/src/pipeline/gitlab/createGitlabJobs.ts +7 -9
  73. 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
@@ -503,17 +494,17 @@ app1 ๐Ÿงช test:
503
494
  - when: on_success
504
495
  if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
505
496
  needs:
506
- - job: app1 ๐Ÿ‘ฎ lint
497
+ - job: 'app1 ๐Ÿ‘ฎ lint | dev '
507
498
  artifacts: false
508
499
  - job: 'app1 ๐Ÿ”จ app | dev '
509
500
  artifacts: false
510
501
  - job: 'app1 ๐Ÿ”จ docker | dev '
511
502
  artifacts: false
512
- - job: app1 ๐Ÿงช test
503
+ - job: 'app1 ๐Ÿงช test | dev '
513
504
  artifacts: false
514
505
  - job: 'app1 ๐Ÿงพ sbom | dev '
515
506
  artifacts: true
516
- - job: app1 ๐Ÿ›ก audit
507
+ - job: 'app1 ๐Ÿ›ก audit | dev '
517
508
  artifacts: false
518
509
  retry: *a1
519
510
  interruptible: true
@@ -552,6 +543,115 @@ app1 ๐Ÿงช test:
552
543
  retry: *a1
553
544
  interruptible: true
554
545
  allow_failure: true
546
+ 'app1 ๐Ÿ›ก audit | review ':
547
+ stage: test
548
+ image: path/to/docker/jobs-default:the-version
549
+ variables:
550
+ KUBERNETES_CPU_REQUEST: '0.45'
551
+ KUBERNETES_MEMORY_REQUEST: 1Gi
552
+ KUBERNETES_MEMORY_LIMIT: 4Gi
553
+ script:
554
+ - collapseable_section_start "injectvars" "Injecting variables"
555
+ - export APP_PATH="app1"
556
+ - collapseable_section_end "injectvars"
557
+ - cd app1
558
+ - yarn npm audit --environment production
559
+ rules:
560
+ - when: never
561
+ if: $CI_PIPELINE_SOURCE == "trigger"
562
+ - if: $CI_MERGE_REQUEST_ID
563
+ needs: []
564
+ retry: *a1
565
+ interruptible: true
566
+ allow_failure: true
567
+ 'app1 ๐Ÿ‘ฎ lint | review ':
568
+ stage: test
569
+ image: path/to/docker/jobs-default:the-version
570
+ variables:
571
+ KUBERNETES_CPU_REQUEST: '0.45'
572
+ KUBERNETES_MEMORY_REQUEST: 1Gi
573
+ KUBERNETES_MEMORY_LIMIT: 4Gi
574
+ script:
575
+ - collapseable_section_start "injectvars" "Injecting variables"
576
+ - export APP_PATH="app1"
577
+ - collapseable_section_end "injectvars"
578
+ - collapseable_section_start "nodeinstall" "Ensure node version"
579
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
580
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
581
+ - collapseable_section_end "nodeinstall"
582
+ - cd app1
583
+ - collapseable_section_start "nodeinstall" "Ensure node version"
584
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
585
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
586
+ - collapseable_section_end "nodeinstall"
587
+ - collapseable_section_start "yarninstall" "Yarn install"
588
+ - yarn install --immutable
589
+ - collapseable_section_end "yarninstall"
590
+ - yarn lint
591
+ cache:
592
+ - key: app1-yarn-mr$CI_MERGE_REQUEST_IID
593
+ policy: pull-push
594
+ paths:
595
+ - app1/.yarn
596
+ fallback_keys:
597
+ - app1-yarn
598
+ - key: app1-node-modules-mr$CI_MERGE_REQUEST_IID
599
+ policy: pull-push
600
+ paths:
601
+ - app1/node_modules
602
+ fallback_keys:
603
+ - app1-node-modules
604
+ rules:
605
+ - when: never
606
+ if: $CI_PIPELINE_SOURCE == "trigger"
607
+ - if: $CI_MERGE_REQUEST_ID
608
+ needs: []
609
+ retry: *a1
610
+ interruptible: true
611
+ 'app1 ๐Ÿงช test | review ':
612
+ stage: test
613
+ image: path/to/docker/jobs-testing-chrome:the-version
614
+ variables:
615
+ KUBERNETES_CPU_REQUEST: '0.45'
616
+ KUBERNETES_MEMORY_REQUEST: 1Gi
617
+ KUBERNETES_MEMORY_LIMIT: 4Gi
618
+ script:
619
+ - collapseable_section_start "injectvars" "Injecting variables"
620
+ - export APP_PATH="app1"
621
+ - collapseable_section_end "injectvars"
622
+ - collapseable_section_start "nodeinstall" "Ensure node version"
623
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
624
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
625
+ - collapseable_section_end "nodeinstall"
626
+ - cd app1
627
+ - collapseable_section_start "nodeinstall" "Ensure node version"
628
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
629
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
630
+ - collapseable_section_end "nodeinstall"
631
+ - collapseable_section_start "yarninstall" "Yarn install"
632
+ - yarn install --immutable
633
+ - collapseable_section_end "yarninstall"
634
+ - yarn test
635
+ cache:
636
+ - key: app1-yarn-mr$CI_MERGE_REQUEST_IID
637
+ policy: pull-push
638
+ paths:
639
+ - app1/.yarn
640
+ fallback_keys:
641
+ - app1-yarn
642
+ - key: app1-node-modules-mr$CI_MERGE_REQUEST_IID
643
+ policy: pull-push
644
+ paths:
645
+ - app1/node_modules
646
+ fallback_keys:
647
+ - app1-node-modules
648
+ rules:
649
+ - when: never
650
+ if: $CI_PIPELINE_SOURCE == "trigger"
651
+ - if: $CI_MERGE_REQUEST_ID
652
+ needs: []
653
+ retry: *a1
654
+ interruptible: true
555
655
  'app1 ๐Ÿ”จ app | review ':
556
656
  stage: build
557
657
  image: path/to/docker/jobs-default:the-version
@@ -619,14 +719,18 @@ app1 ๐Ÿงช test:
619
719
  - collapseable_section_end "yarninstall"
620
720
  - yarn build
621
721
  cache:
622
- - key: app1-yarn
722
+ - key: app1-yarn-mr$CI_MERGE_REQUEST_IID
623
723
  policy: pull-push
624
724
  paths:
625
725
  - app1/.yarn
626
- - key: app1-node-modules
726
+ fallback_keys:
727
+ - app1-yarn
728
+ - key: app1-node-modules-mr$CI_MERGE_REQUEST_IID
627
729
  policy: pull-push
628
730
  paths:
629
731
  - app1/node_modules
732
+ fallback_keys:
733
+ - app1-node-modules
630
734
  artifacts:
631
735
  paths:
632
736
  - app1/__build_info.json
@@ -693,10 +797,12 @@ app1 ๐Ÿงช test:
693
797
  - docker push $DOCKER_CACHE_IMAGE
694
798
  - collapseable_section_end "docker-push"
695
799
  cache:
696
- - key: app1-yarn
800
+ - key: app1-yarn-mr$CI_MERGE_REQUEST_IID
697
801
  policy: pull
698
802
  paths:
699
803
  - app1/.yarn
804
+ fallback_keys:
805
+ - app1-yarn
700
806
  rules:
701
807
  - when: never
702
808
  if: $CI_PIPELINE_SOURCE == "trigger"
@@ -841,17 +947,17 @@ app1 ๐Ÿงช test:
841
947
  - when: on_success
842
948
  if: $CI_MERGE_REQUEST_ID
843
949
  needs:
844
- - job: app1 ๐Ÿ‘ฎ lint
950
+ - job: 'app1 ๐Ÿ‘ฎ lint | review '
845
951
  artifacts: false
846
952
  - job: 'app1 ๐Ÿ”จ app | review '
847
953
  artifacts: false
848
954
  - job: 'app1 ๐Ÿ”จ docker | review '
849
955
  artifacts: false
850
- - job: app1 ๐Ÿงช test
956
+ - job: 'app1 ๐Ÿงช test | review '
851
957
  artifacts: false
852
958
  - job: 'app1 ๐Ÿงพ sbom | review '
853
959
  artifacts: true
854
- - job: app1 ๐Ÿ›ก audit
960
+ - job: 'app1 ๐Ÿ›ก audit | review '
855
961
  artifacts: false
856
962
  retry: *a1
857
963
  interruptible: true
@@ -1549,7 +1655,7 @@ app1 ๐Ÿงช test:
1549
1655
  retry: *a1
1550
1656
  interruptible: true
1551
1657
  allow_failure: true
1552
- app2 ๐Ÿ›ก audit:
1658
+ 'app2 ๐Ÿ›ก audit | dev ':
1553
1659
  stage: test
1554
1660
  image: path/to/docker/jobs-default:the-version
1555
1661
  variables:
@@ -1566,14 +1672,11 @@ app2 ๐Ÿ›ก audit:
1566
1672
  - when: never
1567
1673
  if: $CI_PIPELINE_SOURCE == "trigger"
1568
1674
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
1569
- - when: never
1570
- if: $CI_PIPELINE_SOURCE == "trigger"
1571
- - if: $CI_MERGE_REQUEST_ID
1572
1675
  needs: []
1573
1676
  retry: *a1
1574
1677
  interruptible: true
1575
1678
  allow_failure: true
1576
- app2 ๐Ÿ‘ฎ lint:
1679
+ 'app2 ๐Ÿ‘ฎ lint | dev ':
1577
1680
  stage: test
1578
1681
  image: path/to/docker/jobs-default:the-version
1579
1682
  variables:
@@ -1610,13 +1713,10 @@ app2 ๐Ÿ‘ฎ lint:
1610
1713
  - when: never
1611
1714
  if: $CI_PIPELINE_SOURCE == "trigger"
1612
1715
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
1613
- - when: never
1614
- if: $CI_PIPELINE_SOURCE == "trigger"
1615
- - if: $CI_MERGE_REQUEST_ID
1616
1716
  needs: []
1617
1717
  retry: *a1
1618
1718
  interruptible: true
1619
- app2 ๐Ÿงช test:
1719
+ 'app2 ๐Ÿงช test | dev ':
1620
1720
  stage: test
1621
1721
  image: path/to/docker/jobs-testing-chrome:the-version
1622
1722
  variables:
@@ -1653,9 +1753,6 @@ app2 ๐Ÿงช test:
1653
1753
  - when: never
1654
1754
  if: $CI_PIPELINE_SOURCE == "trigger"
1655
1755
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
1656
- - when: never
1657
- if: $CI_PIPELINE_SOURCE == "trigger"
1658
- - if: $CI_MERGE_REQUEST_ID
1659
1756
  needs: []
1660
1757
  retry: *a1
1661
1758
  interruptible: true
@@ -1955,17 +2052,17 @@ app2 ๐Ÿงช test:
1955
2052
  - when: on_success
1956
2053
  if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
1957
2054
  needs:
1958
- - job: app2 ๐Ÿ‘ฎ lint
2055
+ - job: 'app2 ๐Ÿ‘ฎ lint | dev '
1959
2056
  artifacts: false
1960
2057
  - job: 'app2 ๐Ÿ”จ app | dev '
1961
2058
  artifacts: false
1962
2059
  - job: 'app2 ๐Ÿ”จ docker | dev '
1963
2060
  artifacts: false
1964
- - job: app2 ๐Ÿงช test
2061
+ - job: 'app2 ๐Ÿงช test | dev '
1965
2062
  artifacts: false
1966
2063
  - job: 'app2 ๐Ÿงพ sbom | dev '
1967
2064
  artifacts: true
1968
- - job: app2 ๐Ÿ›ก audit
2065
+ - job: 'app2 ๐Ÿ›ก audit | dev '
1969
2066
  artifacts: false
1970
2067
  retry: *a1
1971
2068
  interruptible: true
@@ -2004,6 +2101,115 @@ app2 ๐Ÿงช test:
2004
2101
  retry: *a1
2005
2102
  interruptible: true
2006
2103
  allow_failure: true
2104
+ 'app2 ๐Ÿ›ก audit | review ':
2105
+ stage: test
2106
+ image: path/to/docker/jobs-default:the-version
2107
+ variables:
2108
+ KUBERNETES_CPU_REQUEST: '0.45'
2109
+ KUBERNETES_MEMORY_REQUEST: 1Gi
2110
+ KUBERNETES_MEMORY_LIMIT: 4Gi
2111
+ script:
2112
+ - collapseable_section_start "injectvars" "Injecting variables"
2113
+ - export APP_PATH="app2"
2114
+ - collapseable_section_end "injectvars"
2115
+ - cd app2
2116
+ - yarn npm audit --environment production
2117
+ rules:
2118
+ - when: never
2119
+ if: $CI_PIPELINE_SOURCE == "trigger"
2120
+ - if: $CI_MERGE_REQUEST_ID
2121
+ needs: []
2122
+ retry: *a1
2123
+ interruptible: true
2124
+ allow_failure: true
2125
+ 'app2 ๐Ÿ‘ฎ lint | review ':
2126
+ stage: test
2127
+ image: path/to/docker/jobs-default:the-version
2128
+ variables:
2129
+ KUBERNETES_CPU_REQUEST: '0.45'
2130
+ KUBERNETES_MEMORY_REQUEST: 1Gi
2131
+ KUBERNETES_MEMORY_LIMIT: 4Gi
2132
+ script:
2133
+ - collapseable_section_start "injectvars" "Injecting variables"
2134
+ - export APP_PATH="app2"
2135
+ - collapseable_section_end "injectvars"
2136
+ - collapseable_section_start "nodeinstall" "Ensure node version"
2137
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
2138
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
2139
+ - collapseable_section_end "nodeinstall"
2140
+ - cd app2
2141
+ - collapseable_section_start "nodeinstall" "Ensure node version"
2142
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
2143
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
2144
+ - collapseable_section_end "nodeinstall"
2145
+ - collapseable_section_start "yarninstall" "Yarn install"
2146
+ - yarn install --immutable
2147
+ - collapseable_section_end "yarninstall"
2148
+ - yarn lint
2149
+ cache:
2150
+ - key: app2-yarn-mr$CI_MERGE_REQUEST_IID
2151
+ policy: pull-push
2152
+ paths:
2153
+ - app2/.yarn
2154
+ fallback_keys:
2155
+ - app2-yarn
2156
+ - key: app2-node-modules-mr$CI_MERGE_REQUEST_IID
2157
+ policy: pull-push
2158
+ paths:
2159
+ - app2/node_modules
2160
+ fallback_keys:
2161
+ - app2-node-modules
2162
+ rules:
2163
+ - when: never
2164
+ if: $CI_PIPELINE_SOURCE == "trigger"
2165
+ - if: $CI_MERGE_REQUEST_ID
2166
+ needs: []
2167
+ retry: *a1
2168
+ interruptible: true
2169
+ 'app2 ๐Ÿงช test | review ':
2170
+ stage: test
2171
+ image: path/to/docker/jobs-testing-chrome:the-version
2172
+ variables:
2173
+ KUBERNETES_CPU_REQUEST: '0.45'
2174
+ KUBERNETES_MEMORY_REQUEST: 1Gi
2175
+ KUBERNETES_MEMORY_LIMIT: 4Gi
2176
+ script:
2177
+ - collapseable_section_start "injectvars" "Injecting variables"
2178
+ - export APP_PATH="app2"
2179
+ - collapseable_section_end "injectvars"
2180
+ - collapseable_section_start "nodeinstall" "Ensure node version"
2181
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
2182
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
2183
+ - collapseable_section_end "nodeinstall"
2184
+ - cd app2
2185
+ - collapseable_section_start "nodeinstall" "Ensure node version"
2186
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
2187
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
2188
+ - collapseable_section_end "nodeinstall"
2189
+ - collapseable_section_start "yarninstall" "Yarn install"
2190
+ - yarn install --immutable
2191
+ - collapseable_section_end "yarninstall"
2192
+ - yarn test
2193
+ cache:
2194
+ - key: app2-yarn-mr$CI_MERGE_REQUEST_IID
2195
+ policy: pull-push
2196
+ paths:
2197
+ - app2/.yarn
2198
+ fallback_keys:
2199
+ - app2-yarn
2200
+ - key: app2-node-modules-mr$CI_MERGE_REQUEST_IID
2201
+ policy: pull-push
2202
+ paths:
2203
+ - app2/node_modules
2204
+ fallback_keys:
2205
+ - app2-node-modules
2206
+ rules:
2207
+ - when: never
2208
+ if: $CI_PIPELINE_SOURCE == "trigger"
2209
+ - if: $CI_MERGE_REQUEST_ID
2210
+ needs: []
2211
+ retry: *a1
2212
+ interruptible: true
2007
2213
  'app2 ๐Ÿ”จ app | review ':
2008
2214
  stage: build
2009
2215
  image: path/to/docker/jobs-default:the-version
@@ -2075,14 +2281,18 @@ app2 ๐Ÿงช test:
2075
2281
  - collapseable_section_end "yarninstall"
2076
2282
  - yarn build
2077
2283
  cache:
2078
- - key: app2-yarn
2284
+ - key: app2-yarn-mr$CI_MERGE_REQUEST_IID
2079
2285
  policy: pull-push
2080
2286
  paths:
2081
2287
  - app2/.yarn
2082
- - key: app2-node-modules
2288
+ fallback_keys:
2289
+ - app2-yarn
2290
+ - key: app2-node-modules-mr$CI_MERGE_REQUEST_IID
2083
2291
  policy: pull-push
2084
2292
  paths:
2085
2293
  - app2/node_modules
2294
+ fallback_keys:
2295
+ - app2-node-modules
2086
2296
  artifacts:
2087
2297
  paths:
2088
2298
  - app2/__build_info.json
@@ -2149,10 +2359,12 @@ app2 ๐Ÿงช test:
2149
2359
  - docker push $DOCKER_CACHE_IMAGE
2150
2360
  - collapseable_section_end "docker-push"
2151
2361
  cache:
2152
- - key: app2-yarn
2362
+ - key: app2-yarn-mr$CI_MERGE_REQUEST_IID
2153
2363
  policy: pull
2154
2364
  paths:
2155
2365
  - app2/.yarn
2366
+ fallback_keys:
2367
+ - app2-yarn
2156
2368
  rules:
2157
2369
  - when: never
2158
2370
  if: $CI_PIPELINE_SOURCE == "trigger"
@@ -2303,17 +2515,17 @@ app2 ๐Ÿงช test:
2303
2515
  - when: on_success
2304
2516
  if: $CI_MERGE_REQUEST_ID
2305
2517
  needs:
2306
- - job: app2 ๐Ÿ‘ฎ lint
2518
+ - job: 'app2 ๐Ÿ‘ฎ lint | review '
2307
2519
  artifacts: false
2308
2520
  - job: 'app2 ๐Ÿ”จ app | review '
2309
2521
  artifacts: false
2310
2522
  - job: 'app2 ๐Ÿ”จ docker | review '
2311
2523
  artifacts: false
2312
- - job: app2 ๐Ÿงช test
2524
+ - job: 'app2 ๐Ÿงช test | review '
2313
2525
  artifacts: false
2314
2526
  - job: 'app2 ๐Ÿงพ sbom | review '
2315
2527
  artifacts: true
2316
- - job: app2 ๐Ÿ›ก audit
2528
+ - job: 'app2 ๐Ÿ›ก audit | review '
2317
2529
  artifacts: false
2318
2530
  retry: *a1
2319
2531
  interruptible: true
@@ -3031,7 +3243,7 @@ app2 ๐Ÿงช test:
3031
3243
  retry: *a1
3032
3244
  interruptible: true
3033
3245
  allow_failure: true
3034
- app3 ๐Ÿ›ก audit:
3246
+ 'app3 ๐Ÿ›ก audit | dev ':
3035
3247
  stage: test
3036
3248
  image: path/to/docker/jobs-default:the-version
3037
3249
  variables:
@@ -3048,14 +3260,11 @@ app3 ๐Ÿ›ก audit:
3048
3260
  - when: never
3049
3261
  if: $CI_PIPELINE_SOURCE == "trigger"
3050
3262
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
3051
- - when: never
3052
- if: $CI_PIPELINE_SOURCE == "trigger"
3053
- - if: $CI_MERGE_REQUEST_ID
3054
3263
  needs: []
3055
3264
  retry: *a1
3056
3265
  interruptible: true
3057
3266
  allow_failure: true
3058
- app3 ๐Ÿ‘ฎ lint:
3267
+ 'app3 ๐Ÿ‘ฎ lint | dev ':
3059
3268
  stage: test
3060
3269
  image: path/to/docker/jobs-default:the-version
3061
3270
  variables:
@@ -3092,13 +3301,10 @@ app3 ๐Ÿ‘ฎ lint:
3092
3301
  - when: never
3093
3302
  if: $CI_PIPELINE_SOURCE == "trigger"
3094
3303
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
3095
- - when: never
3096
- if: $CI_PIPELINE_SOURCE == "trigger"
3097
- - if: $CI_MERGE_REQUEST_ID
3098
3304
  needs: []
3099
3305
  retry: *a1
3100
3306
  interruptible: true
3101
- app3 ๐Ÿงช test:
3307
+ 'app3 ๐Ÿงช test | dev ':
3102
3308
  stage: test
3103
3309
  image: path/to/docker/jobs-testing-chrome:the-version
3104
3310
  variables:
@@ -3135,9 +3341,6 @@ app3 ๐Ÿงช test:
3135
3341
  - when: never
3136
3342
  if: $CI_PIPELINE_SOURCE == "trigger"
3137
3343
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
3138
- - when: never
3139
- if: $CI_PIPELINE_SOURCE == "trigger"
3140
- - if: $CI_MERGE_REQUEST_ID
3141
3344
  needs: []
3142
3345
  retry: *a1
3143
3346
  interruptible: true
@@ -3441,17 +3644,17 @@ app3 ๐Ÿงช test:
3441
3644
  - when: on_success
3442
3645
  if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
3443
3646
  needs:
3444
- - job: app3 ๐Ÿ‘ฎ lint
3647
+ - job: 'app3 ๐Ÿ‘ฎ lint | dev '
3445
3648
  artifacts: false
3446
3649
  - job: 'app3 ๐Ÿ”จ app | dev '
3447
3650
  artifacts: false
3448
3651
  - job: 'app3 ๐Ÿ”จ docker | dev '
3449
3652
  artifacts: false
3450
- - job: app3 ๐Ÿงช test
3653
+ - job: 'app3 ๐Ÿงช test | dev '
3451
3654
  artifacts: false
3452
3655
  - job: 'app3 ๐Ÿงพ sbom | dev '
3453
3656
  artifacts: true
3454
- - job: app3 ๐Ÿ›ก audit
3657
+ - job: 'app3 ๐Ÿ›ก audit | dev '
3455
3658
  artifacts: false
3456
3659
  retry: *a1
3457
3660
  interruptible: true
@@ -3566,6 +3769,115 @@ app3 ๐Ÿงช test:
3566
3769
  retry: *a1
3567
3770
  interruptible: true
3568
3771
  allow_failure: true
3772
+ 'app3 ๐Ÿ›ก audit | review ':
3773
+ stage: test
3774
+ image: path/to/docker/jobs-default:the-version
3775
+ variables:
3776
+ KUBERNETES_CPU_REQUEST: '0.45'
3777
+ KUBERNETES_MEMORY_REQUEST: 1Gi
3778
+ KUBERNETES_MEMORY_LIMIT: 4Gi
3779
+ script:
3780
+ - collapseable_section_start "injectvars" "Injecting variables"
3781
+ - export APP_PATH="kube"
3782
+ - collapseable_section_end "injectvars"
3783
+ - cd kube
3784
+ - yarn npm audit --environment production
3785
+ rules:
3786
+ - when: never
3787
+ if: $CI_PIPELINE_SOURCE == "trigger"
3788
+ - if: $CI_MERGE_REQUEST_ID
3789
+ needs: []
3790
+ retry: *a1
3791
+ interruptible: true
3792
+ allow_failure: true
3793
+ 'app3 ๐Ÿ‘ฎ lint | review ':
3794
+ stage: test
3795
+ image: path/to/docker/jobs-default:the-version
3796
+ variables:
3797
+ KUBERNETES_CPU_REQUEST: '0.45'
3798
+ KUBERNETES_MEMORY_REQUEST: 1Gi
3799
+ KUBERNETES_MEMORY_LIMIT: 4Gi
3800
+ script:
3801
+ - collapseable_section_start "injectvars" "Injecting variables"
3802
+ - export APP_PATH="kube"
3803
+ - collapseable_section_end "injectvars"
3804
+ - collapseable_section_start "nodeinstall" "Ensure node version"
3805
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
3806
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
3807
+ - collapseable_section_end "nodeinstall"
3808
+ - cd kube
3809
+ - collapseable_section_start "nodeinstall" "Ensure node version"
3810
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
3811
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
3812
+ - collapseable_section_end "nodeinstall"
3813
+ - collapseable_section_start "yarninstall" "Yarn install"
3814
+ - yarn install --immutable
3815
+ - collapseable_section_end "yarninstall"
3816
+ - yarn lint
3817
+ cache:
3818
+ - key: kube-yarn-mr$CI_MERGE_REQUEST_IID
3819
+ policy: pull-push
3820
+ paths:
3821
+ - kube/.yarn
3822
+ fallback_keys:
3823
+ - kube-yarn
3824
+ - key: kube-node-modules-mr$CI_MERGE_REQUEST_IID
3825
+ policy: pull-push
3826
+ paths:
3827
+ - kube/node_modules
3828
+ fallback_keys:
3829
+ - kube-node-modules
3830
+ rules:
3831
+ - when: never
3832
+ if: $CI_PIPELINE_SOURCE == "trigger"
3833
+ - if: $CI_MERGE_REQUEST_ID
3834
+ needs: []
3835
+ retry: *a1
3836
+ interruptible: true
3837
+ 'app3 ๐Ÿงช test | review ':
3838
+ stage: test
3839
+ image: path/to/docker/jobs-testing-chrome:the-version
3840
+ variables:
3841
+ KUBERNETES_CPU_REQUEST: '0.45'
3842
+ KUBERNETES_MEMORY_REQUEST: 1Gi
3843
+ KUBERNETES_MEMORY_LIMIT: 4Gi
3844
+ script:
3845
+ - collapseable_section_start "injectvars" "Injecting variables"
3846
+ - export APP_PATH="kube"
3847
+ - collapseable_section_end "injectvars"
3848
+ - collapseable_section_start "nodeinstall" "Ensure node version"
3849
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
3850
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
3851
+ - collapseable_section_end "nodeinstall"
3852
+ - cd kube
3853
+ - collapseable_section_start "nodeinstall" "Ensure node version"
3854
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
3855
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
3856
+ - collapseable_section_end "nodeinstall"
3857
+ - collapseable_section_start "yarninstall" "Yarn install"
3858
+ - yarn install --immutable
3859
+ - collapseable_section_end "yarninstall"
3860
+ - yarn test
3861
+ cache:
3862
+ - key: kube-yarn-mr$CI_MERGE_REQUEST_IID
3863
+ policy: pull-push
3864
+ paths:
3865
+ - kube/.yarn
3866
+ fallback_keys:
3867
+ - kube-yarn
3868
+ - key: kube-node-modules-mr$CI_MERGE_REQUEST_IID
3869
+ policy: pull-push
3870
+ paths:
3871
+ - kube/node_modules
3872
+ fallback_keys:
3873
+ - kube-node-modules
3874
+ rules:
3875
+ - when: never
3876
+ if: $CI_PIPELINE_SOURCE == "trigger"
3877
+ - if: $CI_MERGE_REQUEST_ID
3878
+ needs: []
3879
+ retry: *a1
3880
+ interruptible: true
3569
3881
  'app3 ๐Ÿ”จ app | review ':
3570
3882
  stage: build
3571
3883
  image: path/to/docker/jobs-default:the-version
@@ -3631,14 +3943,18 @@ app3 ๐Ÿงช test:
3631
3943
  - collapseable_section_end "yarninstall"
3632
3944
  - yarn build
3633
3945
  cache:
3634
- - key: kube-yarn
3946
+ - key: kube-yarn-mr$CI_MERGE_REQUEST_IID
3635
3947
  policy: pull-push
3636
3948
  paths:
3637
3949
  - kube/.yarn
3638
- - key: kube-node-modules
3950
+ fallback_keys:
3951
+ - kube-yarn
3952
+ - key: kube-node-modules-mr$CI_MERGE_REQUEST_IID
3639
3953
  policy: pull-push
3640
3954
  paths:
3641
3955
  - kube/node_modules
3956
+ fallback_keys:
3957
+ - kube-node-modules
3642
3958
  artifacts:
3643
3959
  paths:
3644
3960
  - kube/__build_info.json
@@ -3705,10 +4021,12 @@ app3 ๐Ÿงช test:
3705
4021
  - docker push $DOCKER_CACHE_IMAGE
3706
4022
  - collapseable_section_end "docker-push"
3707
4023
  cache:
3708
- - key: kube-yarn
4024
+ - key: kube-yarn-mr$CI_MERGE_REQUEST_IID
3709
4025
  policy: pull
3710
4026
  paths:
3711
4027
  - kube/.yarn
4028
+ fallback_keys:
4029
+ - kube-yarn
3712
4030
  rules:
3713
4031
  - when: never
3714
4032
  if: $CI_PIPELINE_SOURCE == "trigger"
@@ -3867,17 +4185,17 @@ app3 ๐Ÿงช test:
3867
4185
  - when: on_success
3868
4186
  if: $CI_MERGE_REQUEST_ID
3869
4187
  needs:
3870
- - job: app3 ๐Ÿ‘ฎ lint
4188
+ - job: 'app3 ๐Ÿ‘ฎ lint | review '
3871
4189
  artifacts: false
3872
4190
  - job: 'app3 ๐Ÿ”จ app | review '
3873
4191
  artifacts: false
3874
4192
  - job: 'app3 ๐Ÿ”จ docker | review '
3875
4193
  artifacts: false
3876
- - job: app3 ๐Ÿงช test
4194
+ - job: 'app3 ๐Ÿงช test | review '
3877
4195
  artifacts: false
3878
4196
  - job: 'app3 ๐Ÿงพ sbom | review '
3879
4197
  artifacts: true
3880
- - job: app3 ๐Ÿ›ก audit
4198
+ - job: 'app3 ๐Ÿ›ก audit | review '
3881
4199
  artifacts: false
3882
4200
  retry: *a1
3883
4201
  interruptible: true