@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
- my-app ๐Ÿ›ก audit:
106
+ 'my-app ๐Ÿ›ก audit | dev ':
107
107
  stage: test
108
108
  image: path/to/docker/jobs-default:the-version
109
109
  variables:
@@ -120,9 +120,6 @@ my-app ๐Ÿ›ก 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 @@ my-app ๐Ÿ›ก audit:
131
128
  - stuck_or_timeout_failure
132
129
  interruptible: true
133
130
  allow_failure: true
134
- my-app ๐Ÿ‘ฎ lint:
131
+ 'my-app ๐Ÿ‘ฎ lint | dev ':
135
132
  stage: test
136
133
  image: path/to/docker/jobs-default:the-version
137
134
  variables:
@@ -168,13 +165,10 @@ my-app ๐Ÿ‘ฎ 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
- my-app ๐Ÿงช test:
171
+ 'my-app ๐Ÿงช test | dev ':
178
172
  stage: test
179
173
  image: path/to/docker/jobs-testing-chrome:the-version
180
174
  variables:
@@ -211,9 +205,6 @@ my-app ๐Ÿงช test:
211
205
  - when: never
212
206
  if: $CI_PIPELINE_SOURCE == "trigger"
213
207
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
214
- - when: never
215
- if: $CI_PIPELINE_SOURCE == "trigger"
216
- - if: $CI_MERGE_REQUEST_ID
217
208
  needs: []
218
209
  retry: *a1
219
210
  interruptible: true
@@ -291,6 +282,7 @@ my-app ๐Ÿงช test:
291
282
  - app/dist
292
283
  exclude:
293
284
  - app/.env
285
+ - app/.next/cache/**/*
294
286
  expire_in: 1 day
295
287
  when: always
296
288
  reports: {}
@@ -482,17 +474,17 @@ my-app ๐Ÿงช test:
482
474
  - when: on_success
483
475
  if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
484
476
  needs:
485
- - job: my-app ๐Ÿ‘ฎ lint
477
+ - job: 'my-app ๐Ÿ‘ฎ lint | dev '
486
478
  artifacts: false
487
479
  - job: 'my-app ๐Ÿ”จ app | dev '
488
480
  artifacts: false
489
481
  - job: 'my-app ๐Ÿ”จ docker | dev '
490
482
  artifacts: false
491
- - job: my-app ๐Ÿงช test
483
+ - job: 'my-app ๐Ÿงช test | dev '
492
484
  artifacts: false
493
485
  - job: 'my-app ๐Ÿงพ sbom | dev '
494
486
  artifacts: true
495
- - job: my-app ๐Ÿ›ก audit
487
+ - job: 'my-app ๐Ÿ›ก audit | dev '
496
488
  artifacts: false
497
489
  retry: *a1
498
490
  interruptible: true
@@ -531,6 +523,115 @@ my-app ๐Ÿงช test:
531
523
  retry: *a1
532
524
  interruptible: true
533
525
  allow_failure: true
526
+ 'my-app ๐Ÿ›ก audit | review ':
527
+ stage: test
528
+ image: path/to/docker/jobs-default:the-version
529
+ variables:
530
+ KUBERNETES_CPU_REQUEST: '0.45'
531
+ KUBERNETES_MEMORY_REQUEST: 1Gi
532
+ KUBERNETES_MEMORY_LIMIT: 4Gi
533
+ script:
534
+ - collapseable_section_start "injectvars" "Injecting variables"
535
+ - export APP_PATH="app"
536
+ - collapseable_section_end "injectvars"
537
+ - cd app
538
+ - yarn npm audit --environment production
539
+ rules:
540
+ - when: never
541
+ if: $CI_PIPELINE_SOURCE == "trigger"
542
+ - if: $CI_MERGE_REQUEST_ID
543
+ needs: []
544
+ retry: *a1
545
+ interruptible: true
546
+ allow_failure: true
547
+ 'my-app ๐Ÿ‘ฎ lint | review ':
548
+ stage: test
549
+ image: path/to/docker/jobs-default:the-version
550
+ variables:
551
+ KUBERNETES_CPU_REQUEST: '0.45'
552
+ KUBERNETES_MEMORY_REQUEST: 1Gi
553
+ KUBERNETES_MEMORY_LIMIT: 4Gi
554
+ script:
555
+ - collapseable_section_start "injectvars" "Injecting variables"
556
+ - export APP_PATH="app"
557
+ - collapseable_section_end "injectvars"
558
+ - collapseable_section_start "nodeinstall" "Ensure node version"
559
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
560
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
561
+ - collapseable_section_end "nodeinstall"
562
+ - cd app
563
+ - collapseable_section_start "nodeinstall" "Ensure node version"
564
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
565
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
566
+ - collapseable_section_end "nodeinstall"
567
+ - collapseable_section_start "yarninstall" "Yarn install"
568
+ - yarn install --immutable
569
+ - collapseable_section_end "yarninstall"
570
+ - yarn lint
571
+ cache:
572
+ - key: app-yarn-mr$CI_MERGE_REQUEST_IID
573
+ policy: pull-push
574
+ paths:
575
+ - app/.yarn
576
+ fallback_keys:
577
+ - app-yarn
578
+ - key: app-node-modules-mr$CI_MERGE_REQUEST_IID
579
+ policy: pull-push
580
+ paths:
581
+ - app/node_modules
582
+ fallback_keys:
583
+ - app-node-modules
584
+ rules:
585
+ - when: never
586
+ if: $CI_PIPELINE_SOURCE == "trigger"
587
+ - if: $CI_MERGE_REQUEST_ID
588
+ needs: []
589
+ retry: *a1
590
+ interruptible: true
591
+ 'my-app ๐Ÿงช test | review ':
592
+ stage: test
593
+ image: path/to/docker/jobs-testing-chrome:the-version
594
+ variables:
595
+ KUBERNETES_CPU_REQUEST: '0.45'
596
+ KUBERNETES_MEMORY_REQUEST: 1Gi
597
+ KUBERNETES_MEMORY_LIMIT: 4Gi
598
+ script:
599
+ - collapseable_section_start "injectvars" "Injecting variables"
600
+ - export APP_PATH="app"
601
+ - collapseable_section_end "injectvars"
602
+ - collapseable_section_start "nodeinstall" "Ensure node version"
603
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
604
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
605
+ - collapseable_section_end "nodeinstall"
606
+ - cd app
607
+ - collapseable_section_start "nodeinstall" "Ensure node version"
608
+ - if [ -f ~/.nvm/nvm.sh ]; then source ~/.nvm/nvm.sh; fi
609
+ - if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi
610
+ - collapseable_section_end "nodeinstall"
611
+ - collapseable_section_start "yarninstall" "Yarn install"
612
+ - yarn install --immutable
613
+ - collapseable_section_end "yarninstall"
614
+ - yarn test
615
+ cache:
616
+ - key: app-yarn-mr$CI_MERGE_REQUEST_IID
617
+ policy: pull-push
618
+ paths:
619
+ - app/.yarn
620
+ fallback_keys:
621
+ - app-yarn
622
+ - key: app-node-modules-mr$CI_MERGE_REQUEST_IID
623
+ policy: pull-push
624
+ paths:
625
+ - app/node_modules
626
+ fallback_keys:
627
+ - app-node-modules
628
+ rules:
629
+ - when: never
630
+ if: $CI_PIPELINE_SOURCE == "trigger"
631
+ - if: $CI_MERGE_REQUEST_ID
632
+ needs: []
633
+ retry: *a1
634
+ interruptible: true
534
635
  'my-app ๐Ÿ”จ app | review ':
535
636
  stage: build
536
637
  image: path/to/docker/jobs-default:the-version
@@ -592,14 +693,18 @@ my-app ๐Ÿงช test:
592
693
  - collapseable_section_end "yarninstall"
593
694
  - yarn build
594
695
  cache:
595
- - key: app-yarn
696
+ - key: app-yarn-mr$CI_MERGE_REQUEST_IID
596
697
  policy: pull-push
597
698
  paths:
598
699
  - app/.yarn
599
- - key: app-node-modules
700
+ fallback_keys:
701
+ - app-yarn
702
+ - key: app-node-modules-mr$CI_MERGE_REQUEST_IID
600
703
  policy: pull-push
601
704
  paths:
602
705
  - app/node_modules
706
+ fallback_keys:
707
+ - app-node-modules
603
708
  artifacts:
604
709
  paths:
605
710
  - app/__build_info.json
@@ -607,6 +712,7 @@ my-app ๐Ÿงช test:
607
712
  - app/dist
608
713
  exclude:
609
714
  - app/.env
715
+ - app/.next/cache/**/*
610
716
  expire_in: 1 day
611
717
  when: always
612
718
  reports: {}
@@ -665,10 +771,12 @@ my-app ๐Ÿงช test:
665
771
  - docker push $DOCKER_CACHE_IMAGE
666
772
  - collapseable_section_end "docker-push"
667
773
  cache:
668
- - key: app-yarn
774
+ - key: app-yarn-mr$CI_MERGE_REQUEST_IID
669
775
  policy: pull
670
776
  paths:
671
777
  - app/.yarn
778
+ fallback_keys:
779
+ - app-yarn
672
780
  rules:
673
781
  - when: never
674
782
  if: $CI_PIPELINE_SOURCE == "trigger"
@@ -804,17 +912,17 @@ my-app ๐Ÿงช test:
804
912
  - when: on_success
805
913
  if: $CI_MERGE_REQUEST_ID
806
914
  needs:
807
- - job: my-app ๐Ÿ‘ฎ lint
915
+ - job: 'my-app ๐Ÿ‘ฎ lint | review '
808
916
  artifacts: false
809
917
  - job: 'my-app ๐Ÿ”จ app | review '
810
918
  artifacts: false
811
919
  - job: 'my-app ๐Ÿ”จ docker | review '
812
920
  artifacts: false
813
- - job: my-app ๐Ÿงช test
921
+ - job: 'my-app ๐Ÿงช test | review '
814
922
  artifacts: false
815
923
  - job: 'my-app ๐Ÿงพ sbom | review '
816
924
  artifacts: true
817
- - job: my-app ๐Ÿ›ก audit
925
+ - job: 'my-app ๐Ÿ›ก audit | review '
818
926
  artifacts: false
819
927
  retry: *a1
820
928
  interruptible: true
@@ -930,6 +1038,7 @@ my-app ๐Ÿงช test:
930
1038
  - app/dist
931
1039
  exclude:
932
1040
  - app/.env
1041
+ - app/.next/cache/**/*
933
1042
  expire_in: 1 day
934
1043
  when: always
935
1044
  reports: {}
@@ -1237,6 +1346,7 @@ my-app ๐Ÿงช test:
1237
1346
  - app/dist
1238
1347
  exclude:
1239
1348
  - app/.env
1349
+ - app/.next/cache/**/*
1240
1350
  expire_in: 1 day
1241
1351
  when: always
1242
1352
  reports: {}
@@ -103,7 +103,7 @@ before_script:
103
103
  local section_title="\${1}"
104
104
  echo -e "section_end:\`date +%s\`:\${section_title}\\r\\e[0K"
105
105
  }
106
- app ๐Ÿ›ก audit:
106
+ 'app ๐Ÿ›ก audit | dev ':
107
107
  stage: test
108
108
  image: ruby:3.2.1
109
109
  variables: {}
@@ -117,9 +117,6 @@ app ๐Ÿ›ก audit:
117
117
  - when: never
118
118
  if: $CI_PIPELINE_SOURCE == "trigger"
119
119
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
120
- - when: never
121
- if: $CI_PIPELINE_SOURCE == "trigger"
122
- - if: $CI_MERGE_REQUEST_ID
123
120
  needs: []
124
121
  retry: &a1
125
122
  max: 2
@@ -128,7 +125,7 @@ app ๐Ÿ›ก audit:
128
125
  - stuck_or_timeout_failure
129
126
  interruptible: true
130
127
  allow_failure: true
131
- app ๐Ÿ‘ฎ lint:
128
+ 'app ๐Ÿ‘ฎ lint | dev ':
132
129
  stage: test
133
130
  image: ruby:3.2.1
134
131
  variables: {}
@@ -150,13 +147,10 @@ app ๐Ÿ‘ฎ lint:
150
147
  - when: never
151
148
  if: $CI_PIPELINE_SOURCE == "trigger"
152
149
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
153
- - when: never
154
- if: $CI_PIPELINE_SOURCE == "trigger"
155
- - if: $CI_MERGE_REQUEST_ID
156
150
  needs: []
157
151
  retry: *a1
158
152
  interruptible: true
159
- app ๐Ÿงช test:
153
+ 'app ๐Ÿงช test | dev ':
160
154
  stage: test
161
155
  image: ruby:3.2.1
162
156
  services:
@@ -181,9 +175,6 @@ app ๐Ÿงช test:
181
175
  - when: never
182
176
  if: $CI_PIPELINE_SOURCE == "trigger"
183
177
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
184
- - when: never
185
- if: $CI_PIPELINE_SOURCE == "trigger"
186
- - if: $CI_MERGE_REQUEST_ID
187
178
  needs: []
188
179
  retry: *a1
189
180
  interruptible: true
@@ -398,15 +389,15 @@ app ๐Ÿงช test:
398
389
  - when: on_success
399
390
  if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
400
391
  needs:
401
- - job: app ๐Ÿ‘ฎ lint
392
+ - job: 'app ๐Ÿ‘ฎ lint | dev '
402
393
  artifacts: false
403
394
  - job: 'app ๐Ÿ”จ docker | dev '
404
395
  artifacts: false
405
- - job: app ๐Ÿงช test
396
+ - job: 'app ๐Ÿงช test | dev '
406
397
  artifacts: false
407
398
  - job: 'app ๐Ÿงพ sbom | dev '
408
399
  artifacts: true
409
- - job: app ๐Ÿ›ก audit
400
+ - job: 'app ๐Ÿ›ก audit | dev '
410
401
  artifacts: false
411
402
  retry: *a1
412
403
  interruptible: true
@@ -519,6 +510,77 @@ app ๐Ÿงช test:
519
510
  retry: *a1
520
511
  interruptible: true
521
512
  allow_failure: true
513
+ 'app ๐Ÿ›ก audit | review ':
514
+ stage: test
515
+ image: ruby:3.2.1
516
+ variables: {}
517
+ script:
518
+ - collapseable_section_start "injectvars" "Injecting variables"
519
+ - collapseable_section_end "injectvars"
520
+ - cd .temp-with-dockerfile
521
+ - gem install bundler-audit
522
+ - bundle audit check
523
+ rules:
524
+ - when: never
525
+ if: $CI_PIPELINE_SOURCE == "trigger"
526
+ - if: $CI_MERGE_REQUEST_ID
527
+ needs: []
528
+ retry: *a1
529
+ interruptible: true
530
+ allow_failure: true
531
+ 'app ๐Ÿ‘ฎ lint | review ':
532
+ stage: test
533
+ image: ruby:3.2.1
534
+ variables: {}
535
+ script:
536
+ - collapseable_section_start "injectvars" "Injecting variables"
537
+ - collapseable_section_end "injectvars"
538
+ - cd .temp-with-dockerfile
539
+ - bundle config set path 'tmp/cache'
540
+ - bundle install -j $(nproc)
541
+ - bundle exec rubocop
542
+ cache: &a3
543
+ key:
544
+ files:
545
+ - Gemfile.lock
546
+ prefix: $CI_JOB_IMAGE
547
+ paths:
548
+ - tmp/cache
549
+ rules:
550
+ - when: never
551
+ if: $CI_PIPELINE_SOURCE == "trigger"
552
+ - if: $CI_MERGE_REQUEST_ID
553
+ needs: []
554
+ retry: *a1
555
+ interruptible: true
556
+ 'app ๐Ÿงช test | review ':
557
+ stage: test
558
+ image: ruby:3.2.1
559
+ services:
560
+ - name: docker.io/postgres:latest
561
+ alias: database
562
+ variables:
563
+ POSTGRES_HOST_AUTH_METHOD: trust
564
+ variables:
565
+ RAILS_ENV: test
566
+ DATABASE_URL: postgresql://postgres@database
567
+ script:
568
+ - collapseable_section_start "injectvars" "Injecting variables"
569
+ - collapseable_section_end "injectvars"
570
+ - cd .temp-with-dockerfile
571
+ - bundle config set path 'tmp/cache'
572
+ - bundle install -j $(nproc)
573
+ - bundle exec rake db:test:prepare
574
+ - bundle exec rake assets:precompile assets:clean
575
+ - bundle exec rspec
576
+ cache: *a3
577
+ rules:
578
+ - when: never
579
+ if: $CI_PIPELINE_SOURCE == "trigger"
580
+ - if: $CI_MERGE_REQUEST_ID
581
+ needs: []
582
+ retry: *a1
583
+ interruptible: true
522
584
  'app ๐Ÿ”จ docker | review ':
523
585
  stage: build
524
586
  image: path/to/docker/docker-build:the-version
@@ -736,15 +798,15 @@ app ๐Ÿงช test:
736
798
  - when: on_success
737
799
  if: $CI_MERGE_REQUEST_ID
738
800
  needs:
739
- - job: app ๐Ÿ‘ฎ lint
801
+ - job: 'app ๐Ÿ‘ฎ lint | review '
740
802
  artifacts: false
741
803
  - job: 'app ๐Ÿ”จ docker | review '
742
804
  artifacts: false
743
- - job: app ๐Ÿงช test
805
+ - job: 'app ๐Ÿงช test | review '
744
806
  artifacts: false
745
807
  - job: 'app ๐Ÿงพ sbom | review '
746
808
  artifacts: true
747
- - job: app ๐Ÿ›ก audit
809
+ - job: 'app ๐Ÿ›ก audit | review '
748
810
  artifacts: false
749
811
  retry: *a1
750
812
  interruptible: true
@@ -1514,13 +1576,13 @@ create release:
1514
1576
  - semanticRelease
1515
1577
  - echo '๐Ÿ‘‰ The project access token might be invald - run \`project-renew-token\` in catladder CLI to fix.'
1516
1578
  rules:
1517
- - &a3
1579
+ - &a4
1518
1580
  if: $CI_COMMIT_MESSAGE =~ /^chore\\(release\\).*/
1519
1581
  when: never
1520
- - &a4
1582
+ - &a5
1521
1583
  if: $CI_PIPELINE_SOURCE == "trigger"
1522
1584
  when: never
1523
- - &a5
1585
+ - &a6
1524
1586
  if: $CI_PIPELINE_SOURCE == "schedule"
1525
1587
  when: never
1526
1588
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
@@ -1534,9 +1596,9 @@ create release:
1534
1596
  - semanticRelease
1535
1597
  - echo '๐Ÿ‘‰ The project access token might be invald - run \`project-renew-token\` in catladder CLI to fix.'
1536
1598
  rules:
1537
- - *a3
1538
1599
  - *a4
1539
1600
  - *a5
1601
+ - *a6
1540
1602
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
1541
1603
  when: manual
1542
1604
  - if: $CI_COMMIT_BRANCH =~ /^[0-9]+.([0-9]+|x).x$/
@@ -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
- app ๐Ÿ›ก audit:
106
+ 'app ๐Ÿ›ก audit | dev ':
107
107
  stage: test
108
108
  image: ruby:3.2.1
109
109
  variables: {}
