Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '.gitlab/ci/rules.gitlab-ci.yml')
-rw-r--r--.gitlab/ci/rules.gitlab-ci.yml204
1 files changed, 139 insertions, 65 deletions
diff --git a/.gitlab/ci/rules.gitlab-ci.yml b/.gitlab/ci/rules.gitlab-ci.yml
index 79ae7823853..383aca0043b 100644
--- a/.gitlab/ci/rules.gitlab-ci.yml
+++ b/.gitlab/ci/rules.gitlab-ci.yml
@@ -16,6 +16,15 @@
.if-master-refs: &if-master-refs
if: '$CI_COMMIT_REF_NAME == "master"'
+.if-master-push: &if-master-push
+ if: '$CI_COMMIT_BRANCH == "master" && $CI_PIPELINE_SOURCE == "push"'
+
+.if-master-schedule-2-hourly: &if-master-schedule-2-hourly
+ if: '$CI_COMMIT_BRANCH == "master" && $CI_PIPELINE_SOURCE == "schedule" && $FREQUENCY == "2-hourly"'
+
+.if-master-schedule-nightly: &if-master-schedule-nightly
+ if: '$CI_COMMIT_BRANCH == "master" && $CI_PIPELINE_SOURCE == "schedule" && $FREQUENCY == "nightly"'
+
.if-auto-deploy-branches: &if-auto-deploy-branches
if: '$CI_COMMIT_BRANCH =~ /^\d+-\d+-auto-deploy-\d+$/'
@@ -25,8 +34,11 @@
.if-merge-request: &if-merge-request
if: '$CI_MERGE_REQUEST_IID'
-.if-nightly-master-schedule: &if-nightly-master-schedule
- if: '$NIGHTLY && $CI_COMMIT_REF_NAME == "master" && $CI_PIPELINE_SOURCE == "schedule"'
+.if-merge-request-title-as-if-foss: &if-merge-request-title-as-if-foss
+ if: '$CI_MERGE_REQUEST_TITLE =~ /RUN AS-IF-FOSS/'
+
+.if-security-merge-request: &if-security-merge-request
+ if: '$CI_PROJECT_NAMESPACE == "gitlab-org/security" && $CI_MERGE_REQUEST_IID'
.if-dot-com-gitlab-org-schedule: &if-dot-com-gitlab-org-schedule
if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org" && $CI_PIPELINE_SOURCE == "schedule"'
@@ -37,9 +49,6 @@
.if-dot-com-gitlab-org-merge-request: &if-dot-com-gitlab-org-merge-request
if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org" && $CI_MERGE_REQUEST_IID'
-.if-dot-com-gitlab-org-and-security-merge-request: &if-dot-com-gitlab-org-and-security-merge-request
- if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE =~ /^gitlab-org($|\/security$)/ && $CI_MERGE_REQUEST_IID'
-
.if-dot-com-gitlab-org-and-security-tag: &if-dot-com-gitlab-org-and-security-tag
if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE =~ /^gitlab-org($|\/security$)/ && $CI_COMMIT_TAG'
@@ -52,6 +61,10 @@
####################
# Changes patterns #
####################
+.ci-patterns: &ci-patterns
+ - ".gitlab-ci.yml"
+ - ".gitlab/ci/**/*"
+
.yaml-patterns: &yaml-patterns
- "**/*.yml"
@@ -77,7 +90,6 @@
- "{,ee/}fixtures/**/*"
- "{,ee/}rubocop/**/*"
- "{,ee/}spec/**/*"
- - "doc/README.md" # Some RSpec test rely on this file
.code-patterns: &code-patterns
- "{package.json,yarn.lock}"
@@ -120,7 +132,6 @@
- "{,ee/}fixtures/**/*"
- "{,ee/}rubocop/**/*"
- "{,ee/}spec/**/*"
- - "doc/README.md" # Some RSpec test rely on this file
.code-qa-patterns: &code-qa-patterns
- "{package.json,yarn.lock}"
@@ -162,7 +173,6 @@
- "{,ee/}fixtures/**/*"
- "{,ee/}rubocop/**/*"
- "{,ee/}spec/**/*"
- - "doc/README.md" # Some RSpec test rely on this file
# QA changes
- ".dockerignore"
- "qa/**/*"
@@ -173,7 +183,7 @@
.cache-repo:rules:
rules:
- <<: *if-cache-credentials-schedule
- when: on_success
+ allow_failure: true
#############
# CNG rules #
@@ -182,6 +192,7 @@
rules:
- <<: *if-dot-com-gitlab-org-and-security-tag
when: manual
+ allow_failure: true
######################
# Dev fixtures rules #
@@ -208,6 +219,7 @@
- <<: *if-dot-com-gitlab-org-merge-request
changes: *docs-patterns
when: manual
+ allow_failure: true
.docs:rules:docs-lint:
rules:
@@ -226,6 +238,7 @@
##################
# Frontend rules #
##################
+# This job only runs on `master` since it pushes to the cache.
.frontend:rules:gitlab-assets-compile-pull-push-cache:
rules:
- <<: *if-not-canonical-namespace
@@ -248,13 +261,14 @@
changes: *code-backstage-qa-patterns
when: on_success
+# This job only runs on `master` since it pushes to the cache.
.frontend:rules:compile-assets-pull-push-cache-as-if-foss:
rules:
- <<: *if-not-ee
when: never
- - <<: *if-master-refs
+ - <<: *if-master-push
changes: *code-backstage-qa-patterns
- when: on_success
+ - <<: *if-master-schedule-2-hourly
.frontend:rules:compile-assets-pull-cache:
rules:
@@ -266,9 +280,14 @@
rules:
- <<: *if-not-ee
when: never
- - <<: *if-default-refs
+ - <<: *if-master-push
changes: *code-backstage-qa-patterns
- when: on_success
+ - <<: *if-master-schedule-2-hourly
+ - <<: *if-security-merge-request
+ changes: *code-backstage-qa-patterns
+ - <<: *if-merge-request-title-as-if-foss
+ - <<: *if-merge-request
+ changes: *ci-patterns
.frontend:rules:default-frontend-jobs:
rules:
@@ -276,13 +295,27 @@
changes: *code-backstage-patterns
when: on_success
-.frontend:rules:default-frontend-jobs-no-foss:
+.frontend:rules:default-frontend-jobs-as-if-foss:
rules:
- <<: *if-not-ee
when: never
- - <<: *if-default-refs
+ - <<: *if-master-push
+ changes: *code-backstage-patterns
+ - <<: *if-master-schedule-2-hourly
+ - <<: *if-security-merge-request
+ changes: *code-backstage-patterns
+ - <<: *if-merge-request-title-as-if-foss
+ - <<: *if-merge-request
+ changes: *ci-patterns
+
+.frontend:rules:ee-mr-and-master-only:
+ rules:
+ - <<: *if-not-ee
+ when: never
+ - <<: *if-merge-request
+ changes: *code-backstage-patterns
+ - <<: *if-master-refs
changes: *code-backstage-patterns
- when: on_success
.frontend:rules:qa-frontend-node:
rules:
@@ -293,6 +326,15 @@
changes: *frontend-dependency-patterns
when: on_success
+.frontend:rules:qa-frontend-node-latest:
+ rules:
+ - <<: *if-master-refs
+ changes: *frontend-dependency-patterns
+ allow_failure: true
+ - <<: *if-merge-request
+ changes: *frontend-dependency-patterns
+ allow_failure: true
+
################
# Memory rules #
################
@@ -322,24 +364,33 @@
changes: *code-qa-patterns
when: on_success
-.qa:rules:ee-only:
+.qa:rules:as-if-foss:
rules:
- <<: *if-not-ee
when: never
- - <<: *if-default-refs
+ - <<: *if-master-push
changes: *code-qa-patterns
- when: on_success
+ - <<: *if-master-schedule-2-hourly
+ - <<: *if-security-merge-request
+ changes: *code-qa-patterns
+ - <<: *if-merge-request-title-as-if-foss
+ - <<: *if-merge-request
+ changes: *ci-patterns
.qa:rules:package-and-qa:
rules:
- <<: *if-dot-com-gitlab-org-merge-request
+ changes: *ci-patterns
+ allow_failure: true
+ - <<: *if-dot-com-gitlab-org-merge-request
changes: *qa-patterns
- when: on_success
+ allow_failure: true
- <<: *if-dot-com-gitlab-org-merge-request
changes: *code-patterns
when: manual
+ allow_failure: true
- <<: *if-dot-com-gitlab-org-schedule
- when: on_success
+ allow_failure: true
###############
# Rails rules #
@@ -348,50 +399,45 @@
rules:
- <<: *if-default-refs
changes: *code-backstage-patterns
- when: on_success
.rails:rules:default-refs-code-backstage-qa:
rules:
- <<: *if-default-refs
changes: *code-backstage-qa-patterns
- when: on_success
-
-.rails:rules:master-refs-code-backstage:
- rules:
- - <<: *if-master-refs
- changes: *code-backstage-patterns
- when: on_success
- - changes: [".gitlab/ci/rails.gitlab-ci.yml"]
-.rails:rules:nightly-master-refs-code-backstage:
+.rails:rules:ee-only:
rules:
- - <<: *if-nightly-master-schedule
+ - <<: *if-not-ee
+ when: never
+ - <<: *if-default-refs
changes: *code-backstage-patterns
- when: on_success
- - changes: [".gitlab/ci/rails.gitlab-ci.yml"]
-.rails:rules:nightly-master-refs-code-backstage-ee-only:
+.rails:rules:as-if-foss:
rules:
- <<: *if-not-ee
when: never
- - <<: *if-nightly-master-schedule
+ - <<: *if-master-push
changes: *code-backstage-patterns
- when: on_success
- - changes: [".gitlab/ci/rails.gitlab-ci.yml"]
+ - <<: *if-master-schedule-2-hourly
+ - <<: *if-security-merge-request
+ changes: *code-backstage-patterns
+ - <<: *if-merge-request-title-as-if-foss
+ - <<: *if-merge-request
+ changes: *ci-patterns
-.rails:rules:ee-only:
+.rails:rules:ee-mr-and-master-only:
rules:
- <<: *if-not-ee
when: never
- - <<: *if-default-refs
+ - <<: *if-merge-request
+ changes: *code-backstage-patterns
+ - <<: *if-master-refs
changes: *code-backstage-patterns
- when: on_success
.rails:rules:downtime_check:
rules:
- <<: *if-merge-request
changes: *code-backstage-patterns
- when: on_success
##################
# Releases rules #
@@ -414,6 +460,7 @@
# - <<: *if-master-refs # To be done in a later iteration: https://gitlab.com/gitlab-org/gitlab/issues/31160#note_278188255
- <<: *if-default-refs
changes: *code-backstage-patterns
+ allow_failure: true
.reports:rules:sast:
rules:
@@ -422,6 +469,7 @@
# - <<: *if-master-refs # To be done in a later iteration: https://gitlab.com/gitlab-org/gitlab/issues/31160#note_278188255
- <<: *if-default-refs
changes: *code-backstage-qa-patterns
+ allow_failure: true
.reports:rules:dependency_scanning:
rules:
@@ -430,6 +478,7 @@
# - <<: *if-master-refs # To be done in a later iteration: https://gitlab.com/gitlab-org/gitlab/issues/31160#note_278188255
- <<: *if-default-refs
changes: *code-backstage-qa-patterns
+ allow_failure: true
.reports:rules:dast:
rules:
@@ -437,10 +486,11 @@
when: never
- <<: *if-dot-com-gitlab-org-merge-request
changes: *frontend-patterns
- when: on_success
+ allow_failure: true
- <<: *if-dot-com-gitlab-org-merge-request
changes: *code-qa-patterns
when: manual
+ allow_failure: true
.reports:schedule-dast:
rules:
@@ -451,67 +501,86 @@
################
# Review rules #
################
-.review:rules:mr-and-schedule-auto:
+.review:rules:build-qa-image:
rules:
+ - <<: *if-not-ee
+ when: never
- <<: *if-dot-com-gitlab-org-merge-request
changes: *code-qa-patterns
- when: on_success
- <<: *if-dot-com-gitlab-org-schedule
- when: on_success
+
+.review:rules:review-build-cng:
+ rules:
+ - <<: *if-dot-com-gitlab-org-merge-request
+ changes: *ci-patterns
+ - <<: *if-dot-com-gitlab-org-merge-request
+ changes: *frontend-patterns
+ - <<: *if-dot-com-gitlab-org-merge-request
+ changes: *code-qa-patterns
+ when: manual
+ allow_failure: true
+ - <<: *if-dot-com-gitlab-org-schedule
.review:rules:mr-and-schedule-auto-if-frontend-manual-otherwise:
rules:
+ - <<: *if-not-ee
+ when: never
+ - <<: *if-dot-com-gitlab-org-merge-request
+ changes: *ci-patterns
- <<: *if-dot-com-gitlab-org-merge-request
changes: *frontend-patterns
- when: on_success
+ allow_failure: true
- <<: *if-dot-com-gitlab-org-merge-request
changes: *code-qa-patterns
when: manual
allow_failure: true
- <<: *if-dot-com-gitlab-org-schedule
- when: on_success
+ allow_failure: true
-.review:rules:mr-only-auto:
+.review:rules:review-stop-failed-deployment:
rules:
+ - <<: *if-not-ee
+ when: never
- <<: *if-dot-com-gitlab-org-merge-request
changes: *code-qa-patterns
- when: on_success
-.review:rules:mr-only-auto-if-frontend-manual-otherwise:
+.review:rules:review-qa-smoke:
rules:
+ - <<: *if-not-ee
+ when: never
+ - <<: *if-dot-com-gitlab-org-merge-request
+ changes: *ci-patterns
- <<: *if-dot-com-gitlab-org-merge-request
changes: *frontend-patterns
- when: on_success
+ allow_failure: true
- <<: *if-dot-com-gitlab-org-merge-request
changes: *code-qa-patterns
when: manual
+ allow_failure: true
.review:rules:mr-only-manual:
rules:
+ - <<: *if-not-ee
+ when: never
- <<: *if-dot-com-gitlab-org-merge-request
changes: *code-qa-patterns
when: manual
+ allow_failure: true
.review:rules:review-cleanup:
rules:
+ - <<: *if-not-ee
+ when: never
- <<: *if-dot-com-gitlab-org-merge-request
changes: *code-qa-patterns
when: manual
+ allow_failure: true
- <<: *if-dot-com-gitlab-org-schedule
- when: on_success
-
-.review:rules:review-gcp-cleanup:
- rules:
- - <<: *if-dot-com-gitlab-org-merge-request
- changes: *code-qa-patterns
- when: manual
- - <<: *if-dot-com-gitlab-org-schedule
- when: on_success
+ allow_failure: true
.review:rules:danger:
rules:
- if: '$DANGER_GITLAB_API_TOKEN && $CI_MERGE_REQUEST_IID'
- when: on_success
###############
# Setup rules #
@@ -527,10 +596,11 @@
.setup:rules:dont-interrupt-me:
rules:
- <<: *if-master-or-tag
- when: on_success
+ allow_failure: true
- <<: *if-auto-deploy-branches
- when: on_success
+ allow_failure: true
- when: manual
+ allow_failure: true
.setup:rules:gitlab_git_test:
rules:
@@ -557,9 +627,13 @@
.test-metadata:rules:update-tests-metadata:
rules:
+ - <<: *if-not-ee
+ when: never
+ - changes:
+ - ".gitlab/ci/test-metadata.gitlab-ci.yml"
+ - "scripts/rspec_helpers.sh"
- <<: *if-dot-com-ee-schedule
changes: *code-backstage-patterns
- when: on_success
##############
# YAML rules #