gitlab-qa 7.25.0 → 7.25.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/.gitlab/ci/jobs/actioncable.gitlab-ci.yml +41 -0
  3. data/.gitlab/ci/jobs/base.gitlab-ci.yml +281 -0
  4. data/.gitlab/ci/jobs/cloud_activation.gitlab-ci.yml +30 -0
  5. data/.gitlab/ci/jobs/custom_parallel.gitlab-ci.yml +21 -0
  6. data/.gitlab/ci/jobs/ee_previous_to_ce_update.gitlab-ci.yml +18 -0
  7. data/.gitlab/ci/jobs/elasticsearch.gitlab-ci.yml +20 -0
  8. data/.gitlab/ci/jobs/geo.gitlab-ci.yml +18 -0
  9. data/.gitlab/ci/jobs/gitaly_cluster.gitlab-ci.yml +45 -0
  10. data/.gitlab/ci/jobs/group_saml.gitlab-ci.yml +20 -0
  11. data/.gitlab/ci/jobs/instance.gitlab-ci.yml +55 -0
  12. data/.gitlab/ci/jobs/instance_saml.gitlab-ci.yml +41 -0
  13. data/.gitlab/ci/jobs/integrations.gitlab-ci.yml +14 -0
  14. data/.gitlab/ci/jobs/jira.gitlab-ci.yml +41 -0
  15. data/.gitlab/ci/jobs/large_setup.gitlab-ci.yml +19 -0
  16. data/.gitlab/ci/jobs/ldap_no_server.gitlab-ci.yml +20 -0
  17. data/.gitlab/ci/jobs/ldap_no_tls.gitlab-ci.yml +41 -0
  18. data/.gitlab/ci/jobs/ldap_tls.gitlab-ci.yml +41 -0
  19. data/.gitlab/ci/jobs/mattermost.gitlab-ci.yml +41 -0
  20. data/.gitlab/ci/jobs/mtls.gitlab-ci.yml +17 -0
  21. data/.gitlab/ci/jobs/object_storage.gitlab-ci.yml +49 -0
  22. data/.gitlab/ci/jobs/object_storage_aws.gitlab-ci.yml +25 -0
  23. data/.gitlab/ci/jobs/object_storage_gcs.gitlab-ci.yml +23 -0
  24. data/.gitlab/ci/jobs/object_storage_registry_tls.gitlab-ci.yml +41 -0
  25. data/.gitlab/ci/jobs/omnibus_image.gitlab-ci.yml +15 -0
  26. data/.gitlab/ci/jobs/omnibus_upgrade.gitlab-ci.yml +28 -0
  27. data/.gitlab/ci/jobs/packages.gitlab-ci.yml +25 -0
  28. data/.gitlab/ci/jobs/praefect.gitlab-ci.yml +71 -0
  29. data/.gitlab/ci/jobs/registry.gitlab-ci.yml +41 -0
  30. data/.gitlab/ci/jobs/registry_with_cdn.gitlab-ci.yml +43 -0
  31. data/.gitlab/ci/jobs/relative_url.gitlab-ci.yml +65 -0
  32. data/.gitlab/ci/jobs/repository_storage.gitlab-ci.yml +41 -0
  33. data/.gitlab/ci/jobs/sanity_framework.gitlab-ci.yml +24 -0
  34. data/.gitlab/ci/jobs/service_ping_disabled.gitlab-ci.yml +19 -0
  35. data/.gitlab/ci/jobs/smtp.gitlab-ci.yml +19 -0
  36. data/.gitlab/ci/jobs/staging.gitlab-ci.yml +10 -0
  37. data/.gitlab/ci/jobs/update.gitlab-ci.yml +60 -0
  38. data/.gitlab-ci.yml +37 -38
  39. data/bin/notify_upstream +98 -0
  40. data/lib/gitlab/qa/component/base.rb +0 -1
  41. data/lib/gitlab/qa/report/relate_failure_issue.rb +1 -1
  42. data/lib/gitlab/qa/runtime/env.rb +1 -1
  43. data/lib/gitlab/qa/scenario/test/integration/mattermost.rb +5 -1
  44. data/lib/gitlab/qa/version.rb +1 -1
  45. data/scripts/generate-qa-jobs.rb +41 -1710
  46. metadata +39 -3
  47. data/bin/notify_upstream_commit +0 -61
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1d63cf60f15e33988af850fbe566a6f46d695f572083bfff13870598058aebaa
4
- data.tar.gz: ccb96a5c450f8bb16d7c032953c3894f6ec9dcaec61a77d60484351e1db588d0
3
+ metadata.gz: 6d38407d98e8584368fc76399d9b317935ff72c3db389678582ea498dab1aa2e
4
+ data.tar.gz: e8d15459029b84436c36394372084d7a28607e1836dc34ef6ee3445b549d283b
5
5
  SHA512:
