diff options
Diffstat (limited to '.gitlab/ci/rails.gitlab-ci.yml')
-rw-r--r-- | .gitlab/ci/rails.gitlab-ci.yml | 144 |
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 # ##################################### |