summaryrefslogtreecommitdiff
path: root/.gitlab/ci/rails.gitlab-ci.yml
diff options
context:
space:
mode:
Diffstat (limited to '.gitlab/ci/rails.gitlab-ci.yml')
-rw-r--r--.gitlab/ci/rails.gitlab-ci.yml144
1 files changed, 119 insertions, 25 deletions
diff --git a/.gitlab/ci/rails.gitlab-ci.yml b/.gitlab/ci/rails.gitlab-ci.yml
index b74c8ebf575..0dfc353820f 100644
--- a/.gitlab/ci/rails.gitlab-ci.yml
+++ b/.gitlab/ci/rails.gitlab-ci.yml
@@ -47,7 +47,6 @@
- rspec_profiling/
- tmp/capybara/
- tmp/memory_test/
- - tmp/feature_flags/
- log/*.log
reports:
junit: junit_rspec.xml
@@ -75,6 +74,11 @@
- .use-pg12
needs: ["setup-test-env", "retrieve-tests-metadata", "compile-test-assets as-if-foss", "detect-tests"]
+.rspec-base-pg13:
+ extends:
+ - .rspec-base
+ - .use-pg13
+
.rspec-ee-base-pg11:
extends:
- .rspec-base
@@ -85,6 +89,11 @@
- .rspec-base
- .use-pg12-ee
+.rspec-ee-base-pg13:
+ extends:
+ - .rspec-base
+ - .use-pg13-ee
+
.rspec-ee-base-geo:
extends: .rspec-base
script:
@@ -101,6 +110,11 @@
- .rspec-ee-base-geo
- .use-pg12-ee
+.rspec-ee-base-geo-pg13:
+ extends:
+ - .rspec-ee-base-geo
+ - .use-pg13-ee
+
.db-job-base:
extends:
- .rails-job-base
@@ -114,7 +128,7 @@
############################
# rspec job parallel configs
.rspec-migration-parallel:
- parallel: 7
+ parallel: 9
.rspec-ee-migration-parallel:
parallel: 3
@@ -123,7 +137,7 @@
parallel: 20
.rspec-ee-unit-parallel:
- parallel: 10
+ parallel: 12
.rspec-ee-unit-geo-parallel:
parallel: 2
@@ -149,13 +163,16 @@ setup-test-env:
- .rails-job-base
- .setup-test-env-cache
- .rails:rules:code-backstage-qa
- - .use-pg12
stage: prepare
variables:
GITLAB_TEST_EAGER_LOAD: "0"
+ SETUP_DB: "false"
script:
- - run_timed_command "bundle exec ruby -I. -e 'require \"config/environment\"; TestEnv.init'"
+ - run_timed_command "scripts/setup-test-env"
+ - echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-build[collapsed=true]\r\e[0KCompiling Gitaly binaries"
- run_timed_command "scripts/gitaly-test-build" # Do not use 'bundle exec' here
+ - echo -e "\e[0Ksection_end:`date +%s`:gitaly-test-build\r\e[0K"
+
artifacts:
expire_in: 7d
paths:
@@ -237,6 +254,11 @@ static-analysis:
script:
- run_timed_command "retry yarn install --frozen-lockfile"
- scripts/static-analysis
+ artifacts:
+ expire_in: 31d
+ when: always
+ paths:
+ - tmp/feature_flags/
static-analysis as-if-foss:
extends:
@@ -244,6 +266,22 @@ static-analysis as-if-foss:
- .static-analysis:rules:as-if-foss
- .as-if-foss
+zeitwerk-check:
+ extends:
+ - .rails-cache
+ - .default-before_script
+ - .rails:rules:ee-and-foss-unit
+ variables:
+ BUNDLE_WITHOUT: ""
+ SETUP_DB: "false"
+ needs: []
+ stage: test
+ script:
+ - sed -i -e "s/config\.autoloader = :classic/config\.autoloader = :zeitwerk/" config/application.rb
+ - RAILS_ENV=test bundle exec rake zeitwerk:check
+ - RAILS_ENV=development bundle exec rake zeitwerk:check
+ - RAILS_ENV=production bundle exec rake zeitwerk:check
+
rspec migration pg12:
extends:
- .rspec-base-pg12
@@ -355,11 +393,10 @@ db:migrate-from-previous-major-version:
- sed -i -e "s/gem 'mimemagic', '~> 0.3.2'/gem 'ruby-magic', '~> 0.4.0'/" Gemfile
- run_timed_command "gem install bundler:1.17.3"
- run_timed_command "bundle update google-protobuf nokogiri grpc mimemagic bootsnap"
- - run_timed_command "bundle install ${BUNDLE_INSTALL_FLAGS}"
- - cp config/gitlab.yml.example config/gitlab.yml
+ - SETUP_DB=false USE_BUNDLE_INSTALL=true bash scripts/prepare_build.sh
- run_timed_command "bundle exec rake db:drop db:create db:structure:load db:migrate db:seed_fu"
- git checkout -f $CI_COMMIT_SHA
- - run_timed_command "bundle install ${BUNDLE_INSTALL_FLAGS}"
+ - SETUP_DB=false USE_BUNDLE_INSTALL=true bash scripts/prepare_build.sh
- run_timed_command "bundle exec rake db:migrate"
db:rollback:
@@ -487,23 +524,7 @@ rspec:feature-flags:
- .coverage-base
- .rails:rules:rspec-feature-flags
stage: post-test
- # We cannot use needs since it would mean needing 84 jobs (since most are parallelized)
- # so we use `dependencies` here.
- dependencies:
- - setup-test-env
- - rspec migration pg12
- - rspec unit pg12
- - rspec integration pg12
- - rspec system pg12
- - rspec-ee migration pg12
- - rspec-ee unit pg12
- - rspec-ee integration pg12
- - rspec-ee system pg12
- - rspec-ee unit pg12 geo
- - rspec-ee integration pg12 geo
- - rspec-ee system pg12 geo
- - memory-static
- - memory-on-boot
+ needs: ["static-analysis"]
script:
- !reference [.minimal-bundle-install, script]
- if [ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]; then
@@ -664,6 +685,8 @@ db:rollback geo:
##########################################
# EE/FOSS: default branch nightly scheduled jobs #
+
+# PG11
rspec migration pg11:
extends:
- .rspec-base-pg11
@@ -688,11 +711,40 @@ rspec system pg11:
- .rspec-base-pg11
- .rails:rules:default-branch-schedule-nightly--code-backstage
- .rspec-system-parallel
+
+# PG13
+rspec migration pg13:
+ extends:
+ - .rspec-base-pg13
+ - .rspec-base-migration
+ - .rails:rules:default-branch-schedule-nightly--code-backstage
+ - .rspec-migration-parallel
+
+rspec unit pg13:
+ extends:
+ - .rspec-base-pg13
+ - .rails:rules:default-branch-schedule-nightly--code-backstage
+ - .rspec-unit-parallel
+
+rspec integration pg13:
+ extends:
+ - .rspec-base-pg13
+ - .rails:rules:default-branch-schedule-nightly--code-backstage
+ - .rspec-integration-parallel
+
+rspec system pg13:
+ extends:
+ - .rspec-base-pg13
+ - .rails:rules:default-branch-schedule-nightly--code-backstage
+ - .rspec-system-parallel
+
# EE/FOSS: default branch nightly scheduled jobs #
##########################################
#####################################
# EE: default branch nightly scheduled jobs #
+
+# PG11
rspec-ee migration pg11:
extends:
- .rspec-ee-base-pg11
@@ -733,6 +785,48 @@ rspec-ee system pg11 geo:
extends:
- .rspec-ee-base-geo-pg11
- .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only
+
+# PG13
+rspec-ee migration pg13:
+ extends:
+ - .rspec-ee-base-pg13
+ - .rspec-base-migration
+ - .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only
+ - .rspec-ee-migration-parallel
+
+rspec-ee unit pg13:
+ extends:
+ - .rspec-ee-base-pg13
+ - .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only
+ - .rspec-ee-unit-parallel
+
+rspec-ee integration pg13:
+ extends:
+ - .rspec-ee-base-pg13
+ - .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only
+ - .rspec-ee-integration-parallel
+
+rspec-ee system pg13:
+ extends:
+ - .rspec-ee-base-pg13
+ - .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only
+ - .rspec-ee-system-parallel
+
+rspec-ee unit pg13 geo:
+ extends:
+ - .rspec-ee-base-geo-pg13
+ - .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only
+ - .rspec-ee-unit-geo-parallel
+
+rspec-ee integration pg13 geo:
+ extends:
+ - .rspec-ee-base-geo-pg13
+ - .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only
+
+rspec-ee system pg13 geo:
+ extends:
+ - .rspec-ee-base-geo-pg13
+ - .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only
# EE: default branch nightly scheduled jobs #
#####################################