summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKamil Trzciński <ayufan@ayufan.eu>2019-04-12 14:32:31 +0200
committerKamil Trzciński <ayufan@ayufan.eu>2019-04-15 18:35:47 +0200
commit8ac11739ac8ced2bbcfec513001228414aa28c7d (patch)
tree6bc512e6d6733fcf323e243fa5344d562e338024
parent1a50801cd0801d3134b41e96ff2a6b27a96a1047 (diff)
downloadgitlab-ce-8ac11739ac8ced2bbcfec513001228414aa28c7d.tar.gz
Try to use Merge Request Pipelines
-rw-r--r--.gitlab/ci/cng.gitlab-ci.yml1
-rw-r--r--.gitlab/ci/docs.gitlab-ci.yml39
-rw-r--r--.gitlab/ci/frontend.gitlab-ci.yml39
-rw-r--r--.gitlab/ci/global.gitlab-ci.yml94
-rw-r--r--.gitlab/ci/pages.gitlab-ci.yml3
-rw-r--r--.gitlab/ci/qa.gitlab-ci.yml6
-rw-r--r--.gitlab/ci/rails.gitlab-ci.yml41
-rw-r--r--.gitlab/ci/review.gitlab-ci.yml26
-rw-r--r--.gitlab/ci/setup.gitlab-ci.yml17
-rw-r--r--.gitlab/ci/test-metadata.gitlab-ci.yml12
10 files changed, 140 insertions, 138 deletions
diff --git a/.gitlab/ci/cng.gitlab-ci.yml b/.gitlab/ci/cng.gitlab-ci.yml
index e15f8ed91e0..657af7474b7 100644
--- a/.gitlab/ci/cng.gitlab-ci.yml
+++ b/.gitlab/ci/cng.gitlab-ci.yml
@@ -12,5 +12,6 @@ cloud-native-image:
- gem install gitlab --no-document
- 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
diff --git a/.gitlab/ci/docs.gitlab-ci.yml b/.gitlab/ci/docs.gitlab-ci.yml
index 5aa1a856405..0406060e8c1 100644
--- a/.gitlab/ci/docs.gitlab-ci.yml
+++ b/.gitlab/ci/docs.gitlab-ci.yml
@@ -9,22 +9,6 @@
url: http://$CI_ENVIRONMENT_SLUG.$DOCS_REVIEW_APPS_DOMAIN/$DOCS_GITLAB_REPO_SUFFIX
on_stop: review-docs-cleanup
-# 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:
- <<: *review-docs
- stage: build
- script:
- - gem install gitlab --no-document
- - ./$SCRIPT_NAME deploy
- when: manual
- only:
- - branches@gitlab-org/gitlab-ce
- - branches@gitlab-org/gitlab-ee
- except:
- - /(^docs[\/-].*|.*-docs$)/
- - /(^qa[\/-].*|.*-qa$)/
-
# Always trigger a docs build in gitlab-docs only on docs-only branches.
# Useful to preview the docs changes live.
review-docs-deploy:
@@ -34,10 +18,12 @@ review-docs-deploy:
- gem install gitlab --no-document
- ./$SCRIPT_NAME deploy
only:
- - /(^docs[\/-].*|.*-docs$)/@gitlab-org/gitlab-ce
- - /(^docs[\/-].*|.*-docs$)/@gitlab-org/gitlab-ee
- except:
- - /(^qa[\/-].*|.*-qa$)/
+ refs:
+ - merge-requests
+ changes:
+ - doc/*
+ variables:
+ - $DOCS_API_TOKEN
# Cleanup remote environment of gitlab-docs
review-docs-cleanup:
@@ -51,8 +37,12 @@ review-docs-cleanup:
- ./$SCRIPT_NAME cleanup
when: manual
only:
- - branches@gitlab-org/gitlab-ce
- - branches@gitlab-org/gitlab-ee
+ refs:
+ - merge-requests
+ changes:
+ - doc/*
+ variables:
+ - $DOCS_API_TOKEN
docs lint:
extends: .dedicated-runner
@@ -72,5 +62,6 @@ docs lint:
- bundle exec nanoc check internal_links
# Check the internal anchor links
- bundle exec nanoc check internal_anchors
- except:
- - /(^qa[\/-].*|.*-qa$)/
+ only:
+ changes:
+ - doc/*
diff --git a/.gitlab/ci/frontend.gitlab-ci.yml b/.gitlab/ci/frontend.gitlab-ci.yml
index e38b878972d..039b106501d 100644
--- a/.gitlab/ci/frontend.gitlab-ci.yml
+++ b/.gitlab/ci/frontend.gitlab-ci.yml
@@ -15,7 +15,7 @@
gitlab:assets:compile:
<<: *assets-compile-cache
- extends: .dedicated-no-docs-pull-cache-job
+ extends: .dedicated-runner-code-diff-pull
image: dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.5.3-git-2.18-chrome-71.0-node-8.x-yarn-1.12-graphicsmagick-1.3.29-docker-18.06.1
dependencies:
- setup-test-env
@@ -45,16 +45,17 @@ gitlab:assets:compile:
- webpack-report/
- public/assets/
only:
- - /.+/@gitlab-org/gitlab-ce
- - /.+/@gitlab-org/gitlab-ee
- - /.+/@gitlab/gitlabhq
- - /.+/@gitlab/gitlab-ee
+ variables:
+ - $CI_PROJECT_PATH == "gitlab-org/gitlab-ce"
+ - $CI_PROJECT_PATH == "gitlab-org/gitlab-ee"
+ - $CI_PROJECT_PATH == "gitlab/gitlabhq"
+ - $CI_PROJECT_PATH == "gitlab/gitlab-ee"
tags:
- docker
- gitlab-org
compile-assets:
- extends: .dedicated-runner
+ extends: .dedicated-runner-code-diff
<<: *use-pg
<<: *assets-compile-cache
stage: prepare
@@ -72,9 +73,6 @@ compile-assets:
paths:
- node_modules
- public/assets
- except:
- refs:
- - /(^docs[\/-].*|.*-docs$)/
gitlab:ui:visual:
extends: .dedicated-runner
@@ -91,14 +89,11 @@ gitlab:ui:visual:
- yarn install
- CSS_URL=./application.css yarn test
only:
+ refs:
+ - merge-requests
changes:
- - app/assets/stylesheets/*.scss
- - app/assets/stylesheets/**/*.scss
- - app/assets/stylesheets/**/**/*.scss
+ - "**/*.scss"
except:
- refs:
- - /(^docs[\/-].*|.*-docs$)/
- - master
variables:
- $CI_COMMIT_MESSAGE =~ /\[skip visual\]/i
artifacts:
@@ -106,7 +101,7 @@ gitlab:ui:visual:
- tests/__image_snapshots__/
karma:
- extends: .dedicated-no-docs-pull-cache-job
+ extends: .dedicated-runner-code-diff-pull
<<: *use-pg
dependencies:
- compile-assets
@@ -132,7 +127,7 @@ karma:
junit: junit_karma.xml
jest:
- extends: .dedicated-no-docs-and-no-qa-pull-cache-job
+ extends: .dedicated-runner-code-diff-pull
<<: *use-pg
dependencies:
- compile-assets
@@ -159,7 +154,7 @@ jest:
policy: pull-push
qa:internal:
- extends: .dedicated-no-docs-no-db-pull-cache-job
+ extends: .dedicated-runner-code-diff-pull-no-db
services: []
script:
- cd qa/
@@ -169,7 +164,7 @@ qa:internal:
- setup-test-env
qa:selectors:
- extends: .dedicated-no-docs-no-db-pull-cache-job
+ extends: .dedicated-runner-code-diff-pull-no-db
services: []
script:
- cd qa/
@@ -179,7 +174,7 @@ qa:selectors:
- setup-test-env
.qa-frontend-node: &qa-frontend-node
- extends: .dedicated-no-docs-no-db-pull-cache-job
+ extends: .dedicated-runner-code-diff-pull-no-db
stage: test
cache:
key: "$CI_JOB_NAME"
@@ -208,7 +203,7 @@ qa-frontend-node:latest:
allow_failure: true
lint:javascript:report:
- extends: .dedicated-no-docs-no-db-pull-cache-job
+ extends: .dedicated-runner-code-diff-pull-no-db
stage: post-test
dependencies: []
before_script: []
@@ -222,7 +217,7 @@ lint:javascript:report:
- eslint-report.html
jsdoc:
- extends: .dedicated-no-docs-no-db-pull-cache-job
+ extends: .dedicated-runner-code-diff-pull-no-db
stage: post-test
dependencies:
- compile-assets
diff --git a/.gitlab/ci/global.gitlab-ci.yml b/.gitlab/ci/global.gitlab-ci.yml
index c48672183b9..ef59799b157 100644
--- a/.gitlab/ci/global.gitlab-ci.yml
+++ b/.gitlab/ci/global.gitlab-ci.yml
@@ -1,4 +1,16 @@
+.default-settings:
+ only:
+ refs:
+ - master
+ - /-stable/
+ - merge-requests
+ - tags@gitlab-org/gitlab-ce
+ - tags@gitlab-org/gitlab-ee
+ - tags@gitlab/gitlabhq
+ - tags@gitlab/gitlab-ee
+
.dedicated-runner:
+ extends: .default-settings
retry:
max: 1 # This is confusing but this means "2 runs at max".
when:
@@ -8,40 +20,68 @@
tags:
- gitlab-org
-.default-cache: &default-cache
- key: "debian-stretch-ruby-2.5.3-node-10.x"
- paths:
- - vendor/ruby
- - .yarn-cache/
- - vendor/gitaly-ruby
-
-.dedicated-runner-default-cache:
+.dedicated-runner-with-cache:
extends: .dedicated-runner
cache:
- <<: *default-cache
+ key: "debian-stretch-ruby-2.5.3-node-10.x"
+ paths:
+ - vendor/ruby
+ - .yarn-cache/
+ - vendor/gitaly-ruby
-# Jobs that only need to pull cache
-.dedicated-pull-cache-job:
- extends: .dedicated-runner
+.dedicated-runner-code-diff:
+ extends: .dedicated-runner-with-cache
+ only:
+ changes:
+ - app/*
+ - bin/*
+ - config/*
+ - db/*
+ - ee/*
+ - fixtures/*
+ - lib/*
+ - public/*
+ - rubocop/*
+ - spec/*
+ - symbol/*
+ - vendor/*
+ - "*.{erb,haml,lock,js,json,rake,ru,png,rb,scss,svg,vue,yml}"
+ - "**/*.{erb,haml,lock,js,json,rake,ru,png,rb,scss,svg,vue,yml}"
+ - "*_VERSION"
+ - Gemfile
+ - Rakefile
+
+.dedicated-runner-qa-diff:
+ extends: .dedicated-runner-with-cache
+ only:
+ changes:
+ - app/*
+ - bin/*
+ - config/*
+ - db/*
+ - ee/*
+ - fixtures/*
+ - lib/*
+ - public/*
+ - rubocop/*
+ - spec/*
+ - symbol/*
+ - vendor/*
+ - "*.{erb,haml,lock,js,json,rake,ru,png,rb,scss,svg,vue,yml}"
+ - "**/*.{erb,haml,lock,js,json,rake,ru,png,rb,scss,svg,vue,yml}"
+ - "*_VERSION"
+ - qa/*
+ - Gemfile
+ - Rakefile
+
+.dedicated-runner-code-diff-pull:
+ extends: .dedicated-runner-code-diff
cache:
- <<: *default-cache
policy: pull
stage: test
-.dedicated-no-docs-pull-cache-job:
- extends: .dedicated-pull-cache-job
- except:
- - /(^docs[\/-].*|.*-docs$)/
-
-.dedicated-no-docs-and-no-qa-pull-cache-job:
- extends: .dedicated-pull-cache-job
- except:
- - /(^docs[\/-].*|.*-docs$)/
- - /(^qa[\/-].*|.*-qa$)/
-
-# Jobs that do not need a DB
-.dedicated-no-docs-no-db-pull-cache-job:
- extends: .dedicated-no-docs-pull-cache-job
+.dedicated-runner-code-diff-pull-no-db:
+ extends: .dedicated-runner-code-diff-pull
variables:
SETUP_DB: "false"
diff --git a/.gitlab/ci/pages.gitlab-ci.yml b/.gitlab/ci/pages.gitlab-ci.yml
index 7d9136b8213..6f16a175199 100644
--- a/.gitlab/ci/pages.gitlab-ci.yml
+++ b/.gitlab/ci/pages.gitlab-ci.yml
@@ -1,6 +1,6 @@
pages:
- extends: .dedicated-no-docs-no-db-pull-cache-job
+ extends: .dedicated-runner-code-diff-pull-no-db
before_script: []
stage: pages
dependencies:
@@ -23,5 +23,6 @@ pages:
paths:
- public
only:
+ refs:
- master@gitlab-org/gitlab-ce
- master@gitlab-org/gitlab-ee
diff --git a/.gitlab/ci/qa.gitlab-ci.yml b/.gitlab/ci/qa.gitlab-ci.yml
index 07b38c9aa85..44f78ed6cf5 100644
--- a/.gitlab/ci/qa.gitlab-ci.yml
+++ b/.gitlab/ci/qa.gitlab-ci.yml
@@ -16,5 +16,7 @@ package-and-qa:
- ./scripts/trigger-build omnibus
when: manual
only:
- - /.+/@gitlab-org/gitlab-ce
- - /.+/@gitlab-org/gitlab-ee
+ refs:
+ - merge-requests
+ variables:
+ - $GITLAB_BOT_MULTI_PROJECT_PIPELINE_POLLING_TOKEN
diff --git a/.gitlab/ci/rails.gitlab-ci.yml b/.gitlab/ci/rails.gitlab-ci.yml
index b926fb77a08..daf2d7b6190 100644
--- a/.gitlab/ci/rails.gitlab-ci.yml
+++ b/.gitlab/ci/rails.gitlab-ci.yml
@@ -16,6 +16,7 @@
.only-schedules-master: &only-schedules-master
only:
+ refs:
- schedules@gitlab-org/gitlab-ce
- schedules@gitlab-org/gitlab-ee
- master@gitlab-org/gitlab-ce
@@ -24,7 +25,7 @@
- master@gitlab/gitlab-ee
.gitlab-setup: &gitlab-setup
- extends: .dedicated-no-docs-and-no-qa-pull-cache-job
+ extends: .dedicated-runner-code-diff-pull
<<: *use-pg
variables:
SETUP_DB: "false"
@@ -42,12 +43,12 @@
- log/development.log
.rake-exec: &rake-exec
- extends: .dedicated-no-docs-no-db-pull-cache-job
+ extends: .dedicated-runner-code-diff-pull-no-db
script:
- bundle exec rake $CI_JOB_NAME
.rspec-metadata: &rspec-metadata
- extends: .dedicated-pull-cache-job
+ extends: .dedicated-runner-code-diff-pull
stage: test
script:
- JOB_NAME=( $CI_JOB_NAME )
@@ -75,9 +76,6 @@
- tmp/capybara/
reports:
junit: junit_rspec.xml
- except:
- - /(^docs[\/-].*|.*-docs$)/
- - /(^qa[\/-].*|.*-qa$)/
.rspec-metadata-pg: &rspec-metadata-pg
<<: *rspec-metadata
@@ -94,14 +92,14 @@
# DB migration, rollback, and seed jobs
.db-migrate-reset: &db-migrate-reset
- extends: .dedicated-no-docs-and-no-qa-pull-cache-job
+ extends: .dedicated-runner-code-diff-pull
script:
- bundle exec rake db:migrate:reset
dependencies:
- setup-test-env
.migration-paths: &migration-paths
- extends: .dedicated-no-docs-and-no-qa-pull-cache-job
+ extends: .dedicated-runner-code-diff-pull
variables:
SETUP_DB: "false"
script:
@@ -124,7 +122,7 @@
- setup-test-env
setup-test-env:
- extends: .dedicated-runner-default-cache
+ extends: .dedicated-runner-code-diff
<<: *use-pg
stage: prepare
script:
@@ -136,8 +134,6 @@ setup-test-env:
- tmp/tests
- config/secrets.yml
- vendor/gitaly-ruby
- except:
- - /(^docs[\/-].*|.*-docs$)/
rspec-pg:
<<: *rspec-metadata-pg
@@ -176,7 +172,7 @@ rspec-mysql-quarantine:
allow_failure: true
static-analysis:
- extends: .dedicated-no-docs-no-db-pull-cache-job
+ extends: .dedicated-runner-code-diff-pull-no-db
dependencies:
- compile-assets
- setup-test-env
@@ -192,19 +188,16 @@ static-analysis:
downtime_check:
<<: *rake-exec
- except:
- - master
- - tags
- - /^[\d-]+-stable(-ee)?$/
- - /(^docs[\/-].*|.*-docs$)/
- - /(^qa[\/-].*|.*-qa$)/
+ only:
+ refs:
+ - merge-requests
dependencies:
- setup-test-env
ee_compat_check:
<<: *rake-exec
dependencies: []
- except:
+ except: # TODO: How to convert that to Merge Request Pipelines?
- master
- tags
- /[\d-]+-stable(-ee)?/
@@ -242,7 +235,7 @@ migration:path-mysql:
<<: *use-mysql
.db-rollback: &db-rollback
- extends: .dedicated-no-docs-and-no-qa-pull-cache-job
+ extends: .dedicated-runner-code-diff-pull
script:
- bundle exec rake db:migrate VERSION=20170523121229
- bundle exec rake db:migrate
@@ -270,9 +263,9 @@ gitlab:setup-mysql:
- setup-test-env
coverage:
- # Don't include dedicated-no-docs-no-db-pull-cache-job here since we need to
+ # Don't include dedicated-runner-code-diff-pull-no-db here since we need to
# download artifacts from all the rspec jobs instead of from setup-test-env only
- extends: .dedicated-runner-default-cache
+ extends: .dedicated-runner-code-diff-pull
cache:
policy: pull
variables:
@@ -287,6 +280,4 @@ coverage:
paths:
- coverage/index.html
- coverage/assets/
- except:
- - /(^docs[\/-].*|.*-docs$)/
- - /(^qa[\/-].*|.*-qa$)/
+
diff --git a/.gitlab/ci/review.gitlab-ci.yml b/.gitlab/ci/review.gitlab-ci.yml
index a7f6caedd37..d22619e57c4 100644
--- a/.gitlab/ci/review.gitlab-ci.yml
+++ b/.gitlab/ci/review.gitlab-ci.yml
@@ -1,29 +1,22 @@
.review-only: &review-only
only:
refs:
- - branches@gitlab-org/gitlab-ce
- - branches@gitlab-org/gitlab-ee
+ - merge-requests@gitlab-org/gitlab-ce
+ - merge-requests@gitlab-org/gitlab-ee
kubernetes: active
- except:
- refs:
- - master
- - /(^docs[\/-].*|.*-docs$)/
.review-schedules-only: &review-schedules-only
only:
refs:
- schedules@gitlab-org/gitlab-ce
- schedules@gitlab-org/gitlab-ee
+ changes: [] # always
kubernetes: active
variables:
- $REVIEW_APP_CLEANUP
- except:
- refs:
- - tags
- - /(^docs[\/-].*|.*-docs$)/
.review-base: &review-base
- extends: .dedicated-runner
+ extends: .dedicated-runner-code-diff
<<: *review-only
image: registry.gitlab.com/gitlab-org/gitlab-build-images:gitlab-charts-build-base
stage: test
@@ -61,6 +54,7 @@ build-qa-image:
- time docker push ${QA_IMAGE}
.review-build-cng-base: &review-build-cng-base
+ extends: .dedicated-runner-code-diff
image: ruby:2.5-alpine
stage: test
before_script: []
@@ -210,20 +204,16 @@ schedule:review-performance:
- wait_for_job_to_be_done "schedule:review-deploy"
danger-review:
- extends: .dedicated-pull-cache-job
+ extends: .dedicated-runner-code-diff-pull
image: registry.gitlab.com/gitlab-org/gitlab-build-images:danger
stage: test
dependencies: []
before_script: []
only:
- variables:
- - $DANGER_GITLAB_API_TOKEN
- except:
refs:
- - master
+ - merge-requests
variables:
- - $CI_COMMIT_REF_NAME =~ /^ce-to-ee-.*/
- - $CI_COMMIT_REF_NAME =~ /.*-stable(-ee)?-prepare-.*/
+ - $DANGER_GITLAB_API_TOKEN
script:
- git version
- node --version
diff --git a/.gitlab/ci/setup.gitlab-ci.yml b/.gitlab/ci/setup.gitlab-ci.yml
index debc90a1cb0..bb2650c278e 100644
--- a/.gitlab/ci/setup.gitlab-ci.yml
+++ b/.gitlab/ci/setup.gitlab-ci.yml
@@ -1,13 +1,14 @@
# Insurance in case a gem needed by one of our releases gets yanked from
# rubygems.org in the future.
cache gems:
- extends: .dedicated-no-docs-no-db-pull-cache-job
+ extends: .dedicated-runner-code-diff-pull-no-db
script:
- bundle package --all --all-platforms
artifacts:
paths:
- vendor/cache
only:
+ refs:
- master@gitlab-org/gitlab-ce
- master@gitlab-org/gitlab-ee
- tags
@@ -15,7 +16,7 @@ cache gems:
- setup-test-env
gitlab_git_test:
- extends: .dedicated-runner
+ extends: .dedicated-runner-code-diff
variables:
SETUP_DB: "false"
before_script: []
@@ -23,12 +24,9 @@ gitlab_git_test:
cache: {}
script:
- spec/support/prepare-gitlab-git-test-for-commit --check-for-changes
- except:
- - /(^docs[\/-].*|.*-docs$)/
- - /(^qa[\/-].*|.*-qa$)/
no_ee_check:
- extends: .dedicated-runner
+ extends: .dedicated-runner-code-diff
variables:
SETUP_DB: "false"
before_script: []
@@ -37,7 +35,6 @@ no_ee_check:
script:
- scripts/no-ee-check
only:
- - /.+/@gitlab-org/gitlab-ce
- except:
- - /(^docs[\/-].*|.*-docs$)/
- - /(^qa[\/-].*|.*-qa$)/
+ refs:
+ - merge-requests
+
diff --git a/.gitlab/ci/test-metadata.gitlab-ci.yml b/.gitlab/ci/test-metadata.gitlab-ci.yml
index 3ba7af956b5..559bb69dd41 100644
--- a/.gitlab/ci/test-metadata.gitlab-ci.yml
+++ b/.gitlab/ci/test-metadata.gitlab-ci.yml
@@ -25,9 +25,6 @@ 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}'
- except:
- - /(^docs[\/-].*|.*-docs$)/
- - /(^qa[\/-].*|.*-qa$)/
update-tests-metadata:
<<: *tests-metadata-state
@@ -55,7 +52,7 @@ update-tests-metadata:
- master@gitlab/gitlab-ee
flaky-examples-check:
- extends: .dedicated-runner
+ extends: .dedicated-runner-code-diff
image: ruby:2.5-alpine
services: []
before_script: []
@@ -67,11 +64,8 @@ flaky-examples-check:
allow_failure: true
retry: 0
only:
- - branches
- except:
- - master
- - /(^docs[\/-].*|.*-docs$)/
- - /(^qa[\/-].*|.*-qa$)/
+ refs:
+ - merge-requests
artifacts:
expire_in: 30d
paths: