2020-02-07 13:09:03 -05:00
.rails-job-base :
2019-07-01 11:04:19 -04:00
extends :
2019-08-26 16:41:55 -04:00
- .default-retry
- .default-before_script
2020-05-14 11:08:14 -04:00
- .rails-cache
2019-09-17 10:16:34 -04:00
2020-04-28 05:09:34 -04:00
#######################################################
# EE/FOSS: default refs (MRs, master, schedules) jobs #
2020-05-19 05:08:12 -04:00
setup-test-env :
2019-09-27 11:06:16 -04:00
extends :
2020-02-07 13:09:03 -05:00
- .rails-job-base
2020-05-19 05:08:12 -04:00
- .rails:rules:default-refs-code-backstage-qa
- .use-pg11
2019-09-27 11:06:16 -04:00
stage : prepare
2020-05-14 11:08:14 -04:00
variables :
GITLAB_TEST_EAGER_LOAD : "0"
2019-09-27 11:06:16 -04:00
script :
2020-05-14 11:08:14 -04:00
- run_timed_command "bundle exec ruby -I. -e 'require \"config/environment\"; TestEnv.init'"
- run_timed_command "scripts/gitaly-test-build" # Do not use 'bundle exec' here
2020-05-19 05:08:12 -04:00
- rm tmp/tests/gitaly/.ruby-bundle # This file prevents gems from being installed even if vendor/gitaly-ruby is missing
2019-09-27 11:06:16 -04:00
artifacts :
expire_in : 7d
paths :
- config/secrets.yml
2020-05-14 11:08:14 -04:00
- tmp/tests/gitaly
- tmp/tests/gitlab-elasticsearch-indexer
- tmp/tests/gitlab-shell
- tmp/tests/gitlab-test-fork
- tmp/tests/gitlab-test-fork_bare
- tmp/tests/gitlab-test
- tmp/tests/gitlab-workhorse
- tmp/tests/repositories
- tmp/tests/second_storage
when : always
2020-06-02 08:08:33 -04:00
update-rails-cache :
extends :
- setup-test-env
- .shared:rules:update-cache
artifacts : {} # This job's purpose is only to update the cache.
2019-09-27 11:06:16 -04:00
cache :
2020-06-02 08:08:33 -04:00
policy : push # We want to rebuild the cache from scratch to ensure stale dependencies are cleaned up.
.static-analysis-base :
extends :
- .default-retry
- .default-before_script
- .static-analysis-cache
needs : [ ]
variables :
SETUP_DB : "false"
ENABLE_SPRING : "1"
update-static-analysis-cache :
extends :
- .static-analysis-base
- .shared:rules:update-cache
stage : prepare
script :
- rm -rf ./node_modules # We remove node_modules because there's no mechanism to remove stall entries.
- run_timed_command "retry yarn install --frozen-lockfile"
- bundle exec rubocop --parallel # For the moment we only cache `vendor/ruby/`, `node_modules/`, and `tmp/rubocop_cache` so we don't need to run all the tasks,
cache :
# We want to rebuild the cache from scratch to ensure stale dependencies are cleaned up but RuboCop has a mechanism
# for keeping only the N latest cache files, so we take advantage of it with `pull-push` and removing `node_modules` at the start of the job.
2019-09-27 11:06:16 -04:00
policy : pull-push
2020-02-07 13:09:03 -05:00
static-analysis :
extends :
2020-06-02 08:08:33 -04:00
- .static-analysis-base
2020-02-07 13:09:03 -05:00
- .rails:rules:default-refs-code-backstage-qa
stage : test
2020-05-28 14:08:37 -04:00
parallel : 4
2020-02-07 13:09:03 -05:00
script :
2020-06-02 08:08:33 -04:00
- run_timed_command "retry yarn install --frozen-lockfile"
2020-02-07 13:09:03 -05:00
- scripts/static-analysis
downtime_check :
extends :
- .rails-job-base
2020-02-18 10:08:51 -05:00
- .rails:rules:downtime_check
2020-06-02 08:08:33 -04:00
needs : [ ]
2020-02-07 13:09:03 -05:00
stage : test
variables :
SETUP_DB : "false"
script :
- bundle exec rake downtime_check
2019-09-17 10:16:34 -04:00
.rspec-base :
2020-02-07 13:09:03 -05:00
extends : .rails-job-base
2019-04-12 04:56:38 -04:00
stage : test
2020-06-02 08:08:33 -04:00
needs : [ "setup-test-env" , "retrieve-tests-metadata" , "compile-test-assets" ]
2019-04-12 04:56:38 -04:00
script :
2020-05-19 05:08:12 -04:00
- run_timed_command "scripts/gitaly-test-build"
- run_timed_command "scripts/gitaly-test-spawn"
2019-09-27 11:06:16 -04:00
- source scripts/rspec_helpers.sh
2019-12-24 10:07:44 -05:00
- rspec_paralellized_job "--tag ~quarantine --tag ~geo --tag ~level:migration"
2019-04-12 04:56:38 -04:00
artifacts :
expire_in : 31d
when : always
paths :
- coverage/
- knapsack/
- rspec_flaky/
- rspec_profiling/
- tmp/capybara/
2019-07-12 06:44:17 -04:00
- tmp/memory_test/
2020-05-05 17:09:42 -04:00
- log/*.log
2019-07-19 02:53:53 -04:00
reports :
junit : junit_rspec.xml
2019-04-12 04:56:38 -04:00
2020-05-13 20:07:47 -04:00
.rspec-base-pg11 :
2019-08-26 16:41:55 -04:00
extends :
- .rspec-base
2020-02-07 13:09:03 -05:00
- .rails:rules:ee-and-foss
2020-05-13 20:07:47 -04:00
- .use-pg11
2019-04-12 04:56:38 -04:00
2019-12-24 10:07:44 -05:00
.rspec-base-migration :
script :
2020-05-19 05:08:12 -04:00
- run_timed_command "scripts/gitaly-test-build"
- run_timed_command "scripts/gitaly-test-spawn"
2019-12-24 10:07:44 -05:00
- source scripts/rspec_helpers.sh
- rspec_paralellized_job "--tag ~quarantine --tag ~geo --tag level:migration"
2020-05-13 20:07:47 -04:00
rspec migration pg11 :
2019-12-24 10:07:44 -05:00
extends :
2020-05-13 20:07:47 -04:00
- .rspec-base-pg11
2019-12-24 10:07:44 -05:00
- .rspec-base-migration
2020-02-07 07:09:13 -05:00
parallel : 5
2019-12-02 16:06:51 -05:00
2020-05-13 20:07:47 -04:00
rspec unit pg11 :
extends : .rspec-base-pg11
2019-12-02 16:06:51 -05:00
parallel : 20
2019-09-27 11:06:16 -04:00
2020-05-13 20:07:47 -04:00
rspec integration pg11 :
extends : .rspec-base-pg11
2020-02-07 07:09:13 -05:00
parallel : 8
2019-04-12 04:56:38 -04:00
2020-05-13 20:07:47 -04:00
rspec system pg11 :
extends : .rspec-base-pg11
2019-09-27 11:06:16 -04:00
parallel : 24
rspec fast_spec_helper :
2020-05-13 20:07:47 -04:00
extends : .rspec-base-pg11
2019-09-27 11:06:16 -04:00
script :
- bin/rspec spec/fast_spec_helper.rb
2019-09-17 10:16:34 -04:00
.db-job-base :
2019-08-26 16:41:55 -04:00
extends :
2020-02-07 13:09:03 -05:00
- .rails-job-base
- .rails:rules:ee-and-foss
2020-05-13 20:07:47 -04:00
- .use-pg11
2019-08-28 17:07:54 -04:00
stage : test
2020-05-13 20:07:47 -04:00
needs : [ "setup-test-env" ]
2019-09-17 10:16:34 -04:00
db:migrate:reset :
extends : .db-job-base
2019-08-26 16:41:55 -04:00
script :
- bundle exec rake db:migrate:reset
2019-04-12 04:56:38 -04:00
2019-08-26 16:41:55 -04:00
db:check-schema :
2020-05-04 14:10:20 -04:00
extends :
- .db-job-base
- .rails:rules:ee-mr-and-master-only
2019-04-12 04:56:38 -04:00
script :
- source scripts/schema_changed.sh
2020-05-18 11:08:15 -04:00
db:migrate-from-v12.10.0 :
2019-09-17 10:16:34 -04:00
extends : .db-job-base
2019-08-26 16:41:55 -04:00
variables :
SETUP_DB : "false"
script :
2020-05-18 11:08:15 -04:00
- export PROJECT_TO_CHECKOUT="gitlab"
- export TAG_TO_CHECKOUT="v12.10.0-ee"
- '[[ -d "ee/" ]] || export PROJECT_TO_CHECKOUT="gitlab-foss"'
- '[[ -d "ee/" ]] || export TAG_TO_CHECKOUT="v12.10.0"'
2019-09-17 10:16:34 -04:00
- git fetch https://gitlab.com/gitlab-org/$PROJECT_TO_CHECKOUT.git $TAG_TO_CHECKOUT
2019-08-26 16:41:55 -04:00
- git checkout -f FETCH_HEAD
- bundle update google-protobuf grpc bootsnap
- bundle install $BUNDLE_INSTALL_FLAGS
- date
- cp config/gitlab.yml.example config/gitlab.yml
2020-05-18 11:08:15 -04:00
- bundle exec rake db:drop db:create db:structure:load db:seed_fu
2019-08-26 16:41:55 -04:00
- date
- git checkout -f $CI_COMMIT_SHA
- bundle install $BUNDLE_INSTALL_FLAGS
- date
- . scripts/prepare_build.sh
- date
- bundle exec rake db:migrate
2019-04-12 04:56:38 -04:00
2019-08-26 16:41:55 -04:00
db:rollback :
2019-09-17 10:16:34 -04:00
extends : .db-job-base
2019-04-12 04:56:38 -04:00
script :
2020-06-03 08:08:21 -04:00
- bundle exec rake db:migrate VERSION=20181228175414
2019-06-20 11:50:46 -04:00
- bundle exec rake db:migrate SKIP_SCHEMA_VERSION_CHECK=true
2019-04-12 04:56:38 -04:00
2019-08-26 16:41:55 -04:00
gitlab:setup :
2019-09-17 10:16:34 -04:00
extends : .db-job-base
2019-08-26 16:41:55 -04:00
variables :
SETUP_DB : "false"
script :
# Manually clone gitlab-test and only seed this project in
# db/fixtures/development/04_project.rb thanks to SIZE=1 below
- git clone https://gitlab.com/gitlab-org/gitlab-test.git
/home/git/repositories/gitlab-org/gitlab-test.git
2020-05-19 05:08:12 -04:00
- run_timed_command "scripts/gitaly-test-build"
2020-05-14 11:08:14 -04:00
- run_timed_command "scripts/gitaly-test-spawn"
2019-08-26 16:41:55 -04:00
- force=yes SIZE=1 FIXTURE_PATH="db/fixtures/development" bundle exec rake gitlab:setup
artifacts :
when : on_failure
expire_in : 1d
paths :
2020-05-11 11:09:37 -04:00
- log/*.log
2019-04-12 04:56:38 -04:00
2020-03-06 13:08:08 -05:00
rspec:coverage :
2020-02-07 13:09:03 -05:00
extends :
- .rails-job-base
2020-04-24 14:09:46 -04:00
- .rails:rules:ee-mr-and-master-only
2020-02-07 13:09:03 -05:00
stage : post-test
2020-03-18 14:09:35 -04:00
# We cannot use needs since it would mean needing 84 jobs (since most are parallelized)
# so we use `dependencies` here.
dependencies :
2020-05-13 20:07:47 -04:00
- setup-test-env
- rspec migration pg11
- rspec unit pg11
- rspec integration pg11
- rspec system pg11
- rspec-ee migration pg11
- rspec-ee unit pg11
- rspec-ee integration pg11
- rspec-ee system pg11
- rspec-ee unit pg11 geo
- rspec-ee integration pg11 geo
- rspec-ee system pg11 geo
2020-03-18 14:09:35 -04:00
- memory-static
- memory-on-boot
2019-04-12 04:56:38 -04:00
variables :
SETUP_DB : "false"
script :
- bundle exec scripts/merge-simplecov
2019-07-12 06:44:17 -04:00
- bundle exec scripts/gather-test-memory-data
2019-04-12 04:56:38 -04:00
coverage : '/LOC \((\d+\.\d+%)\) covered.$/'
artifacts :
name : coverage
expire_in : 31d
paths :
2019-06-05 12:31:35 -04:00
- coverage/index.html
- coverage/assets/
2019-07-12 06:44:17 -04:00
- tmp/memory_test/
2020-04-28 05:09:34 -04:00
# EE/FOSS: default refs (MRs, master, schedules) jobs #
#######################################################
2020-02-07 13:09:03 -05:00
2020-04-28 05:09:34 -04:00
##################################################
# EE: default refs (MRs, master, schedules) jobs #
.rspec-base-ee :
2020-02-07 13:09:03 -05:00
extends :
- .rspec-base
2020-04-28 05:09:34 -04:00
- .rails:rules:ee-only
2020-02-07 13:09:03 -05:00
2020-05-13 20:07:47 -04:00
.rspec-base-pg11-as-if-foss :
2020-02-20 04:09:13 -05:00
extends :
2020-05-15 11:08:04 -04:00
- .rspec-base
- .rails:rules:as-if-foss
2020-04-28 05:09:34 -04:00
- .as-if-foss
2020-05-13 20:07:47 -04:00
- .use-pg11
2020-06-02 08:08:33 -04:00
needs : [ "setup-test-env" , "retrieve-tests-metadata" , "compile-test-assets as-if-foss" ]
2020-02-07 13:09:03 -05:00
2020-05-13 20:07:47 -04:00
.rspec-ee-base-pg11 :
2020-02-20 04:09:13 -05:00
extends :
2020-04-28 05:09:34 -04:00
- .rspec-base-ee
2020-05-13 20:07:47 -04:00
- .use-pg11-ee
2020-02-20 04:09:13 -05:00
2020-05-13 20:07:47 -04:00
rspec migration pg11-as-if-foss :
2020-02-20 04:09:13 -05:00
extends :
2020-05-13 20:07:47 -04:00
- .rspec-base-pg11-as-if-foss
2020-02-20 04:09:13 -05:00
- .rspec-base-migration
2020-04-06 11:10:04 -04:00
parallel : 5
2020-02-20 04:09:13 -05:00
2020-05-13 20:07:47 -04:00
rspec unit pg11-as-if-foss :
extends : .rspec-base-pg11-as-if-foss
2020-02-20 04:09:13 -05:00
parallel : 20
2020-05-13 20:07:47 -04:00
rspec integration pg11-as-if-foss :
extends : .rspec-base-pg11-as-if-foss
2020-02-20 04:09:13 -05:00
parallel : 8
2020-05-13 20:07:47 -04:00
rspec system pg11-as-if-foss :
extends : .rspec-base-pg11-as-if-foss
2020-02-20 04:09:13 -05:00
parallel : 24
2020-05-13 20:07:47 -04:00
rspec-ee migration pg11 :
2020-02-07 13:09:03 -05:00
extends :
2020-05-13 20:07:47 -04:00
- .rspec-ee-base-pg11
2020-02-07 13:09:03 -05:00
- .rspec-base-migration
parallel : 2
2020-05-13 20:07:47 -04:00
rspec-ee unit pg11 :
extends : .rspec-ee-base-pg11
2020-02-07 13:09:03 -05:00
parallel : 10
2020-05-13 20:07:47 -04:00
rspec-ee integration pg11 :
extends : .rspec-ee-base-pg11
2020-02-12 13:09:21 -05:00
parallel : 4
2020-02-07 13:09:03 -05:00
2020-05-13 20:07:47 -04:00
rspec-ee system pg11 :
extends : .rspec-ee-base-pg11
2020-02-12 13:09:21 -05:00
parallel : 6
2020-02-07 13:09:03 -05:00
2020-04-28 05:09:34 -04:00
.rspec-ee-base-geo :
extends : .rspec-base-ee
script :
2020-05-19 05:08:12 -04:00
- run_timed_command "scripts/gitaly-test-build"
- run_timed_command "scripts/gitaly-test-spawn"
2020-04-28 05:09:34 -04:00
- source scripts/rspec_helpers.sh
- scripts/prepare_postgres_fdw.sh
- rspec_paralellized_job "--tag ~quarantine --tag geo"
2020-05-13 20:07:47 -04:00
.rspec-ee-base-geo-pg11 :
2020-02-07 13:09:03 -05:00
extends :
2020-04-28 05:09:34 -04:00
- .rspec-ee-base-geo
2020-05-13 20:07:47 -04:00
- .use-pg11-ee
2020-02-07 13:09:03 -05:00
2020-05-13 20:07:47 -04:00
rspec-ee unit pg11 geo :
extends : .rspec-ee-base-geo-pg11
2020-04-28 05:09:34 -04:00
parallel : 2
2020-05-13 20:07:47 -04:00
rspec-ee integration pg11 geo :
extends : .rspec-ee-base-geo-pg11
2020-04-28 05:09:34 -04:00
2020-05-13 20:07:47 -04:00
rspec-ee system pg11 geo :
extends : .rspec-ee-base-geo-pg11
2020-04-28 05:09:34 -04:00
db:rollback geo :
2020-02-07 13:09:03 -05:00
extends :
2020-04-28 05:09:34 -04:00
- db:rollback
- .rails:rules:ee-only
script :
- bundle exec rake geo:db:migrate VERSION=20170627195211
- bundle exec rake geo:db:migrate
# EE: default refs (MRs, master, schedules) jobs #
##################################################
2020-06-02 05:08:01 -04:00
##################################################
# EE: Canonical MR pipelines
rspec foss-impact :
extends :
- .rspec-base
- .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
2020-06-16 08:09:00 -04:00
- rspec_matched_tests tmp/matching_foss_tests.txt "--tag ~quarantine --tag ~geo --tag ~level:migration"
2020-06-02 05:08:01 -04:00
artifacts :
expire_in : 7d
paths :
- tmp/matching_foss_tests.txt
2020-06-09 05:08:20 -04:00
- tmp/capybara/
2020-06-02 05:08:01 -04:00
# EE: Merge Request pipelines
##################################################