2019-09-17 10:16:34 -04:00
|
|
|
.only-master:
|
2019-04-12 04:56:38 -04:00
|
|
|
only:
|
2019-08-26 16:41:55 -04:00
|
|
|
refs:
|
2019-09-17 10:16:34 -04:00
|
|
|
- master
|
2019-09-13 09:26:31 -04:00
|
|
|
|
2019-08-26 16:41:55 -04:00
|
|
|
.rake-exec:
|
2019-07-01 11:04:19 -04:00
|
|
|
extends:
|
2019-08-26 16:41:55 -04:00
|
|
|
- .default-tags
|
|
|
|
- .default-retry
|
|
|
|
- .default-cache
|
2019-09-17 10:16:34 -04:00
|
|
|
- .default-only
|
2019-08-26 16:41:55 -04:00
|
|
|
- .default-before_script
|
2019-04-12 04:56:38 -04:00
|
|
|
variables:
|
|
|
|
SETUP_DB: "false"
|
|
|
|
script:
|
|
|
|
- bundle exec rake $CI_JOB_NAME
|
|
|
|
|
2019-09-17 10:16:34 -04:00
|
|
|
.only-code-rails-job-base:
|
|
|
|
extends:
|
|
|
|
- .default-tags
|
|
|
|
- .default-retry
|
|
|
|
- .default-cache
|
|
|
|
- .default-only
|
|
|
|
- .default-before_script
|
2019-10-30 17:07:58 -04:00
|
|
|
- .only:changes-code-backstage
|
2019-09-17 10:16:34 -04:00
|
|
|
|
|
|
|
.only-code-qa-rails-job-base:
|
2019-07-01 11:04:19 -04:00
|
|
|
extends:
|
2019-08-26 16:41:55 -04:00
|
|
|
- .default-tags
|
|
|
|
- .default-retry
|
|
|
|
- .default-cache
|
2019-09-17 10:16:34 -04:00
|
|
|
- .default-only
|
2019-08-26 16:41:55 -04:00
|
|
|
- .default-before_script
|
2019-10-30 17:07:58 -04:00
|
|
|
- .only:changes-code-backstage-qa
|
2019-09-17 10:16:34 -04:00
|
|
|
|
2019-09-27 11:06:16 -04:00
|
|
|
setup-test-env:
|
|
|
|
extends:
|
|
|
|
- .only-code-qa-rails-job-base
|
|
|
|
- .use-pg9
|
|
|
|
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
|
|
|
|
|
2019-09-17 10:16:34 -04:00
|
|
|
.rspec-base:
|
|
|
|
extends: .only-code-rails-job-base
|
2019-04-12 04:56:38 -04:00
|
|
|
stage: test
|
2019-10-16 14:08:01 -04:00
|
|
|
needs: ["setup-test-env", "retrieve-tests-metadata", "compile-assets pull-cache"]
|
|
|
|
dependencies: ["setup-test-env", "retrieve-tests-metadata", "compile-assets pull-cache"]
|
2019-04-12 04:56:38 -04:00
|
|
|
script:
|
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/
|
2019-07-19 02:53:53 -04:00
|
|
|
reports:
|
|
|
|
junit: junit_rspec.xml
|
2019-04-12 04:56:38 -04:00
|
|
|
|
2019-10-16 14:08:01 -04:00
|
|
|
.rspec-base-foss:
|
|
|
|
extends: [".rspec-base", ".only-ee-as-if-foss"]
|
|
|
|
needs: ["setup-test-env", "retrieve-tests-metadata", "compile-assets pull-cache foss"]
|
|
|
|
dependencies: ["setup-test-env", "retrieve-tests-metadata", "compile-assets pull-cache foss"]
|
|
|
|
|
2019-09-27 11:06:16 -04:00
|
|
|
.rspec-base-pg9:
|
2019-08-26 16:41:55 -04:00
|
|
|
extends:
|
|
|
|
- .rspec-base
|
2019-09-27 11:06:16 -04:00
|
|
|
- .use-pg9
|
2019-04-12 04:56:38 -04:00
|
|
|
|
2019-10-04 11:06:38 -04:00
|
|
|
.rspec-base-pg9-foss:
|
|
|
|
extends:
|
2019-10-16 14:08:01 -04:00
|
|
|
- .rspec-base-foss
|
2019-10-04 11:06:38 -04:00
|
|
|
- .use-pg9
|
|
|
|
|
2019-09-27 11:06:16 -04:00
|
|
|
.rspec-base-pg10:
|
2019-08-26 16:41:55 -04:00
|
|
|
extends:
|
|
|
|
- .rspec-base
|
2019-09-27 11:06:16 -04:00
|
|
|
- .use-pg10
|
|
|
|
- .only-master
|
2019-04-12 04:56:38 -04:00
|
|
|
|
2019-12-24 10:07:44 -05:00
|
|
|
.rspec-base-migration:
|
|
|
|
script:
|
|
|
|
- source scripts/rspec_helpers.sh
|
|
|
|
- rspec_paralellized_job "--tag ~quarantine --tag ~geo --tag level:migration"
|
|
|
|
|
2019-12-02 16:06:51 -05:00
|
|
|
rspec migration pg9:
|
2019-12-24 10:07:44 -05:00
|
|
|
extends:
|
|
|
|
- .rspec-base-pg9
|
|
|
|
- .rspec-base-migration
|
2019-12-02 16:06:51 -05:00
|
|
|
parallel: 4
|
|
|
|
|
|
|
|
rspec migration pg9-foss:
|
2019-12-24 10:07:44 -05:00
|
|
|
extends:
|
|
|
|
- .rspec-base-pg9-foss
|
|
|
|
- .rspec-base-migration
|
2019-12-02 16:06:51 -05:00
|
|
|
parallel: 4
|
|
|
|
|
2019-09-27 11:06:16 -04:00
|
|
|
rspec unit pg9:
|
|
|
|
extends: .rspec-base-pg9
|
2019-12-02 16:06:51 -05:00
|
|
|
parallel: 20
|
2019-09-27 11:06:16 -04:00
|
|
|
|
2019-10-04 11:06:38 -04:00
|
|
|
rspec unit pg9-foss:
|
|
|
|
extends: .rspec-base-pg9-foss
|
2019-12-02 16:06:51 -05:00
|
|
|
parallel: 20
|
2019-10-04 11:06:38 -04:00
|
|
|
|
2019-09-27 11:06:16 -04:00
|
|
|
rspec integration pg9:
|
|
|
|
extends: .rspec-base-pg9
|
|
|
|
parallel: 6
|
2019-04-12 04:56:38 -04:00
|
|
|
|
2019-10-04 11:06:38 -04:00
|
|
|
rspec integration pg9-foss:
|
|
|
|
extends: .rspec-base-pg9-foss
|
|
|
|
parallel: 6
|
|
|
|
|
2019-09-27 11:06:16 -04:00
|
|
|
rspec system pg9:
|
|
|
|
extends: .rspec-base-pg9
|
|
|
|
parallel: 24
|
|
|
|
|
2019-10-16 14:08:01 -04:00
|
|
|
rspec system pg9-foss:
|
|
|
|
extends: .rspec-base-pg9-foss
|
|
|
|
parallel: 24
|
2019-10-04 11:06:38 -04:00
|
|
|
|
2019-09-27 11:06:16 -04:00
|
|
|
rspec unit pg10:
|
|
|
|
extends: .rspec-base-pg10
|
2019-07-05 17:52:16 -04:00
|
|
|
parallel: 20
|
2019-04-12 04:56:38 -04:00
|
|
|
|
2019-09-27 11:06:16 -04:00
|
|
|
rspec integration pg10:
|
|
|
|
extends: .rspec-base-pg10
|
2019-05-22 08:16:49 -04:00
|
|
|
parallel: 6
|
|
|
|
|
2019-09-27 11:06:16 -04:00
|
|
|
rspec system pg10:
|
|
|
|
extends: .rspec-base-pg10
|
2019-05-22 08:16:49 -04:00
|
|
|
parallel: 24
|
|
|
|
|
2019-09-27 11:06:16 -04:00
|
|
|
.rspec-ee-base-pg9:
|
|
|
|
extends:
|
|
|
|
- .rspec-base
|
|
|
|
- .only-ee
|
|
|
|
- .use-pg9-ee
|
|
|
|
|
|
|
|
.rspec-ee-base-pg10:
|
|
|
|
extends:
|
|
|
|
- .rspec-base
|
|
|
|
- .only-ee
|
|
|
|
- .use-pg10-ee
|
|
|
|
|
2019-12-02 16:06:51 -05:00
|
|
|
rspec-ee migration pg9:
|
2019-12-24 10:07:44 -05:00
|
|
|
extends:
|
|
|
|
- .rspec-ee-base-pg9
|
|
|
|
- .rspec-base-migration
|
2019-12-02 16:06:51 -05:00
|
|
|
parallel: 2
|
|
|
|
|
2019-09-27 11:06:16 -04:00
|
|
|
rspec-ee unit pg9:
|
|
|
|
extends: .rspec-ee-base-pg9
|
2019-12-02 16:06:51 -05:00
|
|
|
parallel: 5
|
2019-09-27 11:06:16 -04:00
|
|
|
|
|
|
|
rspec-ee integration pg9:
|
|
|
|
extends: .rspec-ee-base-pg9
|
|
|
|
parallel: 3
|
|
|
|
|
|
|
|
rspec-ee system pg9:
|
|
|
|
extends: .rspec-ee-base-pg9
|
|
|
|
parallel: 5
|
|
|
|
|
2019-12-02 16:06:51 -05:00
|
|
|
rspec-ee migration pg10:
|
|
|
|
extends:
|
|
|
|
- .rspec-ee-base-pg10
|
2019-12-24 10:07:44 -05:00
|
|
|
- .rspec-base-migration
|
2019-12-02 16:06:51 -05:00
|
|
|
- .only-master
|
|
|
|
parallel: 2
|
|
|
|
|
2019-09-27 11:06:16 -04:00
|
|
|
rspec-ee unit pg10:
|
2019-08-26 16:41:55 -04:00
|
|
|
extends:
|
2019-09-27 11:06:16 -04:00
|
|
|
- .rspec-ee-base-pg10
|
2019-09-17 10:16:34 -04:00
|
|
|
- .only-master
|
2019-12-02 16:06:51 -05:00
|
|
|
parallel: 5
|
2019-05-22 08:16:49 -04:00
|
|
|
|
2019-09-27 11:06:16 -04:00
|
|
|
rspec-ee integration pg10:
|
2019-08-26 16:41:55 -04:00
|
|
|
extends:
|
2019-09-27 11:06:16 -04:00
|
|
|
- .rspec-ee-base-pg10
|
2019-09-17 10:16:34 -04:00
|
|
|
- .only-master
|
2019-09-27 11:06:16 -04:00
|
|
|
parallel: 3
|
2019-05-22 08:16:49 -04:00
|
|
|
|
2019-09-27 11:06:16 -04:00
|
|
|
rspec-ee system pg10:
|
2019-08-26 16:41:55 -04:00
|
|
|
extends:
|
2019-09-27 11:06:16 -04:00
|
|
|
- .rspec-ee-base-pg10
|
2019-09-17 10:16:34 -04:00
|
|
|
- .only-master
|
2019-09-27 11:06:16 -04:00
|
|
|
parallel: 5
|
2019-05-22 08:16:49 -04:00
|
|
|
|
2019-09-27 11:06:16 -04:00
|
|
|
.rspec-ee-base-geo:
|
|
|
|
extends:
|
|
|
|
- .rspec-base
|
|
|
|
- .only-ee
|
2019-04-12 04:56:38 -04:00
|
|
|
script:
|
2019-09-27 11:06:16 -04:00
|
|
|
- source scripts/rspec_helpers.sh
|
|
|
|
- scripts/prepare_postgres_fdw.sh
|
|
|
|
- rspec_paralellized_job "--tag ~quarantine --tag geo"
|
|
|
|
|
|
|
|
.rspec-ee-base-geo-pg9:
|
|
|
|
extends:
|
|
|
|
- .rspec-ee-base-geo
|
|
|
|
- .use-pg9-ee
|
|
|
|
|
|
|
|
.rspec-ee-base-geo-pg10:
|
|
|
|
extends:
|
|
|
|
- .rspec-ee-base-geo
|
|
|
|
- .use-pg10-ee
|
|
|
|
|
|
|
|
rspec-ee unit pg9 geo:
|
|
|
|
extends: .rspec-ee-base-geo-pg9
|
|
|
|
parallel: 2
|
|
|
|
|
|
|
|
rspec-ee integration pg9 geo:
|
|
|
|
extends: .rspec-ee-base-geo-pg9
|
2019-04-12 04:56:38 -04:00
|
|
|
|
2019-09-27 11:06:16 -04:00
|
|
|
rspec-ee system pg9 geo:
|
|
|
|
extends: .rspec-ee-base-geo-pg9
|
|
|
|
|
|
|
|
rspec-ee unit pg10 geo:
|
|
|
|
extends: .rspec-ee-base-geo-pg10
|
|
|
|
parallel: 2
|
|
|
|
|
|
|
|
rspec-ee integration pg10 geo:
|
|
|
|
extends: .rspec-ee-base-geo-pg10
|
|
|
|
|
|
|
|
rspec-ee system pg10 geo:
|
|
|
|
extends: .rspec-ee-base-geo-pg10
|
|
|
|
|
|
|
|
rspec quarantine pg9:
|
2019-08-26 16:41:55 -04:00
|
|
|
extends:
|
2019-09-27 11:06:16 -04:00
|
|
|
- .rspec-base-pg9
|
2019-09-17 10:16:34 -04:00
|
|
|
- .only-master
|
2019-09-27 11:06:16 -04:00
|
|
|
variables:
|
|
|
|
RSPEC_OPTS: "--tag quarantine -- spec/"
|
2019-04-12 04:56:38 -04:00
|
|
|
script:
|
2019-09-27 11:06:16 -04:00
|
|
|
- source scripts/rspec_helpers.sh
|
|
|
|
- rspec_simple_job "${RSPEC_OPTS}"
|
2019-04-12 04:56:38 -04:00
|
|
|
allow_failure: true
|
|
|
|
|
2019-09-27 11:06:16 -04:00
|
|
|
rspec-ee quarantine pg9:
|
|
|
|
extends:
|
|
|
|
- rspec quarantine pg9
|
|
|
|
- .only-ee
|
|
|
|
variables:
|
|
|
|
RSPEC_OPTS: "--tag quarantine -- ee/spec/"
|
|
|
|
|
|
|
|
rspec fast_spec_helper:
|
|
|
|
extends: .rspec-base-pg9
|
|
|
|
script:
|
|
|
|
- bin/rspec spec/fast_spec_helper.rb
|
|
|
|
|
2019-04-12 04:56:38 -04:00
|
|
|
static-analysis:
|
2019-09-17 10:16:34 -04:00
|
|
|
extends: .only-code-qa-rails-job-base
|
2019-10-16 14:08:01 -04:00
|
|
|
stage: test
|
|
|
|
needs: ["setup-test-env", "compile-assets pull-cache"]
|
|
|
|
dependencies: ["setup-test-env", "compile-assets pull-cache"]
|
2019-08-26 16:41:55 -04:00
|
|
|
variables:
|
|
|
|
SETUP_DB: "false"
|
2019-10-31 17:06:28 -04:00
|
|
|
parallel: 2
|
2019-04-12 04:56:38 -04:00
|
|
|
script:
|
|
|
|
- scripts/static-analysis
|
|
|
|
cache:
|
2019-08-26 16:41:55 -04:00
|
|
|
key: "debian-stretch-ruby-2.6.3-and-rubocop"
|
2019-04-12 04:56:38 -04:00
|
|
|
paths:
|
|
|
|
- vendor/ruby
|
|
|
|
- tmp/rubocop_cache
|
|
|
|
policy: pull-push
|
|
|
|
|
|
|
|
downtime_check:
|
2019-09-17 10:16:34 -04:00
|
|
|
extends:
|
|
|
|
- .rake-exec
|
2019-10-30 17:07:58 -04:00
|
|
|
- .only:changes-code-backstage
|
2019-10-31 02:06:31 -04:00
|
|
|
- .except:refs-master-tags-stable-deploy
|
2019-08-28 17:07:54 -04:00
|
|
|
stage: test
|
|
|
|
needs: ["setup-test-env"]
|
2019-10-16 14:08:01 -04:00
|
|
|
dependencies: ["setup-test-env"]
|
2019-04-12 04:56:38 -04:00
|
|
|
|
2019-09-17 10:16:34 -04:00
|
|
|
.db-job-base:
|
2019-08-26 16:41:55 -04:00
|
|
|
extends:
|
2019-09-17 10:16:34 -04:00
|
|
|
- .only-code-rails-job-base
|
2019-09-27 11:06:16 -04:00
|
|
|
- .use-pg9
|
2019-08-28 17:07:54 -04:00
|
|
|
stage: test
|
|
|
|
needs: ["setup-test-env"]
|
2019-10-16 14:08:01 -04:00
|
|
|
dependencies: ["setup-test-env"]
|
2019-09-17 10:16:34 -04:00
|
|
|
|
|
|
|
# DB migration, rollback, and seed jobs
|
|
|
|
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:
|
2019-09-17 10:16:34 -04:00
|
|
|
extends: .db-job-base
|
2019-04-12 04:56:38 -04:00
|
|
|
script:
|
|
|
|
- source scripts/schema_changed.sh
|
|
|
|
|
2019-08-26 16:41:55 -04:00
|
|
|
db:migrate-from-v11.11.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:
|
2019-09-17 10:16:34 -04:00
|
|
|
- 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
|
2019-08-26 16:41:55 -04:00
|
|
|
- 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-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:
|
2019-07-01 12:46:09 -04:00
|
|
|
- bundle exec rake db:migrate VERSION=20180101160629
|
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
|
|
|
|
- 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-04-12 04:56:38 -04:00
|
|
|
|
|
|
|
coverage:
|
2019-09-17 10:16:34 -04:00
|
|
|
extends: .only-code-rails-job-base
|
2019-04-12 04:56:38 -04:00
|
|
|
cache:
|
|
|
|
policy: pull
|
|
|
|
variables:
|
|
|
|
SETUP_DB: "false"
|
|
|
|
stage: post-test
|
|
|
|
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/
|
2019-09-13 09:26:31 -04:00
|
|
|
|
|
|
|
db:rollback geo:
|
|
|
|
extends:
|
|
|
|
- db:rollback
|
2019-09-17 10:16:34 -04:00
|
|
|
- .only-ee
|
2019-09-13 09:26:31 -04:00
|
|
|
script:
|
|
|
|
- bundle exec rake geo:db:migrate VERSION=20170627195211
|
|
|
|
- bundle exec rake geo:db:migrate
|