diff options
author | Kamil Trzciński <ayufan@ayufan.eu> | 2019-04-12 14:32:31 +0200 |
---|---|---|
committer | Kamil Trzciński <ayufan@ayufan.eu> | 2019-04-15 18:35:47 +0200 |
commit | 8ac11739ac8ced2bbcfec513001228414aa28c7d (patch) | |
tree | 6bc512e6d6733fcf323e243fa5344d562e338024 | |
parent | 1a50801cd0801d3134b41e96ff2a6b27a96a1047 (diff) | |
download | gitlab-ce-8ac11739ac8ced2bbcfec513001228414aa28c7d.tar.gz |
Try to use Merge Request Pipelines
-rw-r--r-- | .gitlab/ci/cng.gitlab-ci.yml | 1 | ||||
-rw-r--r-- | .gitlab/ci/docs.gitlab-ci.yml | 39 | ||||
-rw-r--r-- | .gitlab/ci/frontend.gitlab-ci.yml | 39 | ||||
-rw-r--r-- | .gitlab/ci/global.gitlab-ci.yml | 94 | ||||
-rw-r--r-- | .gitlab/ci/pages.gitlab-ci.yml | 3 | ||||
-rw-r--r-- | .gitlab/ci/qa.gitlab-ci.yml | 6 | ||||
-rw-r--r-- | .gitlab/ci/rails.gitlab-ci.yml | 41 | ||||
-rw-r--r-- | .gitlab/ci/review.gitlab-ci.yml | 26 | ||||
-rw-r--r-- | .gitlab/ci/setup.gitlab-ci.yml | 17 | ||||
-rw-r--r-- | .gitlab/ci/test-metadata.gitlab-ci.yml | 12 |
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: |