137 lines
4.3 KiB
YAML
137 lines
4.3 KiB
YAML
# Make sure to update all the similar conditions in other CI config files if you modify these conditions
|
|
.if-canonical-dot-com-gitlab-org-group-schedule: &if-canonical-dot-com-gitlab-org-group-schedule
|
|
if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org" && $CI_PIPELINE_SOURCE == "schedule"'
|
|
|
|
# Make sure to update all the similar conditions in other CI config files if you modify these conditions
|
|
.if-canonical-gitlab-merge-request: &if-canonical-gitlab-merge-request
|
|
if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org" && $CI_MERGE_REQUEST_IID'
|
|
|
|
# Make sure to update all the similar conditions in other CI config files if you modify these conditions
|
|
.if-not-ee: &if-not-ee
|
|
if: '$CI_PROJECT_NAME !~ /^gitlab(-ee)?$/'
|
|
|
|
# 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-patterns: &code-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
|
|
|
|
# Make sure to update all the similar patterns in other CI config files if you modify these patterns
|
|
.qa-patterns: &qa-patterns
|
|
- ".dockerignore"
|
|
- "qa/**/*"
|
|
|
|
# Make sure to update all the similar patterns in other CI config files if you modify these patterns
|
|
.code-qa-patterns: &code-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
|
|
# QA changes
|
|
- ".dockerignore"
|
|
- "qa/**/*"
|
|
|
|
.qa:rules:ee-and-foss:
|
|
rules:
|
|
- <<: *if-default-refs
|
|
changes: *code-qa-patterns
|
|
when: on_success
|
|
|
|
.qa:rules:ee-only:
|
|
rules:
|
|
- <<: *if-not-ee
|
|
when: never
|
|
- <<: *if-default-refs
|
|
changes: *code-qa-patterns
|
|
when: on_success
|
|
|
|
.qa-job-base:
|
|
extends:
|
|
- .default-tags
|
|
- .default-retry
|
|
stage: test
|
|
dependencies: []
|
|
cache:
|
|
key: "qa-framework-jobs:v1"
|
|
paths:
|
|
- vendor/ruby
|
|
before_script:
|
|
- '[ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb'
|
|
- cd qa/
|
|
- bundle install --clean --jobs=$(nproc) --path=vendor --retry=3 --quiet
|
|
- bundle check
|
|
|
|
qa:internal:
|
|
extends:
|
|
- .qa-job-base
|
|
- .qa:rules:ee-and-foss
|
|
script:
|
|
- bundle exec rspec
|
|
|
|
qa:internal-foss:
|
|
extends:
|
|
- .qa-job-base
|
|
- .qa:rules:ee-only
|
|
- .as-if-foss
|
|
script:
|
|
- bundle exec rspec
|
|
|
|
qa:selectors:
|
|
extends:
|
|
- .qa-job-base
|
|
- .qa:rules:ee-and-foss
|
|
script:
|
|
- bundle exec bin/qa Test::Sanity::Selectors
|
|
|
|
qa:selectors-foss:
|
|
extends:
|
|
- qa:selectors
|
|
- .qa:rules:ee-only
|
|
- .as-if-foss
|
|
|
|
.package-and-qa-base:
|
|
image: ruby:2.6-alpine
|
|
stage: qa
|
|
dependencies: []
|
|
retry: 0
|
|
script:
|
|
- source scripts/utils.sh
|
|
- install_gitlab_gem
|
|
- ./scripts/trigger-build omnibus
|
|
|
|
package-and-qa:
|
|
extends: .package-and-qa-base
|
|
rules:
|
|
- <<: *if-canonical-gitlab-merge-request
|
|
changes: *qa-patterns
|
|
when: on_success
|
|
- <<: *if-canonical-gitlab-merge-request
|
|
changes: *code-patterns
|
|
when: manual
|
|
- <<: *if-canonical-dot-com-gitlab-org-group-schedule
|
|
when: on_success
|
|
needs: ["build-qa-image", "gitlab:assets:compile pull-cache"]
|
|
allow_failure: true
|