summaryrefslogtreecommitdiff
path: root/.gitlab/ci/setup.gitlab-ci.yml
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-02-12 15:09:37 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-02-12 15:09:37 +0000
commit2c89e169769ead722394a79ed67fcd08e96863dd (patch)
tree0dadb576846c484475b895f75fab41f71cdb952e /.gitlab/ci/setup.gitlab-ci.yml
parentbd497e352ebd279536ae11855871162e82a3f88c (diff)
downloadgitlab-ce-2c89e169769ead722394a79ed67fcd08e96863dd.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to '.gitlab/ci/setup.gitlab-ci.yml')
-rw-r--r--.gitlab/ci/setup.gitlab-ci.yml114
1 files changed, 97 insertions, 17 deletions
diff --git a/.gitlab/ci/setup.gitlab-ci.yml b/.gitlab/ci/setup.gitlab-ci.yml
index 24267584393..73ec0a559fc 100644
--- a/.gitlab/ci/setup.gitlab-ci.yml
+++ b/.gitlab/ci/setup.gitlab-ci.yml
@@ -1,3 +1,90 @@
+# Make sure to update all the similar conditions in other CI config files if you modify these conditions
+.if-not-canonical-namespace: &if-not-canonical-namespace
+ if: '$CI_PROJECT_NAMESPACE !~ /^gitlab(-org)?($|\/)/'
+
+# Make sure to update all the similar conditions in other CI config files if you modify these conditions
+.if-not-foss: &if-not-foss
+ if: '$CI_PROJECT_NAME != "gitlab-foss" && $CI_PROJECT_NAME != "gitlab-ce" && $CI_PROJECT_NAME != "gitlabhq"'
+
+# Make sure to update all the similar conditions in other CI config files if you modify these conditions
+.if-master-or-tag: &if-master-or-tag
+ if: '$CI_COMMIT_REF_NAME == "master" || $CI_COMMIT_TAG'
+
+# Make sure to update all the similar conditions in other CI config files if you modify these conditions
+.if-default-refs: &if-default-refs
+ if: '$CI_COMMIT_REF_NAME == "master" || $CI_COMMIT_REF_NAME =~ /^[\d-]+-stable(-ee)?$/ || $CI_COMMIT_REF_NAME =~ /^\d+-\d+-auto-deploy-\d+$/ || $CI_COMMIT_REF_NAME =~ /^security\// || $CI_MERGE_REQUEST_IID || $CI_COMMIT_TAG'
+
+# Make sure to update all the similar patterns in other CI config files if you modify these patterns
+.code-backstage-patterns: &code-backstage-patterns
+ - ".gitlab/ci/**/*"
+ - ".{eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}"
+ - ".{codeclimate,eslintrc,gitlab-ci,haml-lint,haml-lint_todo,rubocop,rubocop_todo,scss-lint}.yml"
+ - ".csscomb.json"
+ - "Dockerfile.assets"
+ - "*_VERSION"
+ - "Gemfile{,.lock}"
+ - "Rakefile"
+ - "{babel.config,jest.config}.js"
+ - "config.ru"
+ - "{package.json,yarn.lock}"
+ - "{,ee/}{app,bin,config,db,haml_lint,lib,locale,public,scripts,symbol,vendor}/**/*"
+ - "doc/api/graphql/reference/*" # Files in this folder are auto-generated
+ # Backstage changes
+ - "Dangerfile"
+ - "danger/**/*"
+ - "{,ee/}fixtures/**/*"
+ - "{,ee/}rubocop/**/*"
+ - "{,ee/}spec/**/*"
+ - "doc/README.md" # Some RSpec test rely on this file
+
+# Make sure to update all the similar patterns in other CI config files if you modify these patterns
+.code-backstage-qa-patterns: &code-backstage-qa-patterns
+ - ".gitlab/ci/**/*"
+ - ".{eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}"
+ - ".{codeclimate,eslintrc,gitlab-ci,haml-lint,haml-lint_todo,rubocop,rubocop_todo,scss-lint}.yml"
+ - ".csscomb.json"
+ - "Dockerfile.assets"
+ - "*_VERSION"
+ - "Gemfile{,.lock}"
+ - "Rakefile"
+ - "{babel.config,jest.config}.js"
+ - "config.ru"
+ - "{package.json,yarn.lock}"
+ - "{,ee/}{app,bin,config,db,haml_lint,lib,locale,public,scripts,symbol,vendor}/**/*"
+ - "doc/api/graphql/reference/*" # Files in this folder are auto-generated
+ # Backstage changes
+ - "Dangerfile"
+ - "danger/**/*"
+ - "{,ee/}fixtures/**/*"
+ - "{,ee/}rubocop/**/*"
+ - "{,ee/}spec/**/*"
+ - "doc/README.md" # Some RSpec test rely on this file
+ # QA changes
+ - ".dockerignore"
+ - "qa/**/*"
+
+.setup:rules:cache-gems:
+ rules:
+ - <<: *if-not-canonical-namespace
+ when: never
+ - <<: *if-master-or-tag
+ changes: *code-backstage-qa-patterns
+ when: on_success
+
+.setup:rules:gitlab_git_test:
+ rules:
+ - <<: *if-default-refs
+ changes: *code-backstage-patterns
+ when: on_success
+
+.setup:rules:no_ee_check:
+ rules:
+ - <<: *if-not-foss
+ when: never
+ - <<: *if-default-refs
+ changes: *code-backstage-patterns
+ when: on_success
+
# Insurance in case a gem needed by one of our releases gets yanked from
# rubygems.org in the future.
cache gems:
@@ -6,11 +93,11 @@ cache gems:
- .default-retry
- .default-cache
- .default-before_script
- - .only:variables-canonical-dot-com
- - .only:changes-code-backstage-qa
+ - .setup:rules:cache-gems
stage: test
- dependencies: ["setup-test-env"]
- needs: ["setup-test-env"]
+ needs:
+ - job: setup-test-env
+ artifacts: true
variables:
SETUP_DB: "false"
script:
@@ -18,30 +105,23 @@ cache gems:
artifacts:
paths:
- vendor/cache
- only:
- refs:
- - master
- - tags
.minimal-job:
extends:
- .default-tags
- .default-retry
- - .default-only
- - .only:changes-code-backstage
dependencies: []
gitlab_git_test:
- extends: .minimal-job
+ extends:
+ - .minimal-job
+ - .setup:rules:gitlab_git_test
script:
- spec/support/prepare-gitlab-git-test-for-commit --check-for-changes
no_ee_check:
- extends: .minimal-job
+ extends:
+ - .minimal-job
+ - .setup:rules:no_ee_check
script:
- scripts/no-ee-check
- only:
- variables:
- - $CI_PROJECT_NAME == "gitlab-foss"
- - $CI_PROJECT_NAME == "gitlab-ce" # Support former project name for forks/mirrors
- - $CI_PROJECT_NAME == "gitlabhq" # Support former project name for dev