diff options
Diffstat (limited to '.gitlab/ci/rails.gitlab-ci.yml')
-rw-r--r-- | .gitlab/ci/rails.gitlab-ci.yml | 362 |
1 files changed, 254 insertions, 108 deletions
diff --git a/.gitlab/ci/rails.gitlab-ci.yml b/.gitlab/ci/rails.gitlab-ci.yml index f73e0c1d503..4cef4ee26ff 100644 --- a/.gitlab/ci/rails.gitlab-ci.yml +++ b/.gitlab/ci/rails.gitlab-ci.yml @@ -1,9 +1,129 @@ +###################### +# rspec job base specs .rails-job-base: extends: - .default-retry - .default-before_script - .rails-cache +.rspec-base: + extends: .rails-job-base + stage: test + needs: ["setup-test-env", "retrieve-tests-metadata", "compile-test-assets"] + script: + - run_timed_command "scripts/gitaly-test-build" + - run_timed_command "scripts/gitaly-test-spawn" + - source scripts/rspec_helpers.sh + - rspec_paralellized_job "--tag ~quarantine --tag ~geo --tag ~level:migration" + artifacts: + expire_in: 31d + when: always + paths: + - coverage/ + - knapsack/ + - rspec_flaky/ + - rspec_profiling/ + - tmp/capybara/ + - tmp/memory_test/ + - log/*.log + reports: + junit: junit_rspec.xml + +.rspec-base-migration: + extends: .rails:rules:ee-and-foss-migration + script: + - run_timed_command "scripts/gitaly-test-build" + - run_timed_command "scripts/gitaly-test-spawn" + - source scripts/rspec_helpers.sh + - rspec_paralellized_job "--tag ~quarantine --tag ~geo --tag level:migration" + +.rspec-base-pg11: + extends: + - .rspec-base + - .use-pg11 + +.rspec-base-pg12: + extends: + - .rspec-base + - .use-pg12 + +.rspec-base-pg11-as-if-foss: + extends: + - .rspec-base + - .as-if-foss + - .use-pg11 + needs: ["setup-test-env", "retrieve-tests-metadata", "compile-test-assets as-if-foss"] + +.rspec-ee-base-pg11: + extends: + - .rspec-base + - .use-pg11-ee + +.rspec-ee-base-pg12: + extends: + - .rspec-base + - .use-pg12-ee + +.rspec-ee-base-geo: + extends: .rspec-base + script: + - run_timed_command "scripts/gitaly-test-build" + - run_timed_command "scripts/gitaly-test-spawn" + - source scripts/rspec_helpers.sh + - scripts/prepare_postgres_fdw.sh + - rspec_paralellized_job "--tag ~quarantine --tag geo" + +.rspec-ee-base-geo-pg11: + extends: + - .rspec-ee-base-geo + - .use-pg11-ee + +.rspec-ee-base-geo-pg12: + extends: + - .rspec-ee-base-geo + - .use-pg12-ee + +.db-job-base: + extends: + - .rails-job-base + - .rails:rules:ee-and-foss-migration + - .use-pg11 + stage: test + needs: ["setup-test-env"] +# rspec job base specs +###################### + +############################ +# rspec job parallel configs +.rspec-migration-parallel: + parallel: 5 + +.rspec-ee-migration-parallel: + parallel: 2 + +.rspec-unit-parallel: + parallel: 20 + +.rspec-ee-unit-parallel: + parallel: 10 + +.rspec-ee-unit-geo-parallel: + parallel: 2 + +.rspec-integration-parallel: + parallel: 8 + +.rspec-ee-integration-parallel: + parallel: 4 + +.rspec-system-parallel: + parallel: 24 + +.rspec-ee-system-parallel: + parallel: 6 +# rspec job parallel configs +############################ + ####################################################### # EE/FOSS: default refs (MRs, master, schedules) jobs # setup-test-env: @@ -86,73 +206,37 @@ downtime_check: script: - bundle exec rake downtime_check -.rspec-base: - extends: .rails-job-base - stage: test - needs: ["setup-test-env", "retrieve-tests-metadata", "compile-test-assets"] - script: - - run_timed_command "scripts/gitaly-test-build" - - run_timed_command "scripts/gitaly-test-spawn" - - source scripts/rspec_helpers.sh - - rspec_paralellized_job "--tag ~quarantine --tag ~geo --tag ~level:migration" - artifacts: - expire_in: 31d - when: always - paths: - - coverage/ - - knapsack/ - - rspec_flaky/ - - rspec_profiling/ - - tmp/capybara/ - - tmp/memory_test/ - - log/*.log - reports: - junit: junit_rspec.xml - -.rspec-base-pg11: - extends: - - .rspec-base - - .rails:rules:ee-and-foss - - .use-pg11 - -.rspec-base-migration: - script: - - run_timed_command "scripts/gitaly-test-build" - - run_timed_command "scripts/gitaly-test-spawn" - - source scripts/rspec_helpers.sh - - rspec_paralellized_job "--tag ~quarantine --tag ~geo --tag level:migration" - rspec migration pg11: extends: - .rspec-base-pg11 - .rspec-base-migration - parallel: 5 + - .rspec-migration-parallel rspec unit pg11: - extends: .rspec-base-pg11 - parallel: 20 + extends: + - .rspec-base-pg11 + - .rails:rules:ee-and-foss-unit + - .rspec-unit-parallel rspec integration pg11: - extends: .rspec-base-pg11 - parallel: 8 + extends: + - .rspec-base-pg11 + - .rails:rules:ee-and-foss-integration + - .rspec-integration-parallel rspec system pg11: - extends: .rspec-base-pg11 - parallel: 24 + extends: + - .rspec-base-pg11 + - .rails:rules:ee-and-foss-system + - .rspec-system-parallel rspec fast_spec_helper: - extends: .rspec-base-pg11 + extends: + - .rspec-base-pg11 + - .rails:rules:ee-and-foss-fast_spec_helper script: - bin/rspec spec/fast_spec_helper.rb -.db-job-base: - extends: - - .rails-job-base - - .rails:rules:ee-and-foss - - .use-pg11 - stage: test - needs: ["setup-test-env"] - db:migrate:reset: extends: .db-job-base script: @@ -216,7 +300,7 @@ gitlab:setup: rspec:coverage: extends: - .rails-job-base - - .rails:rules:ee-mr-and-master-only + - .rails:rules:rspec-coverage stage: post-test # We cannot use needs since it would mean needing 84 jobs (since most are parallelized) # so we use `dependencies` here. @@ -248,118 +332,180 @@ rspec:coverage: - coverage/index.html - coverage/assets/ - tmp/memory_test/ + reports: + cobertura: coverage/coverage.xml # EE/FOSS: default refs (MRs, master, schedules) jobs # ####################################################### ################################################## # EE: default refs (MRs, master, schedules) jobs # -.rspec-base-ee: - extends: - - .rspec-base - - .rails:rules:ee-only - -.rspec-base-pg11-as-if-foss: - extends: - - .rspec-base - - .rails:rules:as-if-foss - - .as-if-foss - - .use-pg11 - needs: ["setup-test-env", "retrieve-tests-metadata", "compile-test-assets as-if-foss"] - -.rspec-ee-base-pg11: - extends: - - .rspec-base-ee - - .use-pg11-ee - rspec migration pg11-as-if-foss: extends: - .rspec-base-pg11-as-if-foss - .rspec-base-migration - parallel: 5 + - .rails:rules:as-if-foss-migration + - .rspec-migration-parallel rspec unit pg11-as-if-foss: - extends: .rspec-base-pg11-as-if-foss - parallel: 20 + extends: + - .rspec-base-pg11-as-if-foss + - .rails:rules:as-if-foss-unit + - .rspec-unit-parallel rspec integration pg11-as-if-foss: - extends: .rspec-base-pg11-as-if-foss - parallel: 8 + extends: + - .rspec-base-pg11-as-if-foss + - .rails:rules:as-if-foss-integration + - .rspec-integration-parallel rspec system pg11-as-if-foss: - extends: .rspec-base-pg11-as-if-foss - parallel: 24 + extends: + - .rspec-base-pg11-as-if-foss + - .rails:rules:as-if-foss-system + - .rspec-system-parallel rspec-ee migration pg11: extends: - .rspec-ee-base-pg11 - .rspec-base-migration - parallel: 2 + - .rails:rules:ee-only-migration + - .rspec-ee-migration-parallel rspec-ee unit pg11: - extends: .rspec-ee-base-pg11 - parallel: 10 + extends: + - .rspec-ee-base-pg11 + - .rails:rules:ee-only-unit + - .rspec-ee-unit-parallel rspec-ee integration pg11: - extends: .rspec-ee-base-pg11 - parallel: 4 + extends: + - .rspec-ee-base-pg11 + - .rails:rules:ee-only-integration + - .rspec-ee-integration-parallel rspec-ee system pg11: - extends: .rspec-ee-base-pg11 - parallel: 6 - -.rspec-ee-base-geo: - extends: .rspec-base-ee - script: - - run_timed_command "scripts/gitaly-test-build" - - run_timed_command "scripts/gitaly-test-spawn" - - source scripts/rspec_helpers.sh - - scripts/prepare_postgres_fdw.sh - - rspec_paralellized_job "--tag ~quarantine --tag geo" - -.rspec-ee-base-geo-pg11: extends: - - .rspec-ee-base-geo - - .use-pg11-ee + - .rspec-ee-base-pg11 + - .rails:rules:ee-only-system + - .rspec-ee-system-parallel rspec-ee unit pg11 geo: - extends: .rspec-ee-base-geo-pg11 - parallel: 2 + extends: + - .rspec-ee-base-geo-pg11 + - .rails:rules:ee-only-unit + - .rspec-ee-unit-geo-parallel rspec-ee integration pg11 geo: - extends: .rspec-ee-base-geo-pg11 + extends: + - .rspec-ee-base-geo-pg11 + - .rails:rules:ee-only-integration rspec-ee system pg11 geo: - extends: .rspec-ee-base-geo-pg11 + extends: + - .rspec-ee-base-geo-pg11 + - .rails:rules:ee-only-system db:rollback geo: extends: - db:rollback - - .rails:rules:ee-only + - .rails:rules:ee-only-migration script: - bundle exec rake geo:db:migrate VERSION=20170627195211 - bundle exec rake geo:db:migrate # EE: default refs (MRs, master, schedules) jobs # ################################################## +########################################## +# EE/FOSS: master nightly scheduled jobs # +rspec migration pg12: + extends: + - .rspec-base-pg12 + - .rspec-base-migration + - .rails:rules:master-schedule-nightly--code-backstage + - .rspec-migration-parallel + +rspec unit pg12: + extends: + - .rspec-base-pg12 + - .rails:rules:master-schedule-nightly--code-backstage + - .rspec-unit-parallel + +rspec integration pg12: + extends: + - .rspec-base-pg12 + - .rails:rules:master-schedule-nightly--code-backstage + - .rspec-integration-parallel + +rspec system pg12: + extends: + - .rspec-base-pg12 + - .rails:rules:master-schedule-nightly--code-backstage + - .rspec-system-parallel +# EE/FOSS: master nightly scheduled jobs # +########################################## + +##################################### +# EE: master nightly scheduled jobs # +rspec-ee migration pg12: + extends: + - .rspec-ee-base-pg12 + - .rspec-base-migration + - .rails:rules:master-schedule-nightly--code-backstage-ee-only + - .rspec-ee-migration-parallel + +rspec-ee unit pg12: + extends: + - .rspec-ee-base-pg12 + - .rails:rules:master-schedule-nightly--code-backstage-ee-only + - .rspec-ee-unit-parallel + +rspec-ee integration pg12: + extends: + - .rspec-ee-base-pg12 + - .rails:rules:master-schedule-nightly--code-backstage-ee-only + - .rspec-ee-integration-parallel + +rspec-ee system pg12: + extends: + - .rspec-ee-base-pg12 + - .rails:rules:master-schedule-nightly--code-backstage-ee-only + - .rspec-ee-system-parallel + +rspec-ee unit pg12 geo: + extends: + - .rspec-ee-base-geo-pg12 + - .rails:rules:master-schedule-nightly--code-backstage-ee-only + - .rspec-ee-unit-geo-parallel + +rspec-ee integration pg12 geo: + extends: + - .rspec-ee-base-geo-pg12 + - .rails:rules:master-schedule-nightly--code-backstage-ee-only + +rspec-ee system pg12 geo: + extends: + - .rspec-ee-base-geo-pg12 + - .rails:rules:master-schedule-nightly--code-backstage-ee-only +# EE: master nightly scheduled jobs # +##################################### + ################################################## # EE: Canonical MR pipelines rspec foss-impact: extends: - - .rspec-base - - .as-if-foss + - .rspec-base-pg11-as-if-foss - .rails:rules:ee-mr-only - - .use-pg11 script: - install_gitlab_gem - run_timed_command "scripts/gitaly-test-build" - run_timed_command "scripts/gitaly-test-spawn" - source scripts/rspec_helpers.sh - tooling/bin/find_foss_tests tmp/matching_foss_tests.txt - - rspec_matched_tests tmp/matching_foss_tests.txt "--tag ~quarantine --tag ~geo --tag ~level:migration" + - rspec_matched_tests tmp/matching_foss_tests.txt "--tag ~quarantine" artifacts: expire_in: 7d paths: - tmp/matching_foss_tests.txt - tmp/capybara/ -# EE: Merge Request pipelines +# EE: Canonical MR pipelines ################################################## |