Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '.gitlab/ci/rails.gitlab-ci.yml')
-rw-r--r--.gitlab/ci/rails.gitlab-ci.yml362
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
##################################################