summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2019-09-04 16:28:00 +0200
committerRémy Coutable <remy@rymai.me>2019-09-12 18:18:43 +0200
commit5363f0616db4f50281184ecae5585117ccdf951a (patch)
tree0537b4a0d9c27770ab4b3e3c560048061b0fd4af
parent25cb337cf12438169f1b14bc5dace8a06a7356e3 (diff)
downloadgitlab-ce-ce-use-merge-request-pipeline-with-change-detection.tar.gz
Signed-off-by: Rémy Coutable <remy@rymai.me>
-rw-r--r--.gitlab-ci.yml2
-rw-r--r--.gitlab/ci/cng.gitlab-ci.yml5
-rw-r--r--.gitlab/ci/docs.gitlab-ci.yml39
-rw-r--r--.gitlab/ci/ee-specific-checks.gitlab-ci.yml22
-rw-r--r--.gitlab/ci/frontend.gitlab-ci.yml69
-rw-r--r--.gitlab/ci/global.gitlab-ci.yml88
-rw-r--r--.gitlab/ci/memory.gitlab-ci.yml14
-rw-r--r--.gitlab/ci/pages.gitlab-ci.yml7
-rw-r--r--.gitlab/ci/qa.gitlab-ci.yml23
-rw-r--r--.gitlab/ci/rails.gitlab-ci.yml279
-rw-r--r--.gitlab/ci/reports.gitlab-ci.yml227
-rw-r--r--.gitlab/ci/review.gitlab-ci.yml57
-rw-r--r--.gitlab/ci/setup.gitlab-ci.yml14
-rw-r--r--.gitlab/ci/test-metadata.gitlab-ci.yml25
-rw-r--r--.gitlab/ci/yaml.gitlab-ci.yml5
15 files changed, 582 insertions, 294 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b3b6beb1068..6c10c4853c4 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,7 +1,6 @@
image: "dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.22-chrome-73.0-node-12.x-yarn-1.16-postgresql-9.6-graphicsmagick-1.3.33"
stages:
- - build
- prepare
- quick-test
- test
@@ -42,4 +41,3 @@ include:
- local: .gitlab/ci/setup.gitlab-ci.yml
- local: .gitlab/ci/test-metadata.gitlab-ci.yml
- local: .gitlab/ci/yaml.gitlab-ci.yml
- - local: .gitlab/ci/ee-specific-checks.gitlab-ci.yml
diff --git a/.gitlab/ci/cng.gitlab-ci.yml b/.gitlab/ci/cng.gitlab-ci.yml
index a43d3694103..35859a1ab33 100644
--- a/.gitlab/ci/cng.gitlab-ci.yml
+++ b/.gitlab/ci/cng.gitlab-ci.yml
@@ -11,5 +11,6 @@ cloud-native-image:
- CNG_PROJECT_PATH="gitlab-org/build/CNG" BUILD_TRIGGER_TOKEN=$CI_JOB_TOKEN ./scripts/trigger-build cng
only:
refs:
- - tags@gitlab-org/gitlab-ce
- - tags@gitlab-org/gitlab-ee
+ - tags
+ variables:
+ - $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org"
diff --git a/.gitlab/ci/docs.gitlab-ci.yml b/.gitlab/ci/docs.gitlab-ci.yml
index 3f29adddf73..cbda2183616 100644
--- a/.gitlab/ci/docs.gitlab-ci.yml
+++ b/.gitlab/ci/docs.gitlab-ci.yml
@@ -2,6 +2,12 @@
extends:
- .default-tags
- .default-retry
+ - .only-docs-changes
+ only:
+ refs:
+ - merge_requests
+ variables:
+ - $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org"
image: ruby:2.6-alpine
stage: review
dependencies: []
@@ -19,55 +25,32 @@
- apk add --update openssl
- wget $CI_PROJECT_URL/raw/$CI_COMMIT_SHA/scripts/trigger-build-docs
- chmod 755 trigger-build-docs
-
-# Trigger a manual docs build in gitlab-docs only on non docs-only branches.
-# Useful to preview the docs changes live.
-review-docs-deploy-manual:
- extends:
- - .review-docs
- - .except-docs-qa
- script:
- gem install gitlab --no-document
- - ./trigger-build-docs deploy
- when: manual
- only:
- - branches@gitlab-org/gitlab-ce
- - branches@gitlab-org/gitlab-ee
# Always trigger a docs build in gitlab-docs only on docs-only branches.
# Useful to preview the docs changes live.
review-docs-deploy:
- extends:
- - .review-docs
- - .except-qa
+ extends: .review-docs
script:
- - gem install gitlab --no-document
- ./trigger-build-docs deploy
- only:
- - /(^docs[\/-].+|.+-docs$)/@gitlab-org/gitlab-ce
- - /(^docs[\/-].+|.+-docs$)/@gitlab-org/gitlab-ee
+ when: manual
# Cleanup remote environment of gitlab-docs
review-docs-cleanup:
- extends:
- - .review-docs
- - .except-qa
+ extends: .review-docs
environment:
name: review-docs/$CI_COMMIT_REF_SLUG
action: stop
script:
- - gem install gitlab --no-document
- ./trigger-build-docs cleanup
when: manual
- only:
- - branches@gitlab-org/gitlab-ce
- - branches@gitlab-org/gitlab-ee
docs lint:
extends:
- .default-tags
- .default-retry
- - .except-qa
+ - .default-only
+ - .only-docs-changes
image: "registry.gitlab.com/gitlab-org/gitlab-build-images:gitlab-docs-lint"
stage: test
dependencies: []
diff --git a/.gitlab/ci/ee-specific-checks.gitlab-ci.yml b/.gitlab/ci/ee-specific-checks.gitlab-ci.yml
deleted file mode 100644
index babb89b4606..00000000000
--- a/.gitlab/ci/ee-specific-checks.gitlab-ci.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-.ee-specific-check:
- extends: .default-tags
- dependencies: []
- only:
- - branches@gitlab-org/gitlab-ee
- except:
- - master
- - tags
- - /[\d-]+-stable(-ee)?/
- - /[\d-]+-auto-deploy-\d{7}/
- - /^security-/
- - /\bce\-to\-ee\b/
-
-ee-files-location-check:
- extends: .ee-specific-check
- script:
- - scripts/ee-files-location-check
-
-ee-specific-lines-check:
- extends: .ee-specific-check
- script:
- - scripts/ee-specific-lines-check
diff --git a/.gitlab/ci/frontend.gitlab-ci.yml b/.gitlab/ci/frontend.gitlab-ci.yml
index b2058506ea1..f72396e4edf 100644
--- a/.gitlab/ci/frontend.gitlab-ci.yml
+++ b/.gitlab/ci/frontend.gitlab-ci.yml
@@ -9,9 +9,10 @@
extends:
- .default-tags
- .default-retry
- - .assets-compile-cache
+ - .default-only
- .default-before_script
- - .except-docs
+ - .assets-compile-cache
+ - .only-code-qa-changes
image: dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.6.3-git-2.22-chrome-73.0-node-12.x-yarn-1.16-graphicsmagick-1.3.33-docker-18.06.1
stage: test
dependencies: ["setup-test-env"]
@@ -45,10 +46,9 @@
- scripts/clean-old-cached-assets
- rm -f /etc/apt/sources.list.d/google*.list # We don't need to update Chrome here
only:
- - /.+/@gitlab-org/gitlab-ce
- - /.+/@gitlab-org/gitlab-ee
- - /.+/@gitlab/gitlabhq
- - /.+/@gitlab/gitlab-ee
+ variables:
+ - $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org"
+ - $CI_SERVER_HOST == "dev.gitlab.org"
tags:
- gitlab-org
- docker
@@ -57,8 +57,7 @@ gitlab:assets:compile:
extends: .gitlab:assets:compile-metadata
only:
refs:
- - master@gitlab-org/gitlab-ce
- - master@gitlab-org/gitlab-ee
+ - master
cache:
policy: pull-push
@@ -66,9 +65,7 @@ gitlab:assets:compile pull-cache:
extends: .gitlab:assets:compile-metadata
except:
refs:
- - master@gitlab-org/gitlab-ce
- - master@gitlab-org/gitlab-ee
- - /(^docs[\/-].+|.+-docs$)/
+ - master
cache:
policy: pull
@@ -76,8 +73,10 @@ gitlab:assets:compile pull-cache:
extends:
- .default-tags
- .default-retry
- - .assets-compile-cache
+ - .default-only
- .default-before_script
+ - .assets-compile-cache
+ - .only-code-qa-changes
- .use-pg
stage: prepare
script:
@@ -98,12 +97,10 @@ gitlab:assets:compile pull-cache:
- public/assets
compile-assets:
- extends:
- - .compile-assets-metadata
+ extends: .compile-assets-metadata
only:
refs:
- - master@gitlab-org/gitlab-ce
- - master@gitlab-org/gitlab-ee
+ - master
cache:
policy: pull-push
@@ -111,21 +108,23 @@ compile-assets pull-cache:
extends: .compile-assets-metadata
except:
refs:
- - master@gitlab-org/gitlab-ce
- - master@gitlab-org/gitlab-ee
- - /(^docs[\/-].+|.+-docs$)/
+ - master
cache:
policy: pull
-karma:
+.only-code-frontend-job-base:
extends:
- .default-tags
- .default-retry
- .default-cache
+ - .default-only
- .default-before_script
+ - .only-code-changes
- .use-pg
- - .except-docs
dependencies: ["compile-assets", "compile-assets pull-cache", "setup-test-env"]
+
+karma:
+ extends: .only-code-frontend-job-base
variables:
# we override the max_old_space_size to prevent OOM errors
NODE_OPTIONS: --max_old_space_size=3584
@@ -148,14 +147,7 @@ karma:
junit: junit_karma.xml
jest:
- extends:
- - .default-tags
- - .default-retry
- - .default-cache
- - .default-before_script
- - .use-pg
- - .except-docs-qa
- dependencies: ["compile-assets", "compile-assets pull-cache", "setup-test-env"]
+ extends: .only-code-frontend-job-base
script:
- scripts/gitaly-test-spawn
- date
@@ -178,27 +170,26 @@ jest:
- tmp/jest/jest/
policy: pull-push
-.qa:
+.qa-job-base:
extends:
- .default-tags
- .default-retry
- .default-cache
- - .except-docs
+ - .default-only
+ - .only-code-qa-changes
dependencies: []
stage: test
- variables:
- SETUP_DB: "false"
before_script:
- cd qa/
- bundle install
qa:internal:
- extends: .qa
+ extends: .qa-job-base
script:
- bundle exec rspec
qa:selectors:
- extends: .qa
+ extends: .qa-job-base
script:
- bundle exec bin/qa Test::Sanity::Selectors
@@ -207,7 +198,8 @@ qa:selectors:
- .default-tags
- .default-retry
- .default-cache
- - .except-docs
+ - .default-only
+ - .only-code-changes
dependencies: []
cache:
key: "$CI_JOB_NAME"
@@ -238,10 +230,9 @@ webpack-dev-server:
- .default-tags
- .default-retry
- .default-cache
- - .except-docs-qa
- dependencies: ["compile-assets", "compile-assets pull-cache", "setup-test-env"]
+ - .only-code-changes
+ dependencies: ["setup-test-env", "compile-assets", "compile-assets pull-cache"]
variables:
- SETUP_DB: "false"
WEBPACK_MEMORY_TEST: "true"
script:
- node --version
diff --git a/.gitlab/ci/global.gitlab-ci.yml b/.gitlab/ci/global.gitlab-ci.yml
index 04135447ca4..77682f9c004 100644
--- a/.gitlab/ci/global.gitlab-ci.yml
+++ b/.gitlab/ci/global.gitlab-ci.yml
@@ -27,40 +27,76 @@
- vendor/gitaly-ruby
policy: pull
-.except-docs:
- except:
+.default-only:
+ only:
refs:
- - /(^docs[\/-].+|.+-docs$)/
+ - master
+ - /^[\d-]+-stable(-ee)?$/
+ - /^\d+-\d+-auto-deploy-\d+$/
+ - merge_requests
+ - tags
-.except-qa:
- except:
- refs:
- - /(^qa[\/-].*|.*-qa$)/
+.only-code-changes:
+ only:
+ changes:
+ - "{app,bin,config,danger,db,ee,fixtures,lib,public,rubocop,spec,symbol,vendor}/**/*"
+ - ".gitlab/ci/**/*"
+ - ".gitlab-ci.yml"
+ - "*_VERSION"
+ - "Gemfile{,.lock}"
+ - "Rakefile"
-.except-docs-qa:
- except:
- refs:
- - /(^docs[\/-].+|.+-docs$)/
- - /(^qa[\/-].*|.*-qa$)/
+.only-qa-changes:
+ only:
+ changes:
+ - "qa/**/*"
-.except-docs-qa-geo:
- except:
- refs:
- - /(^docs[\/-].+|.+-docs$)/
- - /(^qa[\/-].*|.*-qa$)/
- - /(^geo[\/-].*|.*-geo$)/
+.only-docs-changes:
+ only:
+ changes:
+ - "doc/**/*"
+ - ".markdownlint.json"
-.review-only:
+.only-code-qa-changes:
only:
- refs:
- - branches@gitlab-org/gitlab-ce
- - branches@gitlab-org/gitlab-ee
+ changes:
+ - "{app,bin,config,danger,db,ee,fixtures,lib,public,rubocop,spec,symbol,vendor}/**/*"
+ - ".gitlab/ci/**/*"
+ - ".gitlab-ci.yml"
+ - "*_VERSION"
+ - "Gemfile{,.lock}"
+ - "Rakefile"
+ - "qa/**/*"
+
+.only-code-docs-changes:
+ only:
+ changes:
+ - "{app,bin,config,danger,db,ee,fixtures,lib,public,rubocop,spec,symbol,vendor}/**/*"
+ - ".gitlab/ci/**/*"
+ - ".gitlab-ci.yml"
+ - "*_VERSION"
+ - "Gemfile{,.lock}"
+ - "Rakefile"
+ - "doc/**/*"
+ - ".markdownlint.json"
+
+.only-review:
+ only:
+ variables:
+ - $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org"
kubernetes: active
except:
refs:
- master
- /^\d+-\d+-auto-deploy-\d+$/
- - /(^docs[\/-].+|.+-docs$)/
+
+.only-review-schedules:
+ only:
+ refs:
+ - schedules
+ variables:
+ - $REVIEW_APP_CLEANUP && $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org"
+ kubernetes: active
.use-pg:
services:
@@ -74,3 +110,9 @@
- name: postgres:10.9
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
- name: redis:alpine
+
+.only-ee:
+ only:
+ variables:
+ - $CI_PROJECT_NAME == "gitlab-ee"
+ - $CI_PROJECT_NAME == "gitlab" # New name of gitlab-ee after the single codebase migration
diff --git a/.gitlab/ci/memory.gitlab-ci.yml b/.gitlab/ci/memory.gitlab-ci.yml
index 1936933cca4..d990c7eefa2 100644
--- a/.gitlab/ci/memory.gitlab-ci.yml
+++ b/.gitlab/ci/memory.gitlab-ci.yml
@@ -1,10 +1,14 @@
-memory-static:
+.only-code-memory-job-base:
extends:
- .default-tags
- .default-retry
- .default-cache
+ - .default-only
- .default-before_script
- - .except-docs
+ - .only-code-changes
+
+memory-static:
+ extends: .only-code-memory-job-base
variables:
SETUP_DB: "false"
script:
@@ -31,12 +35,8 @@ memory-static:
# All tests are run without a webserver (directly using Rack::Mock by default).
memory-on-boot:
extends:
- - .default-tags
- - .default-retry
- - .default-cache
- - .default-before_script
+ - .only-code-memory-job-base
- .use-pg-10
- - .except-docs-qa
variables:
NODE_ENV: "production"
RAILS_ENV: "production"
diff --git a/.gitlab/ci/pages.gitlab-ci.yml b/.gitlab/ci/pages.gitlab-ci.yml
index 2de09753cca..47f4117e34a 100644
--- a/.gitlab/ci/pages.gitlab-ci.yml
+++ b/.gitlab/ci/pages.gitlab-ci.yml
@@ -3,11 +3,12 @@ pages:
- .default-tags
- .default-retry
- .default-cache
- - .except-docs
+ - .default-only
only:
refs:
- - master@gitlab-org/gitlab-ce
- - master@gitlab-org/gitlab-ee
+ - master
+ variables:
+ - $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org"
stage: pages
dependencies: ["coverage", "karma", "gitlab:assets:compile"]
script:
diff --git a/.gitlab/ci/qa.gitlab-ci.yml b/.gitlab/ci/qa.gitlab-ci.yml
index ca89c4e2c89..5c5a8ce01cf 100644
--- a/.gitlab/ci/qa.gitlab-ci.yml
+++ b/.gitlab/ci/qa.gitlab-ci.yml
@@ -1,4 +1,5 @@
.package-and-qa-base:
+ extends: .default-only
image: ruby:2.6-alpine
stage: qa
dependencies: []
@@ -10,17 +11,17 @@
- install_gitlab_gem
- ./scripts/trigger-build omnibus
only:
- refs:
- - branches@gitlab-org/gitlab-ce
- - branches@gitlab-org/gitlab-ee
+ variables:
+ - $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org"
+ allow_failure: true
package-and-qa-manual:
- extends: .package-and-qa-base
+ extends:
+ - .package-and-qa-base
+ - .only-code-changes
except:
refs:
- master
- - /(^docs[\/-].+|.+-docs$)/
- - /(^qa[\/-].*|.*-qa$)/
when: manual
needs: ["build-qa-image", "gitlab:assets:compile pull-cache"]
@@ -34,10 +35,10 @@ package-and-qa-manual:master:
needs: ["build-qa-image", "gitlab:assets:compile"]
package-and-qa:
- extends: .package-and-qa-base
- only:
+ extends:
+ - .package-and-qa-base
+ - .only-qa-changes
+ except:
refs:
- - /(^qa[\/-].*|.*-qa$)/@gitlab-org/gitlab-ce
- - /(^qa[\/-].*|.*-qa$)/@gitlab-org/gitlab-ee
+ - master
needs: ["build-qa-image", "gitlab:assets:compile pull-cache"]
- allow_failure: true
diff --git a/.gitlab/ci/rails.gitlab-ci.yml b/.gitlab/ci/rails.gitlab-ci.yml
index 878be25c39b..3f65af276ef 100644
--- a/.gitlab/ci/rails.gitlab-ci.yml
+++ b/.gitlab/ci/rails.gitlab-ci.yml
@@ -1,31 +1,40 @@
-.only-schedules-master:
+.only-master:
only:
refs:
- - schedules@gitlab-org/gitlab-ce
- - schedules@gitlab-org/gitlab-ee
- - master@gitlab-org/gitlab-ce
- - master@gitlab-org/gitlab-ee
- - master@gitlab/gitlabhq
- - master@gitlab/gitlab-ee
+ - master
.rake-exec:
extends:
- .default-tags
- .default-retry
- .default-cache
+ - .default-only
- .default-before_script
variables:
SETUP_DB: "false"
script:
- bundle exec rake $CI_JOB_NAME
-.rspec-base:
+.only-code-rails-job-base:
extends:
- .default-tags
- .default-retry
- .default-cache
+ - .default-only
- .default-before_script
- - .except-docs-qa
+ - .only-code-changes
+
+.only-code-qa-rails-job-base:
+ extends:
+ - .default-tags
+ - .default-retry
+ - .default-cache
+ - .default-only
+ - .default-before_script
+ - .only-code-qa-changes
+
+.rspec-base:
+ extends: .only-code-rails-job-base
stage: test
script:
- JOB_NAME=( $CI_JOB_NAME )
@@ -74,12 +83,8 @@
setup-test-env:
extends:
- - .default-tags
- - .default-retry
- - .default-cache
- - .default-before_script
+ - .only-code-qa-rails-job-base
- .use-pg
- - .except-docs
stage: prepare
script:
- bundle exec ruby -Ispec -e 'require "spec_helper" ; TestEnv.init'
@@ -106,19 +111,19 @@ rspec system pg:
rspec unit pg-10:
extends:
- .rspec-base-pg-10
- - .only-schedules-master
+ - .only-master
parallel: 20
rspec integration pg-10:
extends:
- .rspec-base-pg-10
- - .only-schedules-master
+ - .only-master
parallel: 6
rspec system pg-10:
extends:
- .rspec-base-pg-10
- - .only-schedules-master
+ - .only-master
parallel: 24
rspec-fast-spec-helper:
@@ -128,9 +133,8 @@ rspec-fast-spec-helper:
rspec quarantine pg:
extends:
- - .default-before_script
- .rspec-base-pg
- - .only-schedules-master
+ - .only-master
script:
- export NO_KNAPSACK=1 CACHE_CLASSES=true
- scripts/gitaly-test-spawn
@@ -138,12 +142,7 @@ rspec quarantine pg:
allow_failure: true
static-analysis:
- extends:
- - .default-tags
- - .default-retry
- - .default-cache
- - .default-before_script
- - .except-docs
+ extends: .only-code-qa-rails-job-base
dependencies: ["setup-test-env", "compile-assets", "compile-assets pull-cache"]
variables:
SETUP_DB: "false"
@@ -157,81 +156,70 @@ static-analysis:
policy: pull-push
downtime_check:
- extends: .rake-exec
+ extends:
+ - .rake-exec
+ - .only-code-changes
except:
refs:
- master
- tags
- - /^[\d-]+-stable(-ee)?$/
- - /(^docs[\/-].+|.+-docs$)/
- - /(^qa[\/-].*|.*-qa$)/
+ variables:
+ - $CI_COMMIT_REF_NAME =~ /^[\d-]+-stable(-ee)?$/
stage: test
dependencies: ["setup-test-env"]
needs: ["setup-test-env"]
ee_compat_check:
- extends: .rake-exec
+ extends:
+ - .rake-exec
+ - .only-code-qa-changes
dependencies: []
+ only:
+ variables:
+ - $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAME == "gitlab-ce"
+ - $CI_SERVER_HOST == "dev.gitlab.org" && $CI_PROJECT_NAME == "gitlabhq"
except:
refs:
- master
- - tags
- - branches@gitlab-org/gitlab-ee
- - branches@gitlab/gitlab-ee
- - /^[\d-]+-stable(-ee)?$/
- - /(^docs[\/-].+|.+-docs$)/
- - /^security-/
+ variables:
+ - $CI_COMMIT_REF_NAME =~ /^[\d-]+-stable(-ee)?$/
+ - $CI_COMMIT_REF_NAME =~ /^security-/
artifacts:
- name: "${CI_JOB_NAME}_${CI_COMIT_REF_NAME}_${CI_COMMIT_SHA}"
+ name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}_${CI_COMMIT_SHA}"
when: always
expire_in: 10d
paths:
- ee_compat_check/patches/*.patch
-# DB migration, rollback, and seed jobs
-db:migrate:reset:
+.db-job-base:
extends:
- - .default-tags
- - .default-retry
- - .default-cache
- - .default-before_script
+ - .only-code-rails-job-base
- .use-pg
- - .except-docs-qa
stage: test
dependencies: ["setup-test-env"]
needs: ["setup-test-env"]
+
+# DB migration, rollback, and seed jobs
+db:migrate:reset:
+ extends: .db-job-base
script:
- bundle exec rake db:migrate:reset
db:check-schema:
- extends:
- - .default-tags
- - .default-retry
- - .default-cache
- - .default-before_script
- - .use-pg
- - .except-docs-qa
- stage: test
- dependencies: ["setup-test-env"]
- needs: ["setup-test-env"]
+ extends: .db-job-base
script:
- source scripts/schema_changed.sh
db:migrate-from-v11.11.0:
- extends:
- - .default-tags
- - .default-retry
- - .default-cache
- - .default-before_script
- - .use-pg
- - .except-docs-qa
- stage: test
- dependencies: ["setup-test-env"]
- needs: ["setup-test-env"]
+ extends: .db-job-base
variables:
SETUP_DB: "false"
script:
- - git fetch https://gitlab.com/gitlab-org/gitlab-ce.git v11.11.0
+ - export PROJECT_TO_CHECKOUT="gitlab-ce"
+ - export TAG_TO_CHECKOUT="v11.11.0"
+ - '[[ ! -d "ee/" ]] || export PROJECT_TO_CHECKOUT="gitlab-ee"'
+ - '[[ ! -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
@@ -249,31 +237,13 @@ db:migrate-from-v11.11.0:
- bundle exec rake db:migrate
db:rollback:
- extends:
- - .default-tags
- - .default-retry
- - .default-cache
- - .default-before_script
- - .use-pg
- - .except-docs-qa
- stage: test
- dependencies: ["setup-test-env"]
- needs: ["setup-test-env"]
+ extends: .db-job-base
script:
- bundle exec rake db:migrate VERSION=20180101160629
- bundle exec rake db:migrate SKIP_SCHEMA_VERSION_CHECK=true
gitlab:setup:
- extends:
- - .default-tags
- - .default-retry
- - .default-cache
- - .default-before_script
- - .use-pg
- - .except-docs-qa
- stage: test
- dependencies: ["setup-test-env"]
- needs: ["setup-test-env"]
+ extends: .db-job-base
variables:
SETUP_DB: "false"
script:
@@ -290,14 +260,7 @@ gitlab:setup:
- log/development.log
coverage:
- # Don't include dedicated-no-docs-no-db-pull-cache-job here since we need to
- # download artifacts from all the rspec jobs instead of from setup-test-env only
- extends:
- - .default-tags
- - .default-retry
- - .default-cache
- - .default-before_script
- - .except-docs-qa
+ extends: .only-code-rails-job-base
cache:
policy: pull
variables:
@@ -314,3 +277,133 @@ coverage:
- coverage/index.html
- coverage/assets/
- tmp/memory_test/
+
+## EE-specific content
+.rspec-base-ee:
+ extends:
+ - .rspec-base
+ - .only-ee
+ script:
+ - JOB_NAME=( $CI_JOB_NAME )
+ - TEST_TOOL=${JOB_NAME[0]}
+ - TEST_LEVEL=${JOB_NAME[1]}
+ - DATABASE=${JOB_NAME[2]}
+ - export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/${TEST_TOOL}_${TEST_LEVEL}_${DATABASE}_ee_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json
+ - export KNAPSACK_GENERATE_REPORT=true KNAPSACK_LOG_LEVEL=debug KNAPSACK_TEST_DIR=spec
+ - export CACHE_CLASSES=true
+ - cp ${EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH} ${KNAPSACK_REPORT_PATH}
+ - scripts/gitaly-test-spawn
+ - date
+ - 'export KNAPSACK_TEST_FILE_PATTERN=$(ruby -r./lib/quality/test_level.rb -e "puts Quality::TestLevel.new(%(ee/)).pattern(:${TEST_LEVEL})")'
+ - mkdir -p tmp/memory_test
+ - export MEMORY_TEST_PATH="tmp/memory_test/ee_${TEST_TOOL}_${TEST_LEVEL}_${DATABASE}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_memory.csv"
+ - knapsack rspec "--color --format documentation --format RspecJunitFormatter --out junit_rspec.xml --tag level:${TEST_LEVEL} --tag ~geo"
+ - date
+
+.rspec-base-pg-ee:
+ extends: .rspec-base-ee
+ services:
+ - name: postgres:9.6
+ command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
+ - name: redis:alpine
+ - name: docker.elastic.co/elasticsearch/elasticsearch:5.6.12
+
+rspec unit pg ee:
+ extends: .rspec-base-pg-ee
+ parallel: 7
+
+rspec integration pg ee:
+ extends: .rspec-base-pg-ee
+ parallel: 3
+
+rspec system pg ee:
+ extends: .rspec-base-pg-ee
+ parallel: 5
+
+.rspec-base-geo:
+ extends: .rspec-base-ee
+ parallel: 3
+ script:
+ - JOB_NAME=( $CI_JOB_NAME )
+ - TEST_TOOL=${JOB_NAME[0]}
+ - TEST_LEVEL=${JOB_NAME[1]}
+ - DATABASE=${JOB_NAME[2]}
+ - export KNAPSACK_TEST_FILE_PATTERN="ee/spec/**{,/*/**}/*_spec.rb" KNAPSACK_GENERATE_REPORT=true CACHE_CLASSES=true
+ - export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/${TEST_TOOL}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json
+ - cp ${EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH} ${KNAPSACK_REPORT_PATH}
+ - source scripts/prepare_postgres_fdw.sh
+ - scripts/gitaly-test-spawn
+ - mkdir -p tmp/memory_test
+ - export MEMORY_TEST_PATH="tmp/memory_test/ee_${TEST_TOOL}_${TEST_LEVEL}_${DATABASE}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_memory.csv"
+ - knapsack rspec "-Ispec --color --format documentation --format RspecJunitFormatter --out junit_rspec.xml --tag geo"
+
+rspec geo pg ee:
+ extends:
+ - .rspec-base-geo
+ - .use-pg
+ except:
+ variables:
+ - $CI_COMMIT_REF_NAME =~ /(^geo[\/-].*|.*-geo$)/
+
+rspec geo pg-10 ee:
+ extends:
+ - .rspec-base-geo
+ - .use-pg-10
+ except:
+ variables:
+ - $CI_COMMIT_REF_NAME =~ /(^geo[\/-].*|.*-geo$)/
+
+quick-rspec geo pg ee:
+ extends:
+ - .rspec-base-geo
+ - .use-pg
+ stage: quick-test
+ only:
+ variables:
+ - $CI_COMMIT_REF_NAME =~ /(^geo[\/-].*|.*-geo$)/
+
+quick-rspec geo pg-10 ee:
+ extends:
+ - .rspec-base-geo
+ - .use-pg-10
+ stage: quick-test
+ only:
+ variables:
+ - $CI_COMMIT_REF_NAME =~ /(^geo[\/-].*|.*-geo$)/
+
+rspec quarantine pg ee:
+ extends: rspec quarantine pg
+ script:
+ - export NO_KNAPSACK=1 CACHE_CLASSES=true
+ - scripts/gitaly-test-spawn
+ - bin/rspec --color --format documentation --format RspecJunitFormatter --out junit_rspec.xml --tag quarantine -- ee/spec/
+
+migration:upgrade-pg-ce-to-ee:
+ extends:
+ - .db-job-base
+ - .only-ee
+ variables:
+ SETUP_DB: "false"
+ script:
+ - ruby -r./scripts/ee_specific_check/ee_specific_check -e'EESpecificCheck.fetch_remote_ce_branch'
+ - git checkout -f FETCH_HEAD
+ - . scripts/utils.sh
+ - . scripts/prepare_build.sh
+ - date
+ - setup_db
+ - date
+ - git checkout -f $CI_COMMIT_SHA
+ - date
+ - . scripts/prepare_build.sh
+ - date
+ - bundle exec rake db:migrate
+
+db:rollback geo:
+ extends:
+ - db:rollback
+ - .only-ee
+ script:
+ - bundle exec rake geo:db:migrate VERSION=20170627195211
+ - bundle exec rake geo:db:migrate
+
+## END of EE-specific content
diff --git a/.gitlab/ci/reports.gitlab-ci.yml b/.gitlab/ci/reports.gitlab-ci.yml
index 5622cd232ca..1c27cba9c19 100644
--- a/.gitlab/ci/reports.gitlab-ci.yml
+++ b/.gitlab/ci/reports.gitlab-ci.yml
@@ -1,39 +1,236 @@
-include:
- - template: Code-Quality.gitlab-ci.yml
- - template: Security/SAST.gitlab-ci.yml
- - template: Security/Dependency-Scanning.gitlab-ci.yml
- - template: Security/DAST.gitlab-ci.yml
+# include:
+# - template: Code-Quality.gitlab-ci.yml
+# - template: Security/SAST.gitlab-ci.yml
+# - template: Security/Dependency-Scanning.gitlab-ci.yml
+# - template: Security/DAST.gitlab-ci.yml
-.reports:
+# We need to duplicate this job's definition because it seems it's impossible to
+# override an included `only.refs`.
+# See https://gitlab.com/gitlab-org/gitlab-ce/issues/66767.
+code_quality:
extends:
- .default-retry
- - .except-docs
-
-code_quality:
- extends: .reports
+ - .default-only
+ - .only-code-changes
+ stage: test
+ image: docker:stable
+ allow_failure: true
+ services:
+ - docker:stable-dind
+ variables:
+ DOCKER_DRIVER: overlay2
+ DOCKER_TLS_CERTDIR: ""
+ script:
+ - |
+ if ! docker info &>/dev/null; then
+ if [ -z "$DOCKER_HOST" -a "$KUBERNETES_PORT" ]; then
+ export DOCKER_HOST='tcp://localhost:2375'
+ fi
+ fi
+ - docker run
+ --env SOURCE_CODE="$PWD"
+ --volume "$PWD":/code
+ --volume /var/run/docker.sock:/var/run/docker.sock
+ "registry.gitlab.com/gitlab-org/security-products/codequality:12-0-stable" /code
+ artifacts:
+ reports:
+ codequality: gl-code-quality-report.json
+ expire_in: 1 week
+ dependencies: []
+ except:
+ variables:
+ - $CODE_QUALITY_DISABLED
+# We need to duplicate this job's definition because it seems it's impossible to
+# override an included `only.refs`.
+# See https://gitlab.com/gitlab-org/gitlab-ce/issues/66767.
sast:
- extends: .reports
+ extends:
+ - .default-retry
+ - .default-only
+ - .only-code-changes
+ stage: test
+ image: docker:stable
variables:
+ DOCKER_DRIVER: overlay2
+ DOCKER_TLS_CERTDIR: ""
SAST_BRAKEMAN_LEVEL: 2
- SAST_EXCLUDED_PATHS: qa,spec,doc
+ SAST_EXCLUDED_PATHS: qa,spec,doc,ee/spec
+ allow_failure: true
+ services:
+ - docker:stable-dind
+ script:
+ - export SAST_VERSION=${SP_VERSION:-$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')}
+ - |
+ if ! docker info &>/dev/null; then
+ if [ -z "$DOCKER_HOST" -a "$KUBERNETES_PORT" ]; then
+ export DOCKER_HOST='tcp://localhost:2375'
+ fi
+ fi
+ - | # this is required to avoid undesirable reset of Docker image ENV variables being set on build stage
+ function propagate_env_vars() {
+ CURRENT_ENV=$(printenv)
+
+ for VAR_NAME; do
+ echo $CURRENT_ENV | grep "${VAR_NAME}=" > /dev/null && echo "--env $VAR_NAME "
+ done
+ }
+ - |
+ docker run \
+ $(propagate_env_vars \
+ SAST_BANDIT_EXCLUDED_PATHS \
+ SAST_ANALYZER_IMAGES \
+ SAST_ANALYZER_IMAGE_PREFIX \
+ SAST_ANALYZER_IMAGE_TAG \
+ SAST_DEFAULT_ANALYZERS \
+ SAST_PULL_ANALYZER_IMAGES \
+ SAST_BRAKEMAN_LEVEL \
+ SAST_FLAWFINDER_LEVEL \
+ SAST_GITLEAKS_ENTROPY_LEVEL \
+ SAST_GOSEC_LEVEL \
+ SAST_EXCLUDED_PATHS \
+ SAST_DOCKER_CLIENT_NEGOTIATION_TIMEOUT \
+ SAST_PULL_ANALYZER_IMAGE_TIMEOUT \
+ SAST_RUN_ANALYZER_TIMEOUT \
+ SAST_JAVA_VERSION \
+ ANT_HOME \
+ ANT_PATH \
+ GRADLE_PATH \
+ JAVA_OPTS \
+ JAVA_PATH \
+ JAVA_8_VERSION \
+ JAVA_11_VERSION \
+ MAVEN_CLI_OPTS \
+ MAVEN_PATH \
+ MAVEN_REPO_PATH \
+ SBT_PATH \
+ FAIL_NEVER \
+ ) \
+ --volume "$PWD:/code" \
+ --volume /var/run/docker.sock:/var/run/docker.sock \
+ "registry.gitlab.com/gitlab-org/security-products/sast:$SAST_VERSION" /app/bin/run /code
artifacts:
expire_in: 7 days
paths:
- gl-sast-report.json
+ reports:
+ sast: gl-sast-report.json
+ dependencies: []
+ only:
+ variables:
+ - $GITLAB_FEATURES =~ /\bsast\b/
+ except:
+ variables:
+ - $SAST_DISABLED
+# We need to duplicate this job's definition because it seems it's impossible to
+# override an included `only.refs`.
+# See https://gitlab.com/gitlab-org/gitlab-ce/issues/66767.
dependency_scanning:
- extends: .reports
+ extends:
+ - .default-retry
+ - .default-only
+ - .only-code-changes
+ stage: test
+ image: docker:stable
+ variables:
+ DOCKER_DRIVER: overlay2
+ DOCKER_TLS_CERTDIR: ""
+ allow_failure: true
+ services:
+ - docker:stable-dind
+ script:
+ - export DS_VERSION=${SP_VERSION:-$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')}
+ - |
+ if ! docker info &>/dev/null; then
+ if [ -z "$DOCKER_HOST" -a "$KUBERNETES_PORT" ]; then
+ export DOCKER_HOST='tcp://localhost:2375'
+ fi
+ fi
+ - | # this is required to avoid undesirable reset of Docker image ENV variables being set on build stage
+ function propagate_env_vars() {
+ CURRENT_ENV=$(printenv)
+ for VAR_NAME; do
+ echo $CURRENT_ENV | grep "${VAR_NAME}=" > /dev/null && echo "--env $VAR_NAME "
+ done
+ }
+ - |
+ docker run \
+ $(propagate_env_vars \
+ DS_ANALYZER_IMAGES \
+ DS_ANALYZER_IMAGE_PREFIX \
+ DS_ANALYZER_IMAGE_TAG \
+ DS_DEFAULT_ANALYZERS \
+ DS_EXCLUDED_PATHS \
+ DEP_SCAN_DISABLE_REMOTE_CHECKS \
+ DS_DOCKER_CLIENT_NEGOTIATION_TIMEOUT \
+ DS_PULL_ANALYZER_IMAGE_TIMEOUT \
+ DS_RUN_ANALYZER_TIMEOUT \
+ DS_PYTHON_VERSION \
+ DS_PIP_DEPENDENCY_PATH \
+ PIP_INDEX_URL \
+ PIP_EXTRA_INDEX_URL \
+ ) \
+ --volume "$PWD:/code" \
+ --volume /var/run/docker.sock:/var/run/docker.sock \
+ "registry.gitlab.com/gitlab-org/security-products/dependency-scanning:$DS_VERSION" /code
+ artifacts:
+ reports:
+ dependency_scanning: gl-dependency-scanning-report.json
+ dependencies: []
+ only:
+ variables:
+ - $GITLAB_FEATURES =~ /\bdependency_scanning\b/
+ except:
+ variables:
+ - $DEPENDENCY_SCANNING_DISABLED
+
+# We need to duplicate this job's definition because it seems it's impossible to
+# override an included `only.refs`.
+# See https://gitlab.com/gitlab-org/gitlab-ce/issues/66767.
dast:
extends:
- - .reports
- - .review-only
+ - .default-retry
+ - .default-only
+ - .only-code-qa-changes
+ - .only-review
stage: qa
dependencies: ["review-deploy"]
before_script:
- export DAST_WEBSITE="$(cat review_app_url.txt)"
+ image:
+ name: "registry.gitlab.com/gitlab-org/security-products/dast:$CI_SERVER_VERSION_MAJOR-$CI_SERVER_VERSION_MINOR-stable"
+ variables:
+ # URL to scan:
+ # DAST_WEBSITE: https://example.com/
+ #
+ # Time limit for target availability (scan is attempted even when timeout):
+ # DAST_TARGET_AVAILABILITY_TIMEOUT: 60
+ #
+ # Set these variables to scan with an authenticated user:
+ # DAST_AUTH_URL: https://example.com/sign-in
+ # DAST_USERNAME: john.doe@example.com
+ # DAST_PASSWORD: john-doe-password
+ # DAST_USERNAME_FIELD: session[user] # the name of username field at the sign-in HTML form
+ # DAST_PASSWORD_FIELD: session[password] # the name of password field at the sign-in HTML form
+ # DAST_AUTH_EXCLUDE_URLS: http://example.com/sign-out,http://example.com/sign-out-2 # optional: URLs to skip during the authenticated scan; comma-separated, no spaces in between
+ #
+ # Perform ZAP Full Scan, which includes both passive and active scanning:
+ # DAST_FULL_SCAN_ENABLED: "true"
+ allow_failure: true
+ script:
+ - export DAST_WEBSITE=${DAST_WEBSITE:-$(cat environment_url.txt)}
+ - /analyze -t $DAST_WEBSITE
artifacts:
expire_in: 7 days
paths:
- gl-dast-report.json
+ reports:
+ dast: gl-dast-report.json
+ only:
+ variables:
+ - $GITLAB_FEATURES =~ /\bdast\b/
+ except:
+ variables:
+ - $DAST_DISABLED
diff --git a/.gitlab/ci/review.gitlab-ci.yml b/.gitlab/ci/review.gitlab-ci.yml
index 5db194e06f7..164a54479ff 100644
--- a/.gitlab/ci/review.gitlab-ci.yml
+++ b/.gitlab/ci/review.gitlab-ci.yml
@@ -1,21 +1,10 @@
-.review-schedules-only:
- only:
- refs:
- - schedules@gitlab-org/gitlab-ce
- - schedules@gitlab-org/gitlab-ee
- kubernetes: active
- variables:
- - $REVIEW_APP_CLEANUP
- except:
- refs:
- - tags
- - /(^docs[\/-].+|.+-docs$)/
-
.review-base:
extends:
- .default-tags
- .default-retry
- - .review-only
+ - .default-only
+ - .only-review
+ - .only-code-qa-changes
image: registry.gitlab.com/gitlab-org/gitlab-build-images:gitlab-charts-build-base
dependencies: []
before_script:
@@ -25,6 +14,7 @@
extends:
- .default-tags
- .default-retry
+ - .default-only
image: registry.gitlab.com/gitlab-org/gitlab-build-images:gitlab-qa-alpine
services:
- docker:19.03.0-dind
@@ -40,18 +30,20 @@
build-qa-image:
extends:
- .review-docker
- - .except-docs
+ - .only-code-qa-changes
only:
- refs:
- - branches@gitlab-org/gitlab-ce
- - branches@gitlab-org/gitlab-ee
- stage: test
+ variables:
+ - $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org"
+ stage: prepare
script:
- time docker build --cache-from ${LATEST_QA_IMAGE} --tag ${QA_IMAGE} --file ./qa/Dockerfile ./
- echo "${CI_JOB_TOKEN}" | docker login --username gitlab-ci-token --password-stdin ${CI_REGISTRY}
- time docker push ${QA_IMAGE}
.review-build-cng-base:
+ extends:
+ - .default-only
+ - .only-code-qa-changes
image: ruby:2.6-alpine
stage: review-prepare
before_script:
@@ -65,13 +57,13 @@ build-qa-image:
review-build-cng:
extends:
- .review-build-cng-base
- - .review-only
+ - .only-review
needs: ["gitlab:assets:compile pull-cache"]
schedule:review-build-cng:
extends:
- .review-build-cng-base
- - .review-schedules-only
+ - .only-review-schedules
needs: ["gitlab:assets:compile"]
.review-deploy-base:
@@ -115,7 +107,7 @@ review-deploy:
schedule:review-deploy:
extends:
- .review-deploy-base
- - .review-schedules-only
+ - .only-review-schedules
needs: ["schedule:review-build-cng"]
review-stop:
@@ -150,7 +142,8 @@ review-cleanup-failed-deployment:
.review-qa-base:
extends:
- .review-docker
- - .review-only
+ - .only-review
+ - .only-code-qa-changes
stage: qa
variables:
QA_ARTIFACTS_DIR: "${CI_PROJECT_DIR}/qa"
@@ -195,7 +188,9 @@ review-qa-all:
parallel-spec-reports:
extends:
- .default-tags
- - .except-docs
+ - .default-only
+ - .only-code-qa-changes
+ - .only-review
image: ruby:2.6-alpine
stage: post-test
dependencies: ["review-qa-all"]
@@ -242,14 +237,14 @@ review-performance:
schedule:review-performance:
extends:
- review-performance
- - .review-schedules-only
+ - .only-review-schedules
dependencies: ["schedule:review-deploy"]
schedule:review-cleanup:
extends:
- .review-base
- - .review-schedules-only
- stage: build
+ - .only-review-schedules
+ stage: prepare
allow_failure: true
environment:
name: review/auto-cleanup
@@ -265,6 +260,7 @@ danger-review:
- .default-tags
- .default-retry
- .default-cache
+ - .default-only
image: registry.gitlab.com/gitlab-org/gitlab-build-images:danger
stage: test
dependencies: []
@@ -274,10 +270,9 @@ danger-review:
except:
refs:
- master
- - /^\d+-\d+-auto-deploy-\d+$/
- - /^[\d-]+-stable(-ee)?$/
- - /^ce-to-ee-.*/
- - /.*-stable(-ee)?-prepare-.*/
+ variables:
+ - $CI_COMMIT_REF_NAME =~ /^\d+-\d+-auto-deploy-\d+$/
+ - $CI_COMMIT_REF_NAME =~ /^[\d-]+-stable(-ee)?$/
script:
- git version
- node --version
diff --git a/.gitlab/ci/setup.gitlab-ci.yml b/.gitlab/ci/setup.gitlab-ci.yml
index cd7ca4d30bf..21e48975e28 100644
--- a/.gitlab/ci/setup.gitlab-ci.yml
+++ b/.gitlab/ci/setup.gitlab-ci.yml
@@ -6,7 +6,6 @@ cache gems:
- .default-retry
- .default-cache
- .default-before_script
- - .except-docs
stage: test
dependencies: ["setup-test-env"]
needs: ["setup-test-env"]
@@ -19,15 +18,17 @@ cache gems:
- vendor/cache
only:
refs:
- - master@gitlab-org/gitlab-ce
- - master@gitlab-org/gitlab-ee
+ - master
- tags
+ variables:
+ - $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org"
.minimal-job:
extends:
- .default-tags
- .default-retry
- - .except-docs-qa
+ - .default-only
+ - .only-code-changes
dependencies: []
gitlab_git_test:
@@ -40,5 +41,6 @@ no_ee_check:
script:
- scripts/no-ee-check
only:
- refs:
- - branches@gitlab-org/gitlab-ce
+ variables:
+ - $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAME == "gitlab-ce"
+ - $CI_SERVER_HOST == "dev.gitlab.org" && $CI_PROJECT_NAME == "gitlabhq"
diff --git a/.gitlab/ci/test-metadata.gitlab-ci.yml b/.gitlab/ci/test-metadata.gitlab-ci.yml
index b9dac64957e..fe3cde2bb16 100644
--- a/.gitlab/ci/test-metadata.gitlab-ci.yml
+++ b/.gitlab/ci/test-metadata.gitlab-ci.yml
@@ -1,4 +1,5 @@
.tests-metadata-state:
+ extends: .default-only
variables:
TESTS_METADATA_S3_BUCKET: "gitlab-ce-cache"
before_script:
@@ -13,7 +14,7 @@
retrieve-tests-metadata:
extends:
- .tests-metadata-state
- - .except-docs-qa
+ - .only-code-changes
stage: prepare
cache:
key: tests_metadata
@@ -26,6 +27,8 @@ retrieve-tests-metadata:
- mkdir -p rspec_profiling/
- wget -O $FLAKY_RSPEC_SUITE_REPORT_PATH http://${TESTS_METADATA_S3_BUCKET}.s3.amazonaws.com/$FLAKY_RSPEC_SUITE_REPORT_PATH || rm $FLAKY_RSPEC_SUITE_REPORT_PATH
- '[[ -f $FLAKY_RSPEC_SUITE_REPORT_PATH ]] || echo "{}" > ${FLAKY_RSPEC_SUITE_REPORT_PATH}'
+ - '[[ ! -d "ee/" ]] || wget -O $EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH http://${TESTS_METADATA_S3_BUCKET}.s3.amazonaws.com/$EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH || rm $EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH'
+ - '[[ ! -d "ee/" ]] || [[ -f $EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH ]] || echo "{}" > ${EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH}'
update-tests-metadata:
extends: .tests-metadata-state
@@ -41,6 +44,9 @@ update-tests-metadata:
- echo "{}" > ${KNAPSACK_RSPEC_SUITE_REPORT_PATH}
- scripts/merge-reports ${KNAPSACK_RSPEC_SUITE_REPORT_PATH} knapsack/${CI_PROJECT_NAME}/rspec_*_pg_node_*.json
- '[[ -z ${TESTS_METADATA_S3_BUCKET} ]] || scripts/sync-reports put $TESTS_METADATA_S3_BUCKET $KNAPSACK_RSPEC_SUITE_REPORT_PATH'
+ - '[[ ! -d "ee/" ]] || echo "{}" > ${EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH}'
+ - '[[ ! -d "ee/" ]] || scripts/merge-reports ${EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH} knapsack/${CI_PROJECT_NAME}/rspec_*_pg_ee_*node_*.json'
+ - '[[ ! -d "ee/" ]] || [[ -z ${TESTS_METADATA_S3_BUCKET} ]] || scripts/sync-reports put $TESTS_METADATA_S3_BUCKET $EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH'
- rm -f knapsack/${CI_PROJECT_NAME}/*_node_*.json
- scripts/merge-reports ${FLAKY_RSPEC_SUITE_REPORT_PATH} rspec_flaky/all_*_*.json
- FLAKY_RSPEC_GENERATE_REPORT=1 scripts/prune-old-flaky-specs ${FLAKY_RSPEC_SUITE_REPORT_PATH}
@@ -49,15 +55,17 @@ update-tests-metadata:
- scripts/insert-rspec-profiling-data
only:
refs:
- - master@gitlab-org/gitlab-ce
- - master@gitlab-org/gitlab-ee
- - master@gitlab/gitlabhq
- - master@gitlab/gitlab-ee
+ - master
+ variables:
+ - $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org"
+ - $CI_SERVER_HOST == "dev.gitlab.org"
flaky-examples-check:
extends:
- .default-tags
- .default-retry
+ - .default-only
+ - .only-code-changes
image: ruby:2.6-alpine
stage: post-test
variables:
@@ -65,12 +73,7 @@ flaky-examples-check:
allow_failure: true
only:
refs:
- - branches
- except:
- refs:
- - master
- - /(^docs[\/-].+|.+-docs$)/
- - /(^qa[\/-].*|.*-qa$)/
+ - merge_requests
artifacts:
expire_in: 30d
paths:
diff --git a/.gitlab/ci/yaml.gitlab-ci.yml b/.gitlab/ci/yaml.gitlab-ci.yml
index dd61cb3f035..323f94b6d04 100644
--- a/.gitlab/ci/yaml.gitlab-ci.yml
+++ b/.gitlab/ci/yaml.gitlab-ci.yml
@@ -4,7 +4,10 @@ lint-ci-gitlab:
extends:
- .default-tags
- .default-retry
- - .except-docs
+ - .default-only
+ only:
+ changes:
+ - "**/*.yml"
image: sdesbure/yamllint:latest
dependencies: []
script: