debian-mirror-gitlab/.gitlab/ci/rails.gitlab-ci.yml

437 lines
9.7 KiB
YAML
Raw Normal View History

2020-03-13 15:44:24 +05:30
.rails:needs:setup-and-assets:
2020-04-22 19:07:51 +05:30
needs: ["setup-test-env pg11", "compile-assets pull-cache"]
2020-03-13 15:44:24 +05:30
.rails-job-base:
2019-12-04 20:38:33 +05:30
extends:
- .default-retry
- .default-cache
- .default-before_script
2020-03-13 15:44:24 +05:30
####################
2020-04-22 19:07:51 +05:30
# EE and FOSS jobs #
.base-setup-test-env:
2019-12-21 20:55:43 +05:30
extends:
2020-03-13 15:44:24 +05:30
- .rails-job-base
2019-12-21 20:55:43 +05:30
stage: prepare
script:
- bundle exec ruby -Ispec -e 'require "spec_helper" ; TestEnv.init'
- scripts/gitaly-test-build # Do not use 'bundle exec' here
artifacts:
expire_in: 7d
paths:
- tmp/tests
- config/secrets.yml
- vendor/gitaly-ruby
cache:
policy: pull-push
2020-04-22 19:07:51 +05:30
setup-test-env pg11:
extends:
- .base-setup-test-env
- .rails:rules:default-refs-code-backstage-qa
- .use-pg11
setup-test-env pg10:
extends:
- .base-setup-test-env
- .rails:rules:master-refs-code-backstage
- .use-pg10
setup-test-env pg9:
extends:
- .base-setup-test-env
- .rails:rules:nightly-master-refs-code-backstage
- .use-pg9
2020-03-13 15:44:24 +05:30
static-analysis:
extends:
- .rails-job-base
- .rails:rules:default-refs-code-backstage-qa
- .rails:needs:setup-and-assets
stage: test
variables:
SETUP_DB: "false"
parallel: 2
script:
- scripts/static-analysis
cache:
2020-04-22 19:07:51 +05:30
key: "ruby-2.6.5-pg11-rubocop"
2020-03-13 15:44:24 +05:30
paths:
- vendor/ruby
- tmp/rubocop_cache
policy: pull-push
downtime_check:
extends:
- .rails-job-base
- .rails:needs:setup-and-assets
- .rails:rules:downtime_check
stage: test
variables:
SETUP_DB: "false"
script:
- bundle exec rake downtime_check
2019-12-04 20:38:33 +05:30
.rspec-base:
2020-03-13 15:44:24 +05:30
extends: .rails-job-base
2019-07-31 22:56:46 +05:30
stage: test
2020-04-22 19:07:51 +05:30
needs: ["setup-test-env pg11", "retrieve-tests-metadata", "compile-assets pull-cache"]
2019-07-31 22:56:46 +05:30
script:
2019-12-21 20:55:43 +05:30
- source scripts/rspec_helpers.sh
2020-03-13 15:44:24 +05:30
- rspec_paralellized_job "--tag ~quarantine --tag ~geo --tag ~level:migration"
2019-07-31 22:56:46 +05:30
artifacts:
expire_in: 31d
when: always
paths:
- coverage/
- knapsack/
- rspec_flaky/
- rspec_profiling/
- tmp/capybara/
2019-09-30 21:07:59 +05:30
- tmp/memory_test/
2020-03-13 15:44:24 +05:30
- junit_rspec.xml
2019-10-12 21:52:04 +05:30
reports:
junit: junit_rspec.xml
2019-07-31 22:56:46 +05:30
2020-04-22 19:07:51 +05:30
.rspec-base-pg11:
2019-12-04 20:38:33 +05:30
extends:
2020-03-13 15:44:24 +05:30
- .rspec-base
- .rails:rules:ee-and-foss
2020-04-22 19:07:51 +05:30
- .use-pg11
2019-07-31 22:56:46 +05:30
2020-03-13 15:44:24 +05:30
.rspec-base-migration:
script:
- source scripts/rspec_helpers.sh
- rspec_paralellized_job "--tag ~quarantine --tag ~geo --tag level:migration"
2019-12-21 20:55:43 +05:30
2020-04-22 19:07:51 +05:30
rspec migration pg11:
2020-03-13 15:44:24 +05:30
extends:
2020-04-22 19:07:51 +05:30
- .rspec-base-pg11
2020-03-13 15:44:24 +05:30
- .rspec-base-migration
parallel: 5
2019-12-26 22:10:19 +05:30
2020-04-22 19:07:51 +05:30
rspec unit pg11:
extends: .rspec-base-pg11
2019-12-21 20:55:43 +05:30
parallel: 20
2019-07-31 22:56:46 +05:30
2020-04-22 19:07:51 +05:30
rspec integration pg11:
extends: .rspec-base-pg11
2020-03-13 15:44:24 +05:30
parallel: 8
2019-09-04 21:01:54 +05:30
2020-04-22 19:07:51 +05:30
rspec system pg11:
extends: .rspec-base-pg11
2019-09-04 21:01:54 +05:30
parallel: 24
2019-12-21 20:55:43 +05:30
rspec fast_spec_helper:
2020-04-22 19:07:51 +05:30
extends: .rspec-base-pg11
2019-12-21 20:55:43 +05:30
script:
- bin/rspec spec/fast_spec_helper.rb
2019-12-04 20:38:33 +05:30
.db-job-base:
extends:
2020-03-13 15:44:24 +05:30
- .rails-job-base
- .rails:rules:ee-and-foss
2020-04-22 19:07:51 +05:30
- .use-pg11
2019-12-04 20:38:33 +05:30
stage: test
2020-04-22 19:07:51 +05:30
needs: ["setup-test-env pg11"]
2019-12-04 20:38:33 +05:30
db:migrate:reset:
extends: .db-job-base
script:
- bundle exec rake db:migrate:reset
2019-07-31 22:56:46 +05:30
2019-12-04 20:38:33 +05:30
db:check-schema:
extends: .db-job-base
2019-07-31 22:56:46 +05:30
script:
- source scripts/schema_changed.sh
2019-12-04 20:38:33 +05:30
db:migrate-from-v11.11.0:
extends: .db-job-base
variables:
SETUP_DB: "false"
script:
- export PROJECT_TO_CHECKOUT="gitlab-foss"
- export TAG_TO_CHECKOUT="v11.11.0"
- '[[ ! -d "ee/" ]] || export PROJECT_TO_CHECKOUT="gitlab"'
- '[[ ! -d "ee/" ]] || export TAG_TO_CHECKOUT="v11.11.0-ee"'
- git fetch https://gitlab.com/gitlab-org/$PROJECT_TO_CHECKOUT.git $TAG_TO_CHECKOUT
- git checkout -f FETCH_HEAD
- sed -i "s/gem 'oj', '~> 2.17.4'//" Gemfile
- sed -i "s/gem 'bootsnap', '~> 1.0.0'/gem 'bootsnap'/" Gemfile
- bundle update google-protobuf grpc bootsnap
- bundle install $BUNDLE_INSTALL_FLAGS
- date
- cp config/gitlab.yml.example config/gitlab.yml
- bundle exec rake db:drop db:create db:schema:load db:seed_fu
- date
- git checkout -f $CI_COMMIT_SHA
- bundle install $BUNDLE_INSTALL_FLAGS
- date
- . scripts/prepare_build.sh
- date
- bundle exec rake db:migrate
2019-07-31 22:56:46 +05:30
2019-12-04 20:38:33 +05:30
db:rollback:
extends: .db-job-base
2019-07-31 22:56:46 +05:30
script:
2019-09-30 21:07:59 +05:30
- bundle exec rake db:migrate VERSION=20180101160629
- bundle exec rake db:migrate SKIP_SCHEMA_VERSION_CHECK=true
2019-07-31 22:56:46 +05:30
2019-12-04 20:38:33 +05:30
gitlab:setup:
extends: .db-job-base
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
- scripts/gitaly-test-spawn
- force=yes SIZE=1 FIXTURE_PATH="db/fixtures/development" bundle exec rake gitlab:setup
artifacts:
when: on_failure
expire_in: 1d
paths:
- log/development.log
2019-07-31 22:56:46 +05:30
2020-04-08 14:13:33 +05:30
rspec:coverage:
2020-03-13 15:44:24 +05:30
extends:
- .rails-job-base
2020-04-22 19:07:51 +05:30
- .rails:rules:ee-only
2020-03-13 15:44:24 +05:30
stage: post-test
2020-04-22 19:07:51 +05:30
# We cannot use needs since it would mean needing 84 jobs (since most are parallelized)
# so we use `dependencies` here.
dependencies:
- setup-test-env pg11
- 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
- memory-static
- memory-on-boot
2019-07-31 22:56:46 +05:30
variables:
SETUP_DB: "false"
2020-03-13 15:44:24 +05:30
cache:
policy: pull
2019-07-31 22:56:46 +05:30
script:
- bundle exec scripts/merge-simplecov
2019-09-30 21:07:59 +05:30
- bundle exec scripts/gather-test-memory-data
2019-07-31 22:56:46 +05:30
coverage: '/LOC \((\d+\.\d+%)\) covered.$/'
artifacts:
name: coverage
expire_in: 31d
paths:
2019-09-04 21:01:54 +05:30
- coverage/index.html
- coverage/assets/
2019-09-30 21:07:59 +05:30
- tmp/memory_test/
2020-04-22 19:07:51 +05:30
# EE and FOSS jobs #
2020-03-13 15:44:24 +05:30
####################
####################
# master-only jobs #
.rspec-base-pg10:
extends:
- .rspec-base
- .rails:rules:master-refs-code-backstage
- .use-pg10
2020-04-22 19:07:51 +05:30
needs: ["setup-test-env pg10", "retrieve-tests-metadata", "compile-assets pull-cache"]
2020-03-13 15:44:24 +05:30
2020-04-08 14:13:33 +05:30
rspec migration pg10:
extends:
- .rspec-base-pg10
- .rspec-base-migration
2020-04-22 19:07:51 +05:30
parallel: 5
2020-04-08 14:13:33 +05:30
2020-03-13 15:44:24 +05:30
rspec unit pg10:
extends: .rspec-base-pg10
parallel: 20
rspec integration pg10:
extends: .rspec-base-pg10
parallel: 8
rspec system pg10:
extends: .rspec-base-pg10
parallel: 24
# master-only jobs #
####################
2020-04-22 19:07:51 +05:30
######################
# nightly-only jobs #
.rspec-base-pg9:
2020-04-08 14:13:33 +05:30
extends:
- .rspec-base
- .rails:rules:nightly-master-refs-code-backstage
2020-04-22 19:07:51 +05:30
- .use-pg9
needs: ["setup-test-env pg9", "retrieve-tests-metadata", "compile-assets pull-cache"]
2020-04-08 14:13:33 +05:30
2020-04-22 19:07:51 +05:30
rspec migration pg9:
2020-04-08 14:13:33 +05:30
extends:
2020-04-22 19:07:51 +05:30
- .rspec-base-pg9
2020-04-08 14:13:33 +05:30
- .rspec-base-migration
2020-04-22 19:07:51 +05:30
parallel: 5
2020-04-08 14:13:33 +05:30
2020-04-22 19:07:51 +05:30
rspec unit pg9:
extends: .rspec-base-pg9
2020-04-08 14:13:33 +05:30
parallel: 20
2020-04-22 19:07:51 +05:30
rspec integration pg9:
extends: .rspec-base-pg9
2020-04-08 14:13:33 +05:30
parallel: 8
2020-04-22 19:07:51 +05:30
rspec system pg9:
extends: .rspec-base-pg9
2020-04-08 14:13:33 +05:30
parallel: 24
2020-04-22 19:07:51 +05:30
# nightly-only jobs #
#####################
2020-04-08 14:13:33 +05:30
2020-04-22 19:07:51 +05:30
#######################
# EE master-only jobs #
.rspec-ee-base-pg10:
2020-03-13 15:44:24 +05:30
extends:
2020-04-22 19:07:51 +05:30
- .rspec-base-ee
- .use-pg10-ee
needs: ["setup-test-env pg10", "retrieve-tests-metadata", "compile-assets pull-cache"]
2020-03-13 15:44:24 +05:30
rspec-ee migration pg10:
extends:
- .rspec-ee-base-pg10
- .rspec-base-migration
- .rails:rules:master-refs-code-backstage
parallel: 2
rspec-ee unit pg10:
extends:
- .rspec-ee-base-pg10
- .rails:rules:master-refs-code-backstage
parallel: 10
rspec-ee integration pg10:
extends:
- .rspec-ee-base-pg10
- .rails:rules:master-refs-code-backstage
parallel: 4
rspec-ee system pg10:
extends:
- .rspec-ee-base-pg10
- .rails:rules:master-refs-code-backstage
parallel: 6
2020-04-22 19:07:51 +05:30
# EE master-only jobs #
#######################
2020-03-13 15:44:24 +05:30
2020-04-22 19:07:51 +05:30
################
# EE-only jobs #
2020-03-13 15:44:24 +05:30
.rspec-base-ee:
extends:
- .rspec-base
- .rails:rules:ee-only
2020-04-22 19:07:51 +05:30
.rspec-base-pg11-as-if-foss:
2020-03-13 15:44:24 +05:30
extends:
- .rspec-base-ee
- .as-if-foss
2020-04-22 19:07:51 +05:30
- .use-pg11
needs: ["setup-test-env pg11", "retrieve-tests-metadata", "compile-assets pull-cache as-if-foss"]
2020-03-13 15:44:24 +05:30
2020-04-22 19:07:51 +05:30
.rspec-ee-base-pg11:
2020-03-13 15:44:24 +05:30
extends:
- .rspec-base-ee
2020-04-22 19:07:51 +05:30
- .use-pg11-ee
2020-03-13 15:44:24 +05:30
2020-04-22 19:07:51 +05:30
rspec migration pg11-as-if-foss:
2020-03-13 15:44:24 +05:30
extends:
2020-04-22 19:07:51 +05:30
- .rspec-base-pg11-as-if-foss
2020-03-13 15:44:24 +05:30
- .rspec-base-migration
parallel: 5
2020-04-22 19:07:51 +05:30
rspec unit pg11-as-if-foss:
extends: .rspec-base-pg11-as-if-foss
2020-03-13 15:44:24 +05:30
parallel: 20
2020-04-22 19:07:51 +05:30
rspec integration pg11-as-if-foss:
extends: .rspec-base-pg11-as-if-foss
2020-03-13 15:44:24 +05:30
parallel: 8
2020-04-22 19:07:51 +05:30
rspec system pg11-as-if-foss:
extends: .rspec-base-pg11-as-if-foss
2020-03-13 15:44:24 +05:30
parallel: 24
2020-04-22 19:07:51 +05:30
rspec-ee migration pg11:
2020-03-13 15:44:24 +05:30
extends:
2020-04-22 19:07:51 +05:30
- .rspec-ee-base-pg11
2020-03-13 15:44:24 +05:30
- .rspec-base-migration
parallel: 2
2020-04-22 19:07:51 +05:30
rspec-ee unit pg11:
extends: .rspec-ee-base-pg11
2020-03-13 15:44:24 +05:30
parallel: 10
2020-04-22 19:07:51 +05:30
rspec-ee integration pg11:
extends: .rspec-ee-base-pg11
2020-03-13 15:44:24 +05:30
parallel: 4
2020-04-22 19:07:51 +05:30
rspec-ee system pg11:
extends: .rspec-ee-base-pg11
2020-03-13 15:44:24 +05:30
parallel: 6
.rspec-ee-base-geo:
extends: .rspec-base-ee
script:
- source scripts/rspec_helpers.sh
- scripts/prepare_postgres_fdw.sh
- rspec_paralellized_job "--tag ~quarantine --tag geo"
2020-04-22 19:07:51 +05:30
.rspec-ee-base-geo-pg11:
2020-03-13 15:44:24 +05:30
extends:
- .rspec-ee-base-geo
2020-04-22 19:07:51 +05:30
- .use-pg11-ee
2020-03-13 15:44:24 +05:30
2020-04-22 19:07:51 +05:30
rspec-ee unit pg11 geo:
extends: .rspec-ee-base-geo-pg11
2020-03-13 15:44:24 +05:30
parallel: 2
2020-04-22 19:07:51 +05:30
rspec-ee integration pg11 geo:
extends: .rspec-ee-base-geo-pg11
2020-03-13 15:44:24 +05:30
2020-04-22 19:07:51 +05:30
rspec-ee system pg11 geo:
extends: .rspec-ee-base-geo-pg11
2019-12-04 20:38:33 +05:30
db:rollback geo:
extends:
- db:rollback
2020-03-13 15:44:24 +05:30
- .rails:rules:ee-only
2019-12-04 20:38:33 +05:30
script:
- bundle exec rake geo:db:migrate VERSION=20170627195211
- bundle exec rake geo:db:migrate
2020-04-22 19:07:51 +05:30
# EE-only jobs #
2020-03-13 15:44:24 +05:30
################
2020-04-22 19:07:51 +05:30
########################
# EE nightly-only jobs #
.rspec-ee-base-geo-pg9:
extends:
- .rspec-ee-base-geo
- .use-pg9-ee
- .rails:rules:nightly-master-refs-code-backstage-ee-only
needs: ["setup-test-env pg9", "retrieve-tests-metadata", "compile-assets pull-cache"]
rspec-ee unit pg9 geo:
extends: .rspec-ee-base-geo-pg9
parallel: 2
rspec-ee integration pg9 geo:
extends: .rspec-ee-base-geo-pg9
rspec-ee system pg9 geo:
extends: .rspec-ee-base-geo-pg9
# EE nightly-only jobs #
########################