@@ -117,9 +117,6 @@ app ๐Ÿ›ก audit:
117
117
  - when: never
118
118
  if: $CI_PIPELINE_SOURCE == "trigger"
119
119
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
120
- - when: never
121
- if: $CI_PIPELINE_SOURCE == "trigger"
122
- - if: $CI_MERGE_REQUEST_ID
123
120
  needs: []
124
121
  retry: &a1
125
122
  max: 2
@@ -128,7 +125,7 @@ app ๐Ÿ›ก audit:
128
125
  - stuck_or_timeout_failure
129
126
  interruptible: true
130
127
  allow_failure: true
131
- app ๐Ÿ‘ฎ lint:
128
+ 'app ๐Ÿ‘ฎ lint | dev ':
132
129
  stage: test
133
130
  image: ruby:3.2.1
134
131
  variables: {}
@@ -150,13 +147,10 @@ app ๐Ÿ‘ฎ lint:
150
147
  - when: never
151
148
  if: $CI_PIPELINE_SOURCE == "trigger"
152
149
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
153
- - when: never
154
- if: $CI_PIPELINE_SOURCE == "trigger"
155
- - if: $CI_MERGE_REQUEST_ID
156
150
  needs: []
157
151
  retry: *a1
158
152
  interruptible: true
159
- app ๐Ÿงช test:
153
+ 'app ๐Ÿงช test | dev ':
160
154
  stage: test
161
155
  image: ruby:3.2.1
162
156
  services:
@@ -181,9 +175,6 @@ app ๐Ÿงช test:
181
175
  - when: never
182
176
  if: $CI_PIPELINE_SOURCE == "trigger"
183
177
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
184
- - when: never
185
- if: $CI_PIPELINE_SOURCE == "trigger"
186
- - if: $CI_MERGE_REQUEST_ID
187
178
  needs: []
188
179
  retry: *a1
189
180
  interruptible: true
@@ -393,15 +384,15 @@ app ๐Ÿงช test:
393
384
  - when: on_success
394
385
  if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/
395
386
  needs:
396
- - job: app ๐Ÿ‘ฎ lint
387
+ - job: 'app ๐Ÿ‘ฎ lint | dev '
397
388
  artifacts: false
398
389
  - job: 'app ๐Ÿ”จ docker | dev '
399
390
  artifacts: false
400
- - job: app ๐Ÿงช test
391
+ - job: 'app ๐Ÿงช test | dev '
401
392
  artifacts: false
402
393
  - job: 'app ๐Ÿงพ sbom | dev '
403
394
  artifacts: true
404
- - job: app ๐Ÿ›ก audit
395
+ - job: 'app ๐Ÿ›ก audit | dev '
405
396
  artifacts: false
406
397
  retry: *a1
407
398
  interruptible: true
@@ -514,6 +505,77 @@ app ๐Ÿงช test:
514
505
  retry: *a1
515
506
  interruptible: true
516
507
  allow_failure: true