6
- metadata.gz: 451356306a538d083f628ccfaefc60c009374204ecbcf05865b88aa927b68a0bd52937229707b6c81744a4a8d41c65951edb585c956392b616f3fb373d360fcf
7
- data.tar.gz: dd1eb4ba25977779838692dc7085d9a4b25f166217997775f016c07ceaee75259e7b7f3f8d86ef2d2c38cfe9195a7edd1b1d9c6150bd9d061b522b4aa66d0c57
6
+ metadata.gz: 25d386ced265585364f4482544d9d0ba72bb85dd2af7236caaae8ea1c7ac4c2af8701362eefbdd1a76ebaec8a80c7ca7b2e9cbd0fd2e935656a54f0183bb19ab
7
+ data.tar.gz: 48a6a13c849393cb3d3ed7ef27b5f3fab21041e1a2073fa6dc95c8b973fb34e33183b7081388ac1e5db77fc9a223f9c45e3aefb6bb8dd306fbf41f2219b8c165
@@ -0,0 +1,41 @@
1
+ ce:actioncable:
2
+ extends:
3
+ - .rules:ce-never-when-triggered-by-feature-flag-definition-change
4
+ - .test
5
+ - .high-capacity
6
+ - .ce-variables
7
+ - .rspec-report-opts
8
+ variables:
9
+ QA_SCENARIO: "Test::Integration::Actioncable"
10
+
11
+ ce:actioncable-quarantine:
12
+ extends:
13
+ - .rules:ce-never-when-triggered-by-feature-flag-definition-change
14
+ - .test
15
+ - .high-capacity
16
+ - .ce-variables
17
+ - .quarantine
18
+ - .rspec-report-opts
19
+ variables:
20
+ QA_SCENARIO: "Test::Integration::Actioncable"
21
+
22
+ ee:actioncable:
23
+ extends:
24
+ - .rules:ee-never-when-triggered-by-feature-flag-definition-change
25
+ - .test
26
+ - .high-capacity
27
+ - .ee-variables
28
+ - .rspec-report-opts
29
+ variables:
30
+ QA_SCENARIO: "Test::Integration::Actioncable"
31
+
32
+ ee:actioncable-quarantine:
33
+ extends:
34
+ - .rules:ee-never-when-triggered-by-feature-flag-definition-change
35
+ - .test
36
+ - .high-capacity
37
+ - .ee-variables
38
+ - .quarantine
39
+ - .rspec-report-opts
40
+ variables:
41
+ QA_SCENARIO: "Test::Integration::Actioncable"
@@ -0,0 +1,281 @@
1
+ stages:
2
+ - test
3
+ - report
4
+ - notify
5
+
6
+ default:
7
+ image: registry.gitlab.com/gitlab-org/gitlab-build-images:gitlab-qa-ruby-2.7
8
+ tags:
9
+ - gitlab-org
10
+ cache:
11
+ key:
12
+ files:
13
+ - Gemfile.lock
14
+ - gitlab-qa.gemspec
15
+ paths:
16
+ - vendor/ruby
17
+ before_script:
18
+ - export QA_ARTIFACTS_DIR=$CI_PROJECT_DIR
19
+ - bundle version
20
+ - bundle config path vendor
21
+ - bundle install --jobs=$(nproc) --retry=3 --quiet && bundle check
22
+ - export LANG=C.UTF-8
23
+ - echo $CI_MERGE_REQUEST_IID
24
+ - echo $CI_COMMIT_BRANCH
25
+ - echo $CI_COMMIT_TAG
26
+ - echo $CI_PIPELINE_SOURCE
27
+ - echo $CI_DEFAULT_BRANCH
28
+ - echo $CI_COMMIT_REF_NAME
29
+ - echo $CI_JOB_ID
30
+ - echo $CI_COMMIT_REF_PROTECTED
31
+ - echo $TOP_UPSTREAM_SOURCE_SHA
32
+ - echo $TOP_UPSTREAM_MERGE_REQUEST_IID
33
+ - echo $TOP_UPSTREAM_SOURCE_PROJECT
34
+ - echo $TOP_UPSTREAM_DEFAULT_BRANCH
35
+ - echo $TOP_UPSTREAM_SOURCE_REF
36
+ - echo $TOP_UPSTREAM_SOURCE_JOB
37
+ - echo $GITLAB_QA_OPTIONS
38
+ - echo $QA_TESTS
39
+ - echo $RSPEC_REPORT_OPTS
40
+ - echo $QA_RSPEC_TAGS
41
+ - echo $QA_TEST_RESULTS_ISSUES_PROJECT
42
+ - echo $QA_TESTCASES_REPORTING_PROJECT
43
+ - echo $DEFAULT_RELEASE
44
+ - echo $GITLAB_QA_OPTIONS_COMBINED
45
+ - echo $DISABLE_RELATING_FAILURE_ISSUES
46
+ - echo $QA_FAILURES_MAX_DIFF_RATIO
47
+ - echo $QA_FAILURES_REPORTER_OPTIONS
48
+ - echo $NOTIFY_CHANNEL
49
+ - echo $REPORT_ISSUE_URL
50
+ - echo $QA_TESTCASE_SESSIONS_PROJECT
51
+ - echo $QA_FAILURES_REPORTING_PROJECT
52
+ - echo $ALLURE_JOB_NAME
53
+ - echo $QA_IMAGE
54
+ - echo $RELEASE
55
+ - echo $TEST_LICENSE_MODE
56
+
57
+ workflow:
58
+ rules:
59
+ # For merge requests, create a pipeline.
60
+ - if: $CI_MERGE_REQUEST_IID
61
+ # For the default branch, create a pipeline (this includes on schedules, pushes, merges, etc.).
62
+ - if: $CI_COMMIT_BRANCH == "master"
63
+ # For tags, create a pipeline.
64
+ - if: $CI_COMMIT_TAG
65
+ # For triggers from GitLab MR pipelines (and pipelines from other projects or parent pipeline), create a pipeline
66
+ - if: $CI_PIPELINE_SOURCE == "pipeline" || $CI_PIPELINE_SOURCE == "parent_pipeline"
67
+ # When using Run pipeline button in the GitLab UI, from the project’s CI/CD > Pipelines section, create a pipeline.
68
+ - if: $CI_PIPELINE_SOURCE == "web"
69
+
70
+ variables:
71
+ DOCKER_DRIVER: overlay2
72
+ DOCKER_HOST: tcp://docker:2375
73
+ QA_CAN_TEST_GIT_PROTOCOL_V2: "true"
74
+ QA_CAN_TEST_PRAEFECT: "false"
75
+ QA_GENERATE_ALLURE_REPORT: "true"
76
+ QA_TESTCASES_REPORTING_PROJECT: "gitlab-org/gitlab"
77
+ QA_TEST_RESULTS_ISSUES_PROJECT: "gitlab-org/quality/testcases"
78
+ QA_TESTCASE_SESSIONS_PROJECT: "gitlab-org/quality/testcase-sessions"
79
+ # QA_DEFAULT_BRANCH is the default branch name of the instance under test.
80
+ QA_DEFAULT_BRANCH: "master"
81
+
82
+ .ce-variables:
83
+ variables:
84
+ DEFAULT_RELEASE: "CE"
85
+
86
+ .ee-variables:
87
+ variables:
88
+ DEFAULT_RELEASE: "EE"
89
+
90
+ .test:
91
+ stage: test
92
+ timeout: 1 hour 30 minutes
93
+ services:
94
+ - docker:20.10.5-dind
95
+ tags:
96
+ - gitlab-org
97
+ - docker
98
+ artifacts:
99
+ when: always
100
+ expire_in: 10d
101
+ paths:
102
+ - gitlab-qa-run-*
103
+ reports:
104
+ junit: gitlab-qa-run-*/**/rspec-*.xml
105
+ script:
106
+ - 'echo "QA_ARTIFACTS_DIR: $QA_ARTIFACTS_DIR"'
107
+ - 'echo "CI_PROJECT_DIR: $CI_PROJECT_DIR"'
108
+ - 'echo "Running: bundle exec exe/gitlab-qa ${QA_SCENARIO:=Test::Instance::Image} ${RELEASE:=$DEFAULT_RELEASE} $GITLAB_QA_OPTIONS -- $QA_TESTS $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS"'
109
+ - bundle exec exe/gitlab-qa ${QA_SCENARIO:=Test::Instance::Image} ${RELEASE:=$DEFAULT_RELEASE} $GITLAB_QA_OPTIONS -- $QA_TESTS $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS || test_run_exit_code=$?
110
+ - bundle exec exe/gitlab-qa-report --update-screenshot-path "gitlab-qa-run-*/**/rspec-*.xml"
111
+ - export GITLAB_QA_ACCESS_TOKEN="$GITLAB_QA_PRODUCTION_ACCESS_TOKEN"
112
+ - if [ "$TOP_UPSTREAM_SOURCE_REF" == $TOP_UPSTREAM_DEFAULT_BRANCH ] || [[ "$TOP_UPSTREAM_SOURCE_JOB" == https://ops.gitlab.net* ]]; then exe/gitlab-qa-report --report-results "gitlab-qa-run-*/**/rspec-*.json" --test-case-project "$QA_TESTCASES_REPORTING_PROJECT" --results-issue-project "$QA_TEST_RESULTS_ISSUES_PROJECT" || true; fi
113
+ - exit $test_run_exit_code
114
+
115
+ # For jobs that shouldn't report results in issues, e.g., manually run custom jobs
116
+ .no-issue-report-script:
117
+ script:
118
+ - 'echo "Running: bundle exec exe/gitlab-qa ${QA_SCENARIO:=Test::Instance::Image} ${RELEASE:=$DEFAULT_RELEASE} $GITLAB_QA_OPTIONS -- $QA_TESTS $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS"'
119
+ - bundle exec exe/gitlab-qa ${QA_SCENARIO:=Test::Instance::Image} ${RELEASE:=$DEFAULT_RELEASE} $GITLAB_QA_OPTIONS -- $QA_TESTS $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS
120
+
121
+ # For jobs that provide additional GITLAB_QA_OPTIONS, e.g., jobs that include --omnibus-config
122
+ .combined-gitlab-qa-options-script:
123
+ script:
124
+ - 'echo "Running: bundle exec exe/gitlab-qa ${QA_SCENARIO:=Test::Instance::Image} ${RELEASE:=$DEFAULT_RELEASE} $GITLAB_QA_OPTIONS_COMBINED -- $QA_TESTS $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS"'
125
+
126
+ - bundle exec exe/gitlab-qa ${QA_SCENARIO:=Test::Instance::Image} ${RELEASE:=$DEFAULT_RELEASE} $GITLAB_QA_OPTIONS_COMBINED -- $QA_TESTS $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS || test_run_exit_code=$?
127
+ - bundle exec exe/gitlab-qa-report --update-screenshot-path "gitlab-qa-run-*/**/rspec-*.xml"
128
+ - export GITLAB_QA_ACCESS_TOKEN="$GITLAB_QA_PRODUCTION_ACCESS_TOKEN"
129
+ - if [ "$TOP_UPSTREAM_SOURCE_REF" == $TOP_UPSTREAM_DEFAULT_BRANCH ] || [[ "$TOP_UPSTREAM_SOURCE_JOB" == https://ops.gitlab.net* ]]; then exe/gitlab-qa-report --report-results "gitlab-qa-run-*/**/rspec-*.json" --test-case-project "$QA_TESTCASES_REPORTING_PROJECT" --results-issue-project "$QA_TEST_RESULTS_ISSUES_PROJECT" || true; fi
130
+ - exit $test_run_exit_code
131
+
132
+ # The Test::Omnibus::Update scenarios require the release to be specified twice, which can't be done dynamically using the `variables` parameter
133
+ # So instead we can use this script with two release variables
134
+ .update-scenario-script:
135
+ script:
136
+ - 'echo "Running: bundle exec exe/gitlab-qa Test::Omnibus::Update ${RELEASE:=$DEFAULT_RELEASE} ${RELEASE:=$DEFAULT_RELEASE} $GITLAB_QA_OPTIONS -- $QA_TESTS $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS"'
137
+ - bundle exec exe/gitlab-qa Test::Omnibus::Update ${RELEASE:=$DEFAULT_RELEASE} ${RELEASE:=$DEFAULT_RELEASE} $GITLAB_QA_OPTIONS -- $QA_TESTS $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS || test_run_exit_code=$?
138
+ - bundle exec exe/gitlab-qa-report --update-screenshot-path "gitlab-qa-run-*/**/rspec-*.xml"
139
+ - export GITLAB_QA_ACCESS_TOKEN="$GITLAB_QA_PRODUCTION_ACCESS_TOKEN"
140
+ - if [ "$TOP_UPSTREAM_SOURCE_REF" == $TOP_UPSTREAM_DEFAULT_BRANCH ] || [[ "$TOP_UPSTREAM_SOURCE_JOB" == https://ops.gitlab.net* ]]; then exe/gitlab-qa-report --report-results "gitlab-qa-run-*/**/rspec-*.json" --test-case-project "$QA_TESTCASES_REPORTING_PROJECT" --results-issue-project "$QA_TEST_RESULTS_ISSUES_PROJECT" || true; fi
141
+ - exit $test_run_exit_code
142
+
143
+ .high-capacity:
144
+ tags:
145
+ - docker
146
+ - 7gb
147
+ - triggered-packages
148
+
149
+ .rspec-report-opts:
150
+ variables:
151
+ FILE_SAFE_JOB_NAME: $(echo $CI_JOB_NAME | sed 's/[ /]/_/g')
152
+ RSPEC_REPORT_OPTS: '--format QA::Support::JsonFormatter --out "tmp/rspec-${CI_JOB_ID}.json" --format RspecJunitFormatter --out "tmp/rspec-${CI_JOB_ID}.xml" --format html --out "tmp/rspec-${FILE_SAFE_JOB_NAME}.htm" --color --format documentation'
153
+
154
+ .quarantine:
155
+ allow_failure: true
156
+ variables:
157
+ QA_RSPEC_TAGS: "--tag quarantine"
158
+
159
+ generate_test_session:
160
+ stage: report
161
+ rules:
162
+ - if: '$TOP_UPSTREAM_SOURCE_JOB !=null && $TOP_UPSTREAM_SOURCE_JOB !="" && $TOP_UPSTREAM_SOURCE_REF == $TOP_UPSTREAM_DEFAULT_BRANCH'
163
+ when: always
164
+ - if: '$TOP_UPSTREAM_SOURCE_JOB =~ /\Ahttps:\/\/ops.gitlab.net\//'
165
+ when: always
166
+ artifacts:
167
+ when: always
168
+ expire_in: 10d
169
+ paths:
170
+ - REPORT_ISSUE_URL
171
+ script:
172
+ - export GITLAB_QA_ACCESS_TOKEN="$GITLAB_QA_PRODUCTION_ACCESS_TOKEN"
173
+ - bundle exec exe/gitlab-qa-report --generate-test-session "gitlab-qa-run-*/**/rspec-*.json" --project "$QA_TESTCASE_SESSIONS_PROJECT"
174
+
175
+ relate_test_failures:
176
+ stage: report
177
+ rules:
178
+ - if: '$DISABLE_RELATING_FAILURE_ISSUES != null && $DISABLE_RELATING_FAILURE_ISSUES != ""'
179
+ when: never
180
+ - if: '$TOP_UPSTREAM_SOURCE_JOB !=null && $TOP_UPSTREAM_SOURCE_JOB !="" && $TOP_UPSTREAM_SOURCE_REF == $TOP_UPSTREAM_DEFAULT_BRANCH'
181
+ when: always
182
+ - if: '$TOP_UPSTREAM_SOURCE_JOB =~ /\Ahttps:\/\/ops.gitlab.net\//'
183
+ when: always
184
+ variables:
185
+ QA_FAILURES_REPORTING_PROJECT: "gitlab-org/gitlab"
186
+ QA_FAILURES_MAX_DIFF_RATIO: "0.15"
187
+ # The --dry-run can be set to modify the behavior of `exe/gitlab-qa-report --relate-failure-issue` without releasing a new gem version.
188
+ QA_FAILURES_REPORTER_OPTIONS: ""
189
+ script:
190
+ - export GITLAB_QA_ACCESS_TOKEN="$GITLAB_QA_PRODUCTION_ACCESS_TOKEN"
191
+ - bundle exec exe/gitlab-qa-report --relate-failure-issue "gitlab-qa-run-*/**/rspec-*.json" --project "$QA_FAILURES_REPORTING_PROJECT" --max-diff-ratio "$QA_FAILURES_MAX_DIFF_RATIO" $QA_FAILURES_REPORTER_OPTIONS
192
+
193
+ .notify_upstream:
194
+ stage: notify
195
+ image: ruby:3.0-alpine
196
+ dependencies: []
197
+ before_script:
198
+ - gem install gitlab --no-document
199
+
200
+ notify_upstream:success:
201
+ extends: .notify_upstream
202
+ script:
203
+ - bin/notify_upstream success
204
+ rules:
205
+ - if: '$TOP_UPSTREAM_SOURCE_PROJECT && $TOP_UPSTREAM_MERGE_REQUEST_IID && $TOP_UPSTREAM_SOURCE_SHA'
206
+ when: on_success
207
+
208
+ notify_upstream:failure:
209
+ extends: .notify_upstream
210
+ script:
211
+ - bin/notify_upstream failure
212
+ rules:
213
+ - if: '$TOP_UPSTREAM_SOURCE_PROJECT && $TOP_UPSTREAM_MERGE_REQUEST_IID && $TOP_UPSTREAM_SOURCE_SHA'
214
+ when: on_failure
215
+
216
+ .notify_slack:
217
+ image: alpine
218
+ stage: notify
219
+ dependencies: ['generate_test_session']
220
+ cache: {}
221
+ before_script:
222
+ - apk update && apk add git curl bash
223
+
224
+ notify_slack:
225
+ extends:
226
+ - .notify_slack
227
+ rules:
228
+ - if: '$TOP_UPSTREAM_SOURCE_JOB !=null && $TOP_UPSTREAM_SOURCE_JOB !="" && $NOTIFY_CHANNEL !=null && $NOTIFY_CHANNEL !=""'
229
+ when: on_failure
230
+ - if: '$TOP_UPSTREAM_SOURCE_JOB !=null && $TOP_UPSTREAM_SOURCE_JOB !="" && $TOP_UPSTREAM_SOURCE_REF == $TOP_UPSTREAM_DEFAULT_BRANCH'
231
+ when: on_failure
232
+ script:
233
+ - export RELEASE=${TOP_UPSTREAM_SOURCE_REF:-$RELEASE}
234
+ - echo "NOTIFY_CHANNEL is ${NOTIFY_CHANNEL:=qa-$TOP_UPSTREAM_SOURCE_REF}"
235
+ - echo "RELEASE is ${RELEASE}"
236
+ - echo "CI_PIPELINE_URL is $CI_PIPELINE_URL"
237
+ - echo "TOP_UPSTREAM_SOURCE_JOB is $TOP_UPSTREAM_SOURCE_JOB"
238
+ - 'bin/slack $NOTIFY_CHANNEL "☠️ QA against $RELEASE failed! ☠️ See the test session report: $(cat REPORT_ISSUE_URL), and pipeline: $CI_PIPELINE_URL (triggered from $TOP_UPSTREAM_SOURCE_JOB)" ci_failing'
239
+
240
+ generate-allure-report:
241
+ extends: .generate-allure-report-base
242
+ stage: report
243
+ variables:
244
+ ALLURE_RESULTS_GLOB: gitlab-qa-run-*/**/allure-results/*
245
+ cache:
246
+ policy: pull
247
+ before_script:
248
+ # Override allure variables for upstream triggers
249
+ # Override default before script and don't push cache
250
+ - export STORAGE_CREDENTIALS=$QA_ALLURE_REPORT_GCS_CREDENTIALS
251
+ - export GITLAB_AUTH_TOKEN=$GITLAB_QA_MR_ALLURE_REPORT_TOKEN
252
+ - export ALLURE_PROJECT_PATH=$TOP_UPSTREAM_SOURCE_PROJECT
253
+ - export ALLURE_MERGE_REQUEST_IID=$TOP_UPSTREAM_MERGE_REQUEST_IID
254
+ - export ALLURE_COMMIT_SHA=$TOP_UPSTREAM_SOURCE_SHA
255
+ - export ALLURE_JOB_NAME="${ALLURE_JOB_NAME:-package-and-qa}"
256
+ rules:
257
+ # Don't run report generation on release pipelines
258
+ - if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_PATH == "gitlab-org/gitlab-qa" && $RELEASE == null'
259
+ changes: ["lib/**/version.rb"]
260
+ when: never
261
+ - if: '$CI_COMMIT_TAG'
262
+ when: never
263
+ - if: '$CI_PIPELINE_SOURCE == "merge_request_event" || $CI_PIPELINE_SOURCE == "parent_pipeline" || ($CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH)'
264
+ variables:
265
+ ALLURE_JOB_NAME: gitlab-qa
266
+ when: always
267
+ - if: '$TOP_UPSTREAM_SOURCE_PROJECT != null && $TOP_UPSTREAM_SOURCE_PROJECT != "" && $TOP_UPSTREAM_SOURCE_SHA != null && $TOP_UPSTREAM_SOURCE_SHA != ""'
268
+ when: always
269
+
270
+ generate-knapsack-report:
271
+ extends: .generate-knapsack-report-base
272
+ image:
273
+ name: ${QA_IMAGE}
274
+ stage: report
275
+
276
+ include:
277
+ - local: .gitlab/ci/rules.gitlab-ci.yml
278
+ - project: 'gitlab-org/quality/pipeline-common'
279
+ file:
280
+ - '/ci/allure-report.yml'
281
+ - '/ci/knapsack-report.yml'
@@ -0,0 +1,30 @@
1
+ ee:cloud-activation:
2
+ before_script:
3
+ - unset EE_LICENSE
4
+ - !reference [default, before_script]
5
+ extends:
6
+ - .rules:ee-never-when-triggered-by-feature-flag-definition-change
7
+ - .test
8
+ - .high-capacity
9
+ - .ee-variables
10
+ - .rspec-report-opts
11
+ - .combined-gitlab-qa-options-script
12
+ variables:
13
+ QA_RSPEC_TAGS: "--tag cloud_activation"
14
+ GITLAB_QA_OPTIONS_COMBINED: "$GITLAB_QA_OPTIONS --seed-db license*.rb"
15
+
16
+ ee:cloud-activation-quarantine:
17
+ before_script:
18
+ - unset EE_LICENSE
19
+ - !reference [default, before_script]
20
+ extends:
21
+ - .rules:ee-never-when-triggered-by-feature-flag-definition-change
22
+ - .test
23
+ - .high-capacity
24
+ - .ee-variables
25
+ - .quarantine
26
+ - .rspec-report-opts
27
+ - .combined-gitlab-qa-options-script
28
+ variables:
29
+ QA_RSPEC_TAGS: "--tag cloud_activation"
30
+ GITLAB_QA_OPTIONS_COMBINED: "$GITLAB_QA_OPTIONS --seed-db license*.rb"
@@ -0,0 +1,21 @@
1
+ ce:custom-parallel:
2
+ extends:
3
+ - .rules:ce-never-when-triggered-by-feature-flag-definition-change
4
+ - .test
5
+ - .high-capacity
6
+ - .rspec-report-opts
7
+ - .no-issue-report-script
8
+ - .ce-variables
9
+ allow_failure: true
10
+ parallel: 10
11
+
12
+ ee:custom-parallel:
13
+ extends:
14
+ - .rules:ee-never-when-triggered-by-feature-flag-definition-change
15
+ - .test
16
+ - .high-capacity
17
+ - .ee-variables
18
+ - .rspec-report-opts
19
+ - .no-issue-report-script
20
+ allow_failure: true
21
+ parallel: 10
@@ -0,0 +1,18 @@
1
+ ee-previous-to-ce:update:
2
+ script:
3
+ - bundle exec exe/gitlab-qa Test::Omnibus::Update EE CE -- $RSPEC_REPORT_OPTS
4
+ extends:
5
+ - .rules:only-qa-never-when-triggered-by-feature-flag-definition-change
6
+ - .test
7
+ - .high-capacity
8
+ - .rspec-report-opts
9
+
10
+ ee-previous-to-ce:update-quarantine:
11
+ script:
12
+ - bundle exec exe/gitlab-qa Test::Omnibus::Update EE CE -- --tag quarantine --tag ~orchestrated $RSPEC_REPORT_OPTS
13
+ extends:
14
+ - .rules:only-qa-never-when-triggered-by-feature-flag-definition-change
15
+ - .test
16
+ - .high-capacity
17
+ - .quarantine
18
+ - .rspec-report-opts
@@ -0,0 +1,20 @@
1
+ ee:elasticsearch:
2
+ extends:
3
+ - .rules:ee-never-when-triggered-by-feature-flag-definition-change
4
+ - .test
5
+ - .high-capacity
6
+ - .ee-variables
7
+ - .rspec-report-opts
8
+ variables:
9
+ QA_SCENARIO: "Test::Integration::Elasticsearch"
10
+
11
+ ee:elasticsearch-quarantine:
12
+ extends:
13
+ - .rules:ee-never-when-triggered-by-feature-flag-definition-change
14
+ - .test
15
+ - .high-capacity
16
+ - .ee-variables
17
+ - .quarantine
18
+ - .rspec-report-opts
19
+ variables:
20
+ QA_SCENARIO: "Test::Integration::Elasticsearch"
@@ -0,0 +1,18 @@
1
+ ee:geo:
2
+ extends:
3
+ - .test
4
+ - .ee-variables
5
+ - .rules:ee-never-when-triggered-by-feature-flag-definition-change
6
+ - .rspec-report-opts
7
+ variables:
8
+ QA_SCENARIO: "Test::Integration::Geo"
9
+
10
+ ee:geo-quarantine:
11
+ extends:
12
+ - .test
13
+ - .ee-variables
14
+ - .rules:ee-never-when-triggered-by-feature-flag-definition-change
15
+ - .quarantine
16
+ - .rspec-report-opts
17
+ variables:
18
+ QA_SCENARIO: "Test::Integration::Geo"
@@ -0,0 +1,45 @@
1
+ ce:gitaly-cluster:
2
+ extends:
3
+ - .rules:ce-never-when-triggered-by-feature-flag-definition-change
4
+ - .test
5
+ - .high-capacity
6
+ - .ce-variables
7
+ - .rspec-report-opts
8
+ variables:
9
+ QA_SCENARIO: "Test::Integration::GitalyCluster"
10
+ QA_LOG_PATH: "tmp/gitaly_cluster.log"
11
+
12
+ ce:gitaly-cluster-quarantine:
13
+ extends:
14
+ - .rules:ce-never-when-triggered-by-feature-flag-definition-change
15
+ - .test
16
+ - .high-capacity
17
+ - .ce-variables
18
+ - .quarantine
19
+ - .rspec-report-opts
20
+ variables:
21
+ QA_SCENARIO: "Test::Integration::GitalyCluster"
22
+ QA_LOG_PATH: "tmp/gitaly_cluster.log"
23
+
24
+ ee:gitaly-cluster:
25
+ extends:
26
+ - .rules:ee-never-when-triggered-by-feature-flag-definition-change
27
+ - .test
28
+ - .high-capacity
29
+ - .ee-variables
30
+ - .rspec-report-opts
31
+ variables:
32
+ QA_SCENARIO: "Test::Integration::GitalyCluster"
33
+ QA_LOG_PATH: "tmp/gitaly_cluster.log"
34
+
35
+ ee:gitaly-cluster-quarantine:
36
+ extends:
37
+ - .rules:ee-never-when-triggered-by-feature-flag-definition-change
38
+ - .test
39
+ - .high-capacity
40
+ - .ee-variables
41
+ - .quarantine
42
+ - .rspec-report-opts
43
+ variables:
44
+ QA_SCENARIO: "Test::Integration::GitalyCluster"
45
+ QA_LOG_PATH: "tmp/gitaly_cluster.log"
@@ -0,0 +1,20 @@
1
+ ee:group_saml:
2
+ extends:
3
+ - .rules:ee-never-when-triggered-by-feature-flag-definition-change
4
+ - .test
5
+ - .high-capacity
6
+ - .ee-variables
7
+ - .rspec-report-opts
8
+ variables:
9
+ QA_SCENARIO: "Test::Integration::GroupSAML"
10
+
11
+ ee:group_saml-quarantine:
12
+ extends:
13
+ - .rules:ee-never-when-triggered-by-feature-flag-definition-change
14
+ - .test
15
+ - .high-capacity
16
+ - .ee-variables
17
+ - .quarantine
18
+ - .rspec-report-opts
19
+ variables:
20
+ QA_SCENARIO: "Test::Integration::GroupSAML"
@@ -0,0 +1,55 @@
1
+ ce:instance-parallel:
2
+ extends:
3
+ - .rules:ce-never-when-qa-tests-specified
4
+ - .test
5
+ - .high-capacity
6
+ - .ce-variables
7
+ - .rspec-report-opts
8
+ parallel: 5
9
+
10
+ ee:instance-parallel:
11
+ extends:
12
+ - .rules:ee-never-when-qa-tests-specified
13
+ - .test
14
+ - .high-capacity
15
+ - .ee-variables
16
+ - .rspec-report-opts
17
+ parallel: 5
18
+
19
+ ce:instance:
20
+ extends:
21
+ - .rules:ce-never-when-qa-tests-not-specified
22
+ - .test
23
+ - .high-capacity
24
+ - .ce-variables
25
+ - .rspec-report-opts
26
+
27
+ ce:instance-quarantine:
28
+ extends:
29
+ - .rules:ce-qa
30
+ - .test
31
+ - .high-capacity
32
+ - .ce-variables
33
+ - .quarantine
34
+ - .rspec-report-opts
35
+ variables:
36
+ QA_RSPEC_TAGS: "--tag quarantine --tag ~orchestrated"
37
+
38
+ ee:instance:
39
+ extends:
40
+ - .rules:ee-never-when-qa-tests-not-specified
41
+ - .test
42
+ - .high-capacity
43
+ - .ee-variables
44
+ - .rspec-report-opts
45
+
46
+ ee:instance-quarantine:
47
+ extends:
48
+ - .rules:ee-qa
49
+ - .test
50
+ - .high-capacity
51
+ - .ee-variables
52
+ - .quarantine
53
+ - .rspec-report-opts
54
+ variables:
55
+ QA_RSPEC_TAGS: "--tag quarantine --tag ~orchestrated"
@@ -0,0 +1,41 @@
1
+ ce:instance_saml:
2
+ extends:
3
+ - .rules:ce-never-when-triggered-by-feature-flag-definition-change
4
+ - .test
5
+ - .high-capacity
6
+ - .ce-variables
7
+ - .rspec-report-opts
8
+ variables:
9
+ QA_SCENARIO: "Test::Integration::InstanceSAML"
10
+
11
+ ce:instance_saml-quarantine:
12
+ extends:
13
+ - .rules:ce-never-when-triggered-by-feature-flag-definition-change
14
+ - .test
15
+ - .high-capacity
16
+ - .ce-variables
17
+ - .quarantine
18
+ - .rspec-report-opts
19
+ variables:
20
+ QA_SCENARIO: "Test::Integration::InstanceSAML"
21
+
22
+ ee:instance_saml:
23
+ extends:
24
+ - .rules:ee-never-when-triggered-by-feature-flag-definition-change
25
+ - .test
26
+ - .high-capacity
27
+ - .ee-variables
28
+ - .rspec-report-opts
29
+ variables:
30
+ QA_SCENARIO: "Test::Integration::InstanceSAML"
31
+
32
+ ee:instance_saml-quarantine:
33
+ extends:
34
+ - .rules:ee-never-when-triggered-by-feature-flag-definition-change
35
+ - .test
36
+ - .high-capacity
37
+ - .ee-variables
38
+ - .quarantine
39
+ - .rspec-report-opts
40
+ variables:
41
+ QA_SCENARIO: "Test::Integration::InstanceSAML"
@@ -0,0 +1,14 @@
1
+ ce:integrations:
2
+ extends:
3
+ - .rules:ce-never-when-triggered-by-feature-flag-definition-change
4
+ - .test
5
+ - .high-capacity
6
+ - .ce-variables
7
+ - .rspec-report-opts
8
+ variables:
9
+ QA_SCENARIO: "Test::Integration::Integrations"
10
+
11
+ ce:integrations-quarantine:
12
+ extends:
13
+ - ce:integrations
14
+ - .quarantine
@@ -0,0 +1,41 @@
1
+ ce:jira:
2
+ extends:
3
+ - .rules:ce-never-when-triggered-by-feature-flag-definition-change
4
+ - .test
5
+ - .high-capacity
6
+ - .ce-variables
7
+ - .rspec-report-opts
8
+ variables:
9
+ QA_SCENARIO: "Test::Integration::Jira"
10
+
11
+ ce:jira-quarantine:
12
+ extends:
13
+ - .rules:ce-never-when-triggered-by-feature-flag-definition-change
14
+ - .test
15
+ - .high-capacity
16
+ - .ce-variables
17
+ - .quarantine
18
+ - .rspec-report-opts
19
+ variables:
20
+ QA_SCENARIO: "Test::Integration::Jira"
21
+
22
+ ee:jira:
23
+ extends:
24
+ - .rules:ee-never-when-triggered-by-feature-flag-definition-change
25
+ - .test
26
+ - .high-capacity
27
+ - .ee-variables
28
+ - .rspec-report-opts
29
+ variables:
30
+ QA_SCENARIO: "Test::Integration::Jira"
31
+
32
+ ee:jira-quarantine:
33
+ extends:
34
+ - .rules:ee-never-when-triggered-by-feature-flag-definition-change
35
+ - .test
36
+ - .high-capacity
37
+ - .ee-variables
38
+ - .quarantine
39
+ - .rspec-report-opts
40
+ variables:
41
+ QA_SCENARIO: "Test::Integration::Jira"