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

rules.gitlab-ci.yml « review-apps « ci « .gitlab - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 3c8169a472291b30e7e33b8cfec94c2331990173 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# ------------------------------------------
# Conditions
# ------------------------------------------
# Triggered by change pattern
.app-changes: &app-changes
  if: $APP_CHANGE_TRIGGER == "true"

# Run all tests when framework changes present or explicitly enabled full suite execution
.qa-run-all-tests: &qa-run-all-tests
  if: $QA_FRAMEWORK_CHANGES == "true" || $QA_RUN_ALL_TESTS == "true" || $QA_RUN_ALL_E2E_LABEL == "true"

.default-branch: &default-branch
  if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH

.if-merge-request: &if-merge-request
  if: '$CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached"'

.if-merge-request-labels-run-review-app: &if-merge-request-labels-run-review-app
  if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-review-app/'

.if-dot-com-ee-schedule-nightly-child-pipeline: &if-dot-com-ee-schedule-nightly-child-pipeline
  if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_PATH == "gitlab-org/gitlab" && $CI_PIPELINE_SOURCE == "parent_pipeline" && $SCHEDULE_TYPE == "nightly"'

# ------------------------------------------
# Changes patterns
# ------------------------------------------
.ci-review-patterns: &ci-review-patterns
  - ".gitlab-ci.yml"
  - ".gitlab/ci/frontend.gitlab-ci.yml"
  - ".gitlab/ci/build-images.gitlab-ci.yml"
  - ".gitlab/ci/review.gitlab-ci.yml"
  - ".gitlab/ci/review-apps/**/*"
  - "scripts/review_apps/**/*"
  - "scripts/trigger-build.rb"
  - "{,ee/,jh/}{bin,config}/**/*.rb"

# ------------------------------------------
# Prepare
# ------------------------------------------
.rules:dont-interrupt:
  rules:
    - if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
      allow_failure: true
    - if: $CI_MERGE_REQUEST_IID
      when: manual
      allow_failure: true

.review:rules:review-build-cng:
  rules:
    - when: always

.review:rules:review-delete-deployment:
  rules:
    - when: on_success

# ------------------------------------------
# Deploy
# ------------------------------------------
.review:rules:review-deploy:
  rules:
    - when: on_success

.review:rules:trigger-review-stop:
  rules:
    - when: manual
      allow_failure: true

# ------------------------------------------
# Test
# ------------------------------------------
.rules:qa-smoke:
  rules:
    # always trigger smoke suite if review pipeline got triggered by specific changes in application code
    - <<: *app-changes
      variables:
        QA_TESTS: ""  # unset QA_TESTS even if specific tests were inferred from stage label
    - *qa-run-all-tests
    - if: $QA_SUITES =~ /Test::Instance::Smoke/
    # keep option to trigger tests manually even if no rules match
    - when: manual
      allow_failure: true
      variables:
        QA_TESTS: ""

.review:rules:review-performance:
  rules:
    - if: '$DAST_RUN == "true"'  # Skip this job when DAST is run
      when: never
    - <<: *if-merge-request-labels-run-review-app  # we explicitly don't allow the job to fail in that case
    - <<: *if-merge-request  # we explicitly don't allow the job to fail in that case
      changes: *ci-review-patterns
    - when: on_success
      allow_failure: true

# ------------------------------------------
# DAST
# ------------------------------------------
.reports:rules:schedule-dast:
  rules:
    - if: '$DAST_DISABLED || $GITLAB_FEATURES !~ /\bdast\b/'
      when: never
    - <<: *if-dot-com-ee-schedule-nightly-child-pipeline

# ------------------------------------------
# Prepare/Report
# ------------------------------------------
.rules:prepare-report:
  rules:
    - when: always

.rules:main-run:
  rules:
    - *default-branch