508
+ 'app ๐Ÿ›ก audit | review ':
509
+ stage: test
510
+ image: ruby:3.2.1
511
+ variables: {}
512
+ script:
513
+ - collapseable_section_start "injectvars" "Injecting variables"
514
+ - collapseable_section_end "injectvars"
515
+ - cd .
516
+ - gem install bundler-audit
517
+ - bundle audit check
518
+ rules:
519
+ - when: never
520
+ if: $CI_PIPELINE_SOURCE == "trigger"
521
+ - if: $CI_MERGE_REQUEST_ID
522
+ needs: []
523
+ retry: *a1
524
+ interruptible: true
525
+ allow_failure: true
526
+ 'app ๐Ÿ‘ฎ lint | review ':
527
+ stage: test
528
+ image: ruby:3.2.1
529
+ variables: {}
530
+ script:
531
+ - collapseable_section_start "injectvars" "Injecting variables"
532
+ - collapseable_section_end "injectvars"
533
+ - cd .
534
+ - bundle config set path 'tmp/cache'
535
+ - bundle install -j $(nproc)
536
+ - bundle exec rubocop
537
+ cache: &a3
538
+ key:
539
+ files:
540
+ - Gemfile.lock
541
+ prefix: $CI_JOB_IMAGE
542
+ paths:
543
+ - tmp/cache
544
+ rules:
545
+ - when: never
546
+ if: $CI_PIPELINE_SOURCE == "trigger"
547
+ - if: $CI_MERGE_REQUEST_ID
548
+ needs: []
549
+ retry: *a1
550
+ interruptible: true
551
+ 'app ๐Ÿงช test | review ':
552
+ stage: test
553
+ image: ruby:3.2.1
554
+ services:
555
+ - name: docker.io/postgres:latest
556
+ alias: database
557
+ variables:
558
+ POSTGRES_HOST_AUTH_METHOD: trust
559
+ variables:
560
+ RAILS_ENV: test
561
+ DATABASE_URL: postgresql://postgres@database
562
+ script:
563
+ - collapseable_section_start "injectvars" "Injecting variables"
564
+ - collapseable_section_end "injectvars"
565
+ - cd .
566
+ - bundle config set path 'tmp/cache'
567
+ - bundle install -j $(nproc)
568
+ - bundle exec rake db:test:prepare
569
+ - bundle exec rake assets:precompile assets:clean
570
+ - bundle exec rspec
571
+ cache: *a3
572
+ rules:
573
+ - when: never
574
+ if: $CI_PIPELINE_SOURCE == "trigger"
575
+ - if: $CI_MERGE_REQUEST_ID
576
+ needs: []
577
+ retry: *a1
578
+ interruptible: true
517
579
  'app ๐Ÿ”จ docker | review ':
518
580
  stage: build
519
581
  image: path/to/docker/docker-build:the-version
@@ -726,15 +788,15 @@ app ๐Ÿงช test:
726
788
  - when: on_success
727
789
  if: $CI_MERGE_REQUEST_ID
728
790
  needs:
729
- - job: app ๐Ÿ‘ฎ lint
791
+ - job: 'app ๐Ÿ‘ฎ lint | review '
730
792
  artifacts: false
731
793
  - job: 'app ๐Ÿ”จ docker | review '
732
794
  artifacts: false
733
- - job: app ๐Ÿงช test
795
+ - job: 'app ๐Ÿงช test | review '
734
796
  artifacts: false
735
797
  - job: 'app ๐Ÿงพ sbom | review '
736
798
  artifacts: true
737
- - job: app ๐Ÿ›ก audit
799
+ - job: 'app ๐Ÿ›ก audit | review '
738
800
  artifacts: false
739
801
  retry: *a1
740
802
  interruptible: true
@@ -1494,13 +1556,13 @@ create release:
1494
1556
  - semanticRelease
1495
1557
  - echo '๐Ÿ‘‰ The project access token might be invald - run \`project-renew-token\` in catladder CLI to fix.'
1496
1558
  rules:
1497
- - &a3
1559
+ - &a4
1498
1560
  if: $CI_COMMIT_MESSAGE =~ /^chore\\(release\\).*/
1499
1561
  when: never
1500
- - &a4
1562
+ - &a5
1501
1563
  if: $CI_PIPELINE_SOURCE == "trigger"
1502
1564
  when: never
1503
- - &a5
1565
+ - &a6
1504
1566
  if: $CI_PIPELINE_SOURCE == "schedule"
1505
1567
  when: never
1506
1568
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
@@ -1514,9 +1576,9 @@ create release:
1514
1576
  - semanticRelease
1515
1577
  - echo '๐Ÿ‘‰ The project access token might be invald - run \`project-renew-token\` in catladder CLI to fix.'
1516
1578
  rules:
1517
- - *a3
1518
1579
  - *a4
1519
1580
  - *a5
1581
+ - *a6
1520
1582
  - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
1521
1583
  when: manual
1522
1584
  - if: $CI_COMMIT_BRANCH =~ /^[0-9]+.([0-9]+|x).x$/