gitlab-qa 7.24.6 → 7.26.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) 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/rules.gitlab-ci.yml +19 -6
  39. data/.gitlab/issue_templates/Default.md +2 -0
  40. data/.gitlab/merge_request_templates/Default.md +2 -0
  41. data/.gitlab-ci.yml +110 -1333
  42. data/bin/notify_upstream +98 -0
  43. data/docs/what_tests_can_be_run.md +15 -0
  44. data/lib/gitlab/qa/component/base.rb +0 -1
  45. data/lib/gitlab/qa/component/gitlab.rb +48 -1
  46. data/lib/gitlab/qa/component/staging_ref.rb +1 -0
  47. data/lib/gitlab/qa/docker/engine.rb +4 -0
  48. data/lib/gitlab/qa/release.rb +1 -1
  49. data/lib/gitlab/qa/report/gitlab_issue_client.rb +12 -0
  50. data/lib/gitlab/qa/report/relate_failure_issue.rb +17 -2
  51. data/lib/gitlab/qa/report/test_result.rb +8 -0
  52. data/lib/gitlab/qa/report/update_screenshot_path.rb +28 -6
  53. data/lib/gitlab/qa/runner.rb +17 -0
  54. data/lib/gitlab/qa/runtime/env.rb +14 -1
  55. data/lib/gitlab/qa/runtime/omnibus_configuration.rb +1 -1
  56. data/lib/gitlab/qa/runtime/omnibus_configurations/ci_decomposition.rb +32 -0
  57. data/lib/gitlab/qa/scenario/test/instance/deployment_base.rb +5 -0
  58. data/lib/gitlab/qa/scenario/test/instance/staging_ref_geo.rb +27 -0
  59. data/lib/gitlab/qa/scenario/test/integration/geo.rb +2 -1
  60. data/lib/gitlab/qa/scenario/test/integration/gitaly_cluster.rb +2 -0
  61. data/lib/gitlab/qa/scenario/test/integration/mattermost.rb +5 -1
  62. data/lib/gitlab/qa/scenario/test/integration/mtls.rb +1 -0
  63. data/lib/gitlab/qa/scenario/test/integration/registry_with_cdn.rb +42 -0
  64. data/lib/gitlab/qa/scenario/test/omnibus/update.rb +1 -0
  65. data/lib/gitlab/qa/version.rb +1 -1
  66. data/lib/gitlab/qa.rb +3 -0
  67. data/scripts/generate-qa-jobs.rb +72 -0
  68. data/support/data/admin_access_token_seed.rb +24 -0
  69. data/support/data/license_usage_seed.rb +75 -0
  70. metadata +45 -3
  71. data/bin/notify_upstream_commit +0 -61
data/.gitlab-ci.yml CHANGED
@@ -1,9 +1,8 @@
1
1
  stages:
2
2
  - check
3
- - test
4
- - report
3
+ - generate
4
+ - triggers
5
5
  - deploy
6
- - notify
7
6
 
8
7
  default:
9
8
  image: registry.gitlab.com/gitlab-org/gitlab-build-images:gitlab-qa-ruby-2.7
@@ -17,7 +16,6 @@ default:
17
16
  paths:
18
17
  - vendor/ruby
19
18
  before_script:
20
- - echo $GITLAB_QA_OPTIONS
21
19
  - bundle version
22
20
  - bundle config path vendor
23
21
  - bundle install --jobs=$(nproc) --retry=3 --quiet && bundle check
@@ -36,21 +34,6 @@ workflow:
36
34
  # When using Run pipeline button in the GitLab UI, from the project’s CI/CD > Pipelines section, create a pipeline.
37
35
  - if: '$CI_PIPELINE_SOURCE == "web"'
38
36
 
39
- variables:
40
- DOCKER_DRIVER: overlay2
41
- DOCKER_HOST: tcp://docker:2375
42
- QA_ARTIFACTS_DIR: $CI_PROJECT_DIR
43
- QA_CAN_TEST_GIT_PROTOCOL_V2: "true"
44
- QA_CAN_TEST_PRAEFECT: "false"
45
- QA_GENERATE_ALLURE_REPORT: "true"
46
- QA_TESTCASES_REPORTING_PROJECT: "gitlab-org/gitlab"
47
- QA_TEST_RESULTS_ISSUES_PROJECT: "gitlab-org/quality/testcases"
48
- QA_TESTCASE_SESSIONS_PROJECT: "gitlab-org/quality/testcase-sessions"
49
- # QA_DEFAULT_BRANCH is the default branch name of the instance under test.
50
- QA_DEFAULT_BRANCH: "master"
51
- # TOP_UPSTREAM_DEFAULT_BRANCH is the default branch name of the original project that triggered a pipeline in this project.
52
- TOP_UPSTREAM_DEFAULT_BRANCH: "master"
53
-
54
37
  .check-base:
55
38
  stage: check
56
39
  script:
@@ -62,1333 +45,127 @@ rubocop:
62
45
  rspec:
63
46
  extends: .check-base
64
47
 
65
- .test:
66
- stage: test
67
- timeout: 1 hour 30 minutes
68
- services:
69
- - docker:20.10.5-dind
70
- tags:
71
- - gitlab-org
72
- - docker
48
+ prepare:
49
+ stage: generate
50
+ extends: .rules:never-on-version-change-or-tag
51
+ script:
52
+ - |
53
+ if [[ $TOP_UPSTREAM_SOURCE_PROJECT == "gitlab-org/gitlab" && -n $TOP_UPSTREAM_SOURCE_SHA ]]; then
54
+ export QA_IMAGE_TAG=${TOP_UPSTREAM_SOURCE_SHA}
55
+ else
56
+ export QA_IMAGE_TAG=master
57
+ fi
58
+ - 'echo "QA_IMAGE_TAG=$QA_IMAGE_TAG" >> prep_vars.env'
59
+ - 'echo $QA_IMAGE_TAG'
73
60
  artifacts:
74
- when: always
75
- expire_in: 10d
76
- paths:
77
- - gitlab-qa-run-*
78
61
  reports:
79
- junit: gitlab-qa-run-*/**/rspec-*.xml
80
- script:
81
- - '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"'
82
- - 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=$?
83
- - bundle exec exe/gitlab-qa-report --update-screenshot-path "gitlab-qa-run-*/**/rspec-*.xml"
84
- - export GITLAB_QA_ACCESS_TOKEN="$GITLAB_QA_PRODUCTION_ACCESS_TOKEN"
85
- - 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
86
- - exit $test_run_exit_code
87
-
88
- # For jobs that shouldn't report results in issues, e.g., manually run custom jobs
89
- .no-issue-report-script:
90
- script:
91
- - '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"'
92
- - bundle exec exe/gitlab-qa ${QA_SCENARIO:=Test::Instance::Image} ${RELEASE:=$DEFAULT_RELEASE} $GITLAB_QA_OPTIONS -- $QA_TESTS $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS
93
-
94
- # For jobs that provide additional GITLAB_QA_OPTIONS, e.g., jobs that include --omnibus-config
95
- .combined-gitlab-qa-options-script:
96
- script:
97
- - '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"'
98
- - 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=$?
99
- - bundle exec exe/gitlab-qa-report --update-screenshot-path "gitlab-qa-run-*/**/rspec-*.xml"
100
- - export GITLAB_QA_ACCESS_TOKEN="$GITLAB_QA_PRODUCTION_ACCESS_TOKEN"
101
- - 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
102
- - exit $test_run_exit_code
103
-
104
- # The Test::Omnibus::Update scenarios require the release to be specified twice, which can't be done dynamically using the `variables` parameter
105
- # So instead we can use this script with two release variables
106
- .update-scenario-script:
107
- script:
108
- - '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"'
109
- - 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=$?
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
- .ce-variables:
116
- variables:
117
- DEFAULT_RELEASE: "CE"
118
-
119
- .ee-variables:
120
- variables:
121
- DEFAULT_RELEASE: "EE"
122
-
123
- .high-capacity:
124
- tags:
125
- - docker
126
- - 7gb
127
- - triggered-packages
128
-
129
- .rspec-report-opts:
130
- variables:
131
- FILE_SAFE_JOB_NAME: $(echo $CI_JOB_NAME | sed 's/[ /]/_/g')
132
- 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"
133
-
134
- .quarantine:
135
- allow_failure: true
136
- variables:
137
- QA_RSPEC_TAGS: "--tag quarantine"
138
-
139
- # Do not generate allure report since it always adds a failed test to the report. The job runs a test where 1 example would always fail and assert exit code via custom script bin/expect_exit_code_and_text
140
- ce:sanity-framework:
141
- variables:
142
- QA_GENERATE_ALLURE_REPORT: "false"
143
- QA_EXPORT_TEST_METRICS: "false"
144
- script:
145
- - ./bin/expect_exit_code_and_text "bundle exec exe/gitlab-qa Test::Instance::Image ${RELEASE:=CE} -- --tag framework" 1 "2 examples, 1 failure"
146
- extends:
147
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
148
- - .test
149
- - .high-capacity
150
- - .ce-variables
62
+ dotenv: prep_vars.env
63
+ paths:
64
+ - prep_vars.env
151
65
 
152
- ee:sanity-framework:
66
+ generate-jobs:
67
+ stage: generate
68
+ extends: .rules:never-on-version-change-or-tag
69
+ image:
70
+ name: $CI_REGISTRY/gitlab-org/gitlab/gitlab-ee-qa:$QA_IMAGE_TAG
71
+ entrypoint: [ "" ]
153
72
  variables:
154
- QA_GENERATE_ALLURE_REPORT: "false"
155
73
  QA_EXPORT_TEST_METRICS: "false"
156
- script:
157
- - ./bin/expect_exit_code_and_text "bundle exec exe/gitlab-qa Test::Instance::Image ${RELEASE:=EE} -- --tag framework" 1 "2 examples, 1 failure"
158
- extends:
159
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
160
- - .test
161
- - .high-capacity
162
- - .ee-variables
163
-
164
- ce:custom-parallel:
165
- extends:
166
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
167
- - .test
168
- - .high-capacity
169
- - .rspec-report-opts
170
- - .no-issue-report-script
171
- - .ce-variables
172
- allow_failure: true
173
- parallel: 10
174
-
175
- ee:custom-parallel:
176
- extends:
177
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
178
- - .test
179
- - .high-capacity
180
- - .ee-variables
181
- - .rspec-report-opts
182
- - .no-issue-report-script
183
- allow_failure: true
184
- parallel: 10
185
-
186
- ce:instance-parallel:
187
- extends:
188
- - .rules:ce-never-when-qa-tests-specified
189
- - .test
190
- - .high-capacity
191
- - .ce-variables
192
- - .rspec-report-opts
193
- parallel: 5
194
-
195
- ce:instance:
196
- extends:
197
- - .rules:ce-never-when-qa-tests-not-specified
198
- - .test
199
- - .high-capacity
200
- - .ce-variables
201
- - .rspec-report-opts
202
-
203
- ce:instance-quarantine:
204
- extends:
205
- - .rules:ce-qa
206
- - .test
207
- - .high-capacity
208
- - .ce-variables
209
- - .quarantine
210
- - .rspec-report-opts
211
- variables:
212
- QA_RSPEC_TAGS: "--tag quarantine --tag ~orchestrated"
213
-
214
- ee:instance-parallel:
215
- extends:
216
- - .rules:ee-never-when-qa-tests-specified
217
- - .test
218
- - .high-capacity
219
- - .ee-variables
220
- - .rspec-report-opts
221
- parallel: 5
222
-
223
- ee:instance:
224
- extends:
225
- - .rules:ee-never-when-qa-tests-not-specified
226
- - .test
227
- - .high-capacity
228
- - .ee-variables
229
- - .rspec-report-opts
230
-
231
- ee:instance-quarantine:
232
- extends:
233
- - .rules:ee-qa
234
- - .test
235
- - .high-capacity
236
- - .ee-variables
237
- - .quarantine
238
- - .rspec-report-opts
239
- variables:
240
- QA_RSPEC_TAGS: "--tag quarantine --tag ~orchestrated"
241
-
242
- ce:relative_url-parallel:
243
- extends:
244
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-specified
245
- - .test
246
- - .high-capacity
247
- - .ce-variables
248
- - .rspec-report-opts
249
- parallel: 5
250
- variables:
251
- QA_SCENARIO: "Test::Instance::RelativeUrl"
252
-
253
- ce:relative_url:
254
- extends:
255
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-not-specified
256
- - .test
257
- - .high-capacity
258
- - .ce-variables
259
- - .rspec-report-opts
260
- variables:
261
- QA_SCENARIO: "Test::Instance::RelativeUrl"
262
-
263
- ce:relative_url-quarantine:
264
- extends:
265
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
266
- - .test
267
- - .high-capacity
268
- - .ce-variables
269
- - .quarantine
270
- - .rspec-report-opts
271
- variables:
272
- QA_SCENARIO: "Test::Instance::RelativeUrl"
273
- QA_RSPEC_TAGS: "--tag quarantine --tag ~orchestrated"
274
-
275
- ee:relative_url-parallel:
276
- extends:
277
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-specified
278
- - .test
279
- - .high-capacity
280
- - .ee-variables
281
- - .rspec-report-opts
282
- parallel: 5
283
- variables:
284
- QA_SCENARIO: "Test::Instance::RelativeUrl"
285
-
286
- ee:relative_url:
287
- extends:
288
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-not-specified
289
- - .test
290
- - .high-capacity
291
- - .ee-variables
292
- - .rspec-report-opts
293
- variables:
294
- QA_SCENARIO: "Test::Instance::RelativeUrl"
295
-
296
- ee:relative_url-quarantine:
297
- extends:
298
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
299
- - .test
300
- - .high-capacity
301
- - .ee-variables
302
- - .quarantine
303
- - .rspec-report-opts
304
- variables:
305
- QA_SCENARIO: "Test::Instance::RelativeUrl"
306
- QA_RSPEC_TAGS: "--tag quarantine --tag ~orchestrated"
307
-
308
- ce:repository_storage:
309
- extends:
310
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
311
- - .test
312
- - .high-capacity
313
- - .ce-variables
314
- - .rspec-report-opts
315
- variables:
316
- QA_SCENARIO: "Test::Instance::RepositoryStorage"
317
-
318
- ce:repository_storage-quarantine:
319
- extends:
320
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
321
- - .test
322
- - .high-capacity
323
- - .ce-variables
324
- - .quarantine
325
- - .rspec-report-opts
326
- variables:
327
- QA_SCENARIO: "Test::Instance::RepositoryStorage"
328
-
329
- ee:repository_storage:
330
- extends:
331
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
332
- - .test
333
- - .high-capacity
334
- - .ee-variables
335
- - .rspec-report-opts
336
- variables:
337
- QA_SCENARIO: "Test::Instance::RepositoryStorage"
338
-
339
- ee:repository_storage-quarantine:
340
- extends:
341
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
342
- - .test
343
- - .high-capacity
344
- - .ee-variables
345
- - .quarantine
346
- - .rspec-report-opts
347
- variables:
348
- QA_SCENARIO: "Test::Instance::RepositoryStorage"
349
-
350
- # The Test::Omnibus::Image scenarios don't run the E2E tests so they don't need to report test results
351
- ce:image:
352
- script:
353
- - bundle exec exe/gitlab-qa Test::Omnibus::Image ${RELEASE:=CE}
354
- extends:
355
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
356
- - .test
357
- - .ce-variables
358
-
359
- ee:image:
360
- script:
361
- - bundle exec exe/gitlab-qa Test::Omnibus::Image ${RELEASE:=EE}
362
- extends:
363
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
364
- - .test
365
- - .ee-variables
366
-
367
- ce:update-parallel:
368
- extends:
369
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-specified
370
- - .test
371
- - .high-capacity
372
- - .ce-variables
373
- - .rspec-report-opts
374
- - .update-scenario-script
375
- parallel: 5
376
-
377
- ce:update:
378
- extends:
379
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-not-specified
380
- - .test
381
- - .high-capacity
382
- - .ce-variables
383
- - .rspec-report-opts
384
- - .update-scenario-script
385
-
386
- ce:update-quarantine:
387
- extends:
388
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
389
- - .test
390
- - .high-capacity
391
- - .ce-variables
392
- - .quarantine
393
- - .rspec-report-opts
394
- - .update-scenario-script
395
- variables:
396
- QA_RSPEC_TAGS: "--tag quarantine --tag ~orchestrated"
397
-
398
- ee:update-parallel:
399
- extends:
400
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-specified
401
- - .test
402
- - .high-capacity
403
- - .ee-variables
404
- - .rspec-report-opts
405
- - .update-scenario-script
406
- parallel: 10
407
-
408
- ee:update:
409
- extends:
410
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-not-specified
411
- - .test
412
- - .high-capacity
413
- - .ee-variables
414
- - .rspec-report-opts
415
- - .update-scenario-script
416
-
417
- ee:update-quarantine:
418
- extends:
419
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
420
- - .test
421
- - .high-capacity
422
- - .ee-variables
423
- - .quarantine
424
- - .rspec-report-opts
425
- variables:
426
- QA_RSPEC_TAGS: "--tag quarantine --tag ~orchestrated"
427
-
428
- # The Test::Omnibus::Upgrade scenario isn't run on master (because it always uses the latest CE/EE image) so we don't report the test results in issues
429
- ce:upgrade-parallel:
430
- script:
431
- - bundle exec exe/gitlab-qa Test::Omnibus::Upgrade CE -- $RSPEC_REPORT_OPTS
432
- extends:
433
- - .rules:only-qa-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-specified
434
- - .test
435
- - .high-capacity
436
- - .rspec-report-opts
437
- parallel: 5
438
-
439
- ce:upgrade:
440
- script:
441
- - bundle exec exe/gitlab-qa Test::Omnibus::Upgrade CE -- $RSPEC_REPORT_OPTS
442
- extends:
443
- - .rules:only-qa-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-not-specified
444
- - .test
445
- - .high-capacity
446
- - .rspec-report-opts
447
-
448
- ce:upgrade-quarantine:
449
- script:
450
- - bundle exec exe/gitlab-qa Test::Omnibus::Upgrade CE -- --tag quarantine --tag ~orchestrated $RSPEC_REPORT_OPTS
451
- extends:
452
- - .rules:only-qa-never-when-triggered-by-feature-flag-definition-change
453
- - .test
454
- - .high-capacity
455
- - .quarantine
456
- - .rspec-report-opts
457
-
458
- ee-previous-to-ce:update:
459
- script:
460
- - bundle exec exe/gitlab-qa Test::Omnibus::Update EE CE -- $RSPEC_REPORT_OPTS
461
- extends:
462
- - .rules:only-qa-never-when-triggered-by-feature-flag-definition-change
463
- - .test
464
- - .high-capacity
465
- - .rspec-report-opts
466
-
467
- ee-previous-to-ce:update-quarantine:
468
- script:
469
- - bundle exec exe/gitlab-qa Test::Omnibus::Update EE CE -- --tag quarantine --tag ~orchestrated $RSPEC_REPORT_OPTS
470
- extends:
471
- - .rules:only-qa-never-when-triggered-by-feature-flag-definition-change
472
- - .test
473
- - .high-capacity
474
- - .quarantine
475
- - .rspec-report-opts
476
-
477
- ce:mattermost:
478
- extends:
479
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
480
- - .test
481
- - .high-capacity
482
- - .ce-variables
483
- - .rspec-report-opts
484
- variables:
485
- QA_SCENARIO: "Test::Integration::Mattermost"
486
-
487
- ce:mattermost-quarantine:
488
- extends:
489
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
490
- - .test
491
- - .high-capacity
492
- - .ce-variables
493
- - .quarantine
494
- - .rspec-report-opts
495
- variables:
496
- QA_SCENARIO: "Test::Integration::Mattermost"
497
-
498
- ee:mattermost:
499
- extends:
500
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
501
- - .test
502
- - .high-capacity
503
- - .ee-variables
504
- - .rspec-report-opts
505
- variables:
506
- QA_SCENARIO: "Test::Integration::Mattermost"
507
-
508
- ee:mattermost-quarantine:
509
- extends:
510
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
511
- - .test
512
- - .high-capacity
513
- - .ee-variables
514
- - .quarantine
515
- - .rspec-report-opts
516
- variables:
517
- QA_SCENARIO: "Test::Integration::Mattermost"
518
-
519
- ce:service_ping_disabled:
520
- extends:
521
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
522
- - .test
523
- - .high-capacity
524
- - .ce-variables
525
- - .rspec-report-opts
526
- variables:
527
- QA_SCENARIO: "Test::Integration::ServicePingDisabled"
528
-
529
- ee:service_ping_disabled:
530
- extends:
531
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
532
- - .test
533
- - .high-capacity
534
- - .ee-variables
535
- - .rspec-report-opts
536
- variables:
537
- QA_SCENARIO: "Test::Integration::ServicePingDisabled"
538
-
539
- # Disabling geo jobs temporarily due to https://gitlab.com/gitlab-org/quality/team-tasks/-/issues/774
540
- # ee:geo:
541
- # extends:
542
- # - .test
543
- # - .ee-variables
544
- # - .rules:ee-never-when-triggered-by-feature-flag-definition-change
545
- # - .rspec-report-opts
546
- # variables:
547
- # QA_SCENARIO: "Test::Integration::Geo"
548
-
549
- # ee:geo-quarantine:
550
- # extends:
551
- # - .test
552
- # - .ee-variables
553
- # - .rules:ee-never-when-triggered-by-feature-flag-definition-change
554
- # - .quarantine
555
- # - .rspec-report-opts
556
- # variables:
557
- # QA_SCENARIO: "Test::Integration::Geo"
558
-
559
- ce:ldap_no_tls:
560
- extends:
561
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
562
- - .test
563
- - .high-capacity
564
- - .ce-variables
565
- - .rspec-report-opts
566
- variables:
567
- QA_SCENARIO: "Test::Integration::LDAPNoTLS"
568
-
569
- ce:ldap_no_tls-quarantine:
570
- extends:
571
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
572
- - .test
573
- - .high-capacity
574
- - .ce-variables
575
- - .quarantine
576
- - .rspec-report-opts
577
- variables:
578
- QA_SCENARIO: "Test::Integration::LDAPNoTLS"
579
-
580
- ee:ldap_no_tls:
581
- extends:
582
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
583
- - .test
584
- - .high-capacity
585
- - .ee-variables
586
- - .rspec-report-opts
587
- variables:
588
- QA_SCENARIO: "Test::Integration::LDAPNoTLS"
589
-
590
- ee:ldap_no_tls-quarantine:
591
- extends:
592
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
593
- - .test
594
- - .high-capacity
595
- - .ee-variables
596
- - .quarantine
597
- - .rspec-report-opts
598
- variables:
599
- QA_SCENARIO: "Test::Integration::LDAPNoTLS"
600
-
601
- ce:ldap_tls:
602
- extends:
603
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
604
- - .test
605
- - .high-capacity
606
- - .ce-variables
607
- - .rspec-report-opts
608
- variables:
609
- QA_SCENARIO: "Test::Integration::LDAPTLS"
610
-
611
- ce:ldap_tls-quarantine:
612
- extends:
613
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
614
- - .test
615
- - .high-capacity
616
- - .ce-variables
617
- - .quarantine
618
- - .rspec-report-opts
619
- variables:
620
- QA_SCENARIO: "Test::Integration::LDAPTLS"
621
-
622
- ee:ldap_tls:
623
- extends:
624
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
625
- - .test
626
- - .high-capacity
627
- - .ee-variables
628
- - .rspec-report-opts
629
- variables:
630
- QA_SCENARIO: "Test::Integration::LDAPTLS"
631
-
632
- ee:ldap_tls-quarantine:
633
- extends:
634
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
635
- - .test
636
- - .high-capacity
637
- - .ee-variables
638
- - .quarantine
639
- - .rspec-report-opts
640
- variables:
641
- QA_SCENARIO: "Test::Integration::LDAPTLS"
642
-
643
- ee:ldap_no_server:
644
- extends:
645
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
646
- - .test
647
- - .high-capacity
648
- - .ee-variables
649
- - .rspec-report-opts
650
- variables:
651
- QA_SCENARIO: "Test::Integration::LDAPNoServer"
652
-
653
- ee:ldap_no_server-quarantine:
654
- extends:
655
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
656
- - .test
657
- - .high-capacity
658
- - .ee-variables
659
- - .quarantine
660
- - .rspec-report-opts
661
- variables:
662
- QA_SCENARIO: "Test::Integration::LDAPNoServer"
663
-
664
- ce:instance_saml:
665
- extends:
666
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
667
- - .test
668
- - .high-capacity
669
- - .ce-variables
670
- - .rspec-report-opts
671
- variables:
672
- QA_SCENARIO: "Test::Integration::InstanceSAML"
673
-
674
- ce:instance_saml-quarantine:
675
- extends:
676
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
677
- - .test
678
- - .high-capacity
679
- - .ce-variables
680
- - .quarantine
681
- - .rspec-report-opts
682
- variables:
683
- QA_SCENARIO: "Test::Integration::InstanceSAML"
684
-
685
- ee:instance_saml:
686
- extends:
687
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
688
- - .test
689
- - .high-capacity
690
- - .ee-variables
691
- - .rspec-report-opts
692
- variables:
693
- QA_SCENARIO: "Test::Integration::InstanceSAML"
694
-
695
- ee:instance_saml-quarantine:
696
- extends:
697
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
698
- - .test
699
- - .high-capacity
700
- - .ee-variables
701
- - .quarantine
702
- - .rspec-report-opts
703
- variables:
704
- QA_SCENARIO: "Test::Integration::InstanceSAML"
705
-
706
- ee:group_saml:
707
- extends:
708
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
709
- - .test
710
- - .high-capacity
711
- - .ee-variables
712
- - .rspec-report-opts
713
- variables:
714
- QA_SCENARIO: "Test::Integration::GroupSAML"
715
-
716
- ee:group_saml-quarantine:
717
- extends:
718
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
719
- - .test
720
- - .high-capacity
721
- - .ee-variables
722
- - .quarantine
723
- - .rspec-report-opts
724
- variables:
725
- QA_SCENARIO: "Test::Integration::GroupSAML"
726
-
727
- ce:object_storage:
728
- extends:
729
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
730
- - .test
731
- - .high-capacity
732
- - .ce-variables
733
- - .rspec-report-opts
734
- - .combined-gitlab-qa-options-script
735
- variables:
736
- GITLAB_QA_OPTIONS_COMBINED: "$GITLAB_QA_OPTIONS --omnibus-config object_storage"
737
-
738
- ce:object_storage-quarantine:
739
- extends:
740
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
741
- - .test
742
- - .high-capacity
743
- - .ce-variables
744
- - .quarantine
745
- - .rspec-report-opts
746
- - .combined-gitlab-qa-options-script
747
- variables:
748
- GITLAB_QA_OPTIONS_COMBINED: "$GITLAB_QA_OPTIONS --omnibus-config object_storage"
749
-
750
- ee:object_storage_aws:
751
- extends:
752
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
753
- - .test
754
- - .high-capacity
755
- - .ee-variables
756
- - .rspec-report-opts
757
- - .combined-gitlab-qa-options-script
758
- variables:
759
- GITLAB_QA_OPTIONS_COMBINED: "$GITLAB_QA_OPTIONS --omnibus-config object_storage_aws"
760
- QA_RSPEC_TAGS: "--tag object_storage"
761
-
762
- ee:object_storage_aws-quarantine:
763
- extends:
764
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
765
- - .test
766
- - .high-capacity
767
- - .ee-variables
768
- - .quarantine
769
- - .rspec-report-opts
770
- - .combined-gitlab-qa-options-script
771
- variables:
772
- GITLAB_QA_OPTIONS_COMBINED: "$GITLAB_QA_OPTIONS --omnibus-config object_storage_aws"
773
- QA_RSPEC_TAGS: "--tag quarantine --tag object_storage"
774
-
775
- ee:object_storage_gcs:
776
- extends:
777
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
778
- - .test
779
- - .high-capacity
780
- - .ee-variables
781
- - .rspec-report-opts
782
- variables:
783
- GITLAB_QA_OPTS: "--omnibus-config object_storage_gcs"
784
- QA_RSPEC_TAGS: "--tag object_storage"
785
-
786
- ee:object_storage_gcs-quarantine:
787
- extends:
788
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
789
- - .test
790
- - .high-capacity
791
- - .ee-variables
792
- - .quarantine
793
- - .rspec-report-opts
794
- variables:
795
- GITLAB_QA_OPTS: "--omnibus-config object_storage_gcs"
796
- QA_RSPEC_TAGS: "--tag quarantine --tag object_storage"
797
-
798
- ee:object_storage:
799
- extends:
800
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
801
- - .test
802
- - .high-capacity
803
- - .ee-variables
804
- - .rspec-report-opts
805
- - .combined-gitlab-qa-options-script
806
- variables:
807
- GITLAB_QA_OPTIONS_COMBINED: "$GITLAB_QA_OPTIONS --omnibus-config object_storage"
808
- QA_RSPEC_TAGS: "--tag object_storage"
809
-
810
- ee:object_storage-quarantine:
811
- extends:
812
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
813
- - .test
814
- - .high-capacity
815
- - .ee-variables
816
- - .quarantine
817
- - .rspec-report-opts
818
- - .combined-gitlab-qa-options-script
819
- variables:
820
- GITLAB_QA_OPTIONS_COMBINED: "$GITLAB_QA_OPTIONS --omnibus-config object_storage"
821
- QA_RSPEC_TAGS: "--tag quarantine --tag object_storage"
822
-
823
- ee:packages-parallel:
824
- extends:
825
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
826
- - .test
827
- - .high-capacity
828
- - .ee-variables
829
- - .rspec-report-opts
830
- - .combined-gitlab-qa-options-script
831
- parallel: 2
832
- variables:
833
- GITLAB_QA_OPTIONS_COMBINED: "$GITLAB_QA_OPTIONS --omnibus-config packages"
834
- QA_RSPEC_TAGS: "--tag packages"
835
-
836
- ee:packages-quarantine:
837
- extends:
838
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
839
- - .test
840
- - .high-capacity
841
- - .ee-variables
842
- - .quarantine
843
- - .rspec-report-opts
844
- - .combined-gitlab-qa-options-script
845
- variables:
846
- GITLAB_QA_OPTIONS_COMBINED: "$GITLAB_QA_OPTIONS --omnibus-config packages"
847
- QA_RSPEC_TAGS: "--tag quarantine --tag packages"
848
-
849
- ce:object_storage_registry_tls:
850
- extends:
851
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
852
- - .test
853
- - .high-capacity
854
- - .ce-variables
855
- - .rspec-report-opts
856
- variables:
857
- QA_SCENARIO: "Test::Integration::RegistryTLS --omnibus-config registry_object_storage"
858
-
859
- ce:object_storage_registry_tls-quarantine:
860
- extends:
861
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
862
- - .test
863
- - .high-capacity
864
- - .ce-variables
865
- - .quarantine
866
- - .rspec-report-opts
867
- variables:
868
- QA_SCENARIO: "Test::Integration::RegistryTLS --omnibus-config registry_object_storage"
869
-
870
- ee:object_storage_registry_tls:
871
- extends:
872
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
873
- - .test
874
- - .ee-variables
875
- - .high-capacity
876
- - .rspec-report-opts
877
- variables:
878
- QA_SCENARIO: "Test::Integration::RegistryTLS --omnibus-config registry_object_storage"
879
-
880
- ee:object_storage_registry_tls-quarantine:
881
- extends:
882
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
883
- - .test
884
- - .high-capacity
885
- - .ee-variables
886
- - .quarantine
887
- - .rspec-report-opts
888
- variables:
889
- QA_SCENARIO: "Test::Integration::RegistryTLS --omnibus-config registry_object_storage"
890
-
891
- ce:registry:
892
- extends:
893
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
894
- - .test
895
- - .high-capacity
896
- - .ce-variables
897
- - .rspec-report-opts
898
- variables:
899
- QA_SCENARIO: "Test::Integration::Registry"
900
-
901
- ce:registry-quarantine:
902
- extends:
903
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
904
- - .test
905
- - .high-capacity
906
- - .ce-variables
907
- - .quarantine
908
- - .rspec-report-opts
909
- variables:
910
- QA_SCENARIO: "Test::Integration::Registry"
911
-
912
- ee:registry:
913
- extends:
914
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
915
- - .test
916
- - .high-capacity
917
- - .ee-variables
918
- - .rspec-report-opts
919
- variables:
920
- QA_SCENARIO: "Test::Integration::Registry"
921
-
922
- ee:registry-quarantine:
923
- extends:
924
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
925
- - .test
926
- - .high-capacity
927
- - .ee-variables
928
- - .quarantine
929
- - .rspec-report-opts
930
- variables:
931
- QA_SCENARIO: "Test::Integration::Registry"
932
-
933
- ce:actioncable:
934
- extends:
935
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
936
- - .test
937
- - .high-capacity
938
- - .ce-variables
939
- - .rspec-report-opts
940
- variables:
941
- QA_SCENARIO: "Test::Integration::Actioncable"
942
-
943
- ce:actioncable-quarantine:
944
- extends:
945
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
946
- - .test
947
- - .high-capacity
948
- - .ce-variables
949
- - .quarantine
950
- - .rspec-report-opts
951
- variables:
952
- QA_SCENARIO: "Test::Integration::Actioncable"
953
-
954
- ee:actioncable:
955
- extends:
956
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
957
- - .test
958
- - .high-capacity
959
- - .ee-variables
960
- - .rspec-report-opts
961
- variables:
962
- QA_SCENARIO: "Test::Integration::Actioncable"
963
-
964
- ee:actioncable-quarantine:
965
- extends:
966
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
967
- - .test
968
- - .high-capacity
969
- - .ee-variables
970
- - .quarantine
971
- - .rspec-report-opts
972
- variables:
973
- QA_SCENARIO: "Test::Integration::Actioncable"
974
-
975
- ee:elasticsearch:
976
- extends:
977
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
978
- - .test
979
- - .high-capacity
980
- - .ee-variables
981
- - .rspec-report-opts
982
- variables:
983
- QA_SCENARIO: "Test::Integration::Elasticsearch"
984
-
985
- ee:elasticsearch-quarantine:
986
- extends:
987
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
988
- - .test
989
- - .high-capacity
990
- - .ee-variables
991
- - .quarantine
992
- - .rspec-report-opts
993
- variables:
994
- QA_SCENARIO: "Test::Integration::Elasticsearch"
995
-
996
- ce:praefect-parallel:
997
- extends:
998
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-specified
999
- - .test
1000
- - .high-capacity
1001
- - .ce-variables
1002
- - .rspec-report-opts
1003
- parallel: 5
1004
- variables:
1005
- QA_SCENARIO: "Test::Integration::Praefect"
1006
- QA_CAN_TEST_PRAEFECT: "true"
1007
-
1008
- ce:praefect:
1009
- extends:
1010
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-not-specified
1011
- - .test
1012
- - .high-capacity
1013
- - .ce-variables
1014
- - .rspec-report-opts
1015
- variables:
1016
- QA_SCENARIO: "Test::Integration::Praefect"
1017
- QA_CAN_TEST_PRAEFECT: "true"
1018
-
1019
- ce:praefect-quarantine:
1020
- extends:
1021
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
1022
- - .test
1023
- - .high-capacity
1024
- - .ce-variables
1025
- - .quarantine
1026
- - .rspec-report-opts
1027
- variables:
1028
- QA_SCENARIO: "Test::Integration::Praefect"
1029
- QA_CAN_TEST_PRAEFECT: "true"
1030
- QA_RSPEC_TAGS: "--tag quarantine --tag ~orchestrated"
1031
-
1032
- ee:praefect-parallel:
1033
- extends:
1034
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-specified
1035
- - .test
1036
- - .high-capacity
1037
- - .ee-variables
1038
- - .rspec-report-opts
1039
- parallel: 10
1040
- variables:
1041
- QA_SCENARIO: "Test::Integration::Praefect"
1042
- QA_CAN_TEST_PRAEFECT: "true"
1043
-
1044
- ee:praefect:
1045
- extends:
1046
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-not-specified
1047
- - .test
1048
- - .high-capacity
1049
- - .ee-variables
1050
- - .rspec-report-opts
1051
- variables:
1052
- QA_SCENARIO: "Test::Integration::Praefect"
1053
- QA_CAN_TEST_PRAEFECT: "true"
1054
-
1055
- ee:praefect-quarantine:
1056
- extends:
1057
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
1058
- - .test
1059
- - .high-capacity
1060
- - .ee-variables
1061
- - .quarantine
1062
- - .rspec-report-opts
1063
- variables:
1064
- QA_SCENARIO: "Test::Integration::Praefect"
1065
- QA_CAN_TEST_PRAEFECT: "true"
1066
- QA_RSPEC_TAGS: "--tag quarantine --tag ~orchestrated"
1067
-
1068
- ce:gitaly-cluster:
1069
- extends:
1070
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
1071
- - .test
1072
- - .high-capacity
1073
- - .ce-variables
1074
- - .rspec-report-opts
1075
- variables:
1076
- QA_SCENARIO: "Test::Integration::GitalyCluster"
1077
- QA_LOG_PATH: "tmp/gitaly_cluster.log"
1078
-
1079
- ce:gitaly-cluster-quarantine:
1080
- extends:
1081
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
1082
- - .test
1083
- - .high-capacity
1084
- - .ce-variables
1085
- - .quarantine
1086
- - .rspec-report-opts
1087
- variables:
1088
- QA_SCENARIO: "Test::Integration::GitalyCluster"
1089
- QA_LOG_PATH: "tmp/gitaly_cluster.log"
1090
-
1091
- ee:gitaly-cluster:
1092
- extends:
1093
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
1094
- - .test
1095
- - .high-capacity
1096
- - .ee-variables
1097
- - .rspec-report-opts
1098
- variables:
1099
- QA_SCENARIO: "Test::Integration::GitalyCluster"
1100
- QA_LOG_PATH: "tmp/gitaly_cluster.log"
1101
-
1102
- ee:gitaly-cluster-quarantine:
1103
- extends:
1104
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
1105
- - .test
1106
- - .high-capacity
1107
- - .ee-variables
1108
- - .quarantine
1109
- - .rspec-report-opts
1110
- variables:
1111
- QA_SCENARIO: "Test::Integration::GitalyCluster"
1112
- QA_LOG_PATH: "tmp/gitaly_cluster.log"
1113
-
1114
- ce:mtls:
1115
- extends:
1116
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
1117
- - .test
1118
- - .ce-variables
1119
- - .rspec-report-opts
1120
- variables:
1121
- QA_SCENARIO: "Test::Integration::MTLS"
1122
-
1123
- ee:mtls:
1124
- extends:
1125
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
1126
- - .test
1127
- - .ee-variables
1128
- - .rspec-report-opts
1129
- variables:
1130
- QA_SCENARIO: "Test::Integration::MTLS"
1131
-
1132
- ce:smtp:
1133
- extends:
1134
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
1135
- - .test
1136
- - .high-capacity
1137
- - .ce-variables
1138
- - .rspec-report-opts
1139
- variables:
1140
- QA_SCENARIO: "Test::Integration::SMTP"
1141
-
1142
- ee:smtp:
1143
- extends:
1144
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
1145
- - .test
1146
- - .high-capacity
1147
- - .ee-variables
1148
- - .rspec-report-opts
1149
- variables:
1150
- QA_SCENARIO: "Test::Integration::SMTP"
1151
-
1152
- ce:jira:
1153
- extends:
1154
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
1155
- - .test
1156
- - .high-capacity
1157
- - .ce-variables
1158
- - .rspec-report-opts
1159
- variables:
1160
- QA_SCENARIO: "Test::Integration::Jira"
1161
-
1162
- ce:jira-quarantine:
1163
- extends:
1164
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
1165
- - .test
1166
- - .high-capacity
1167
- - .ce-variables
1168
- - .quarantine
1169
- - .rspec-report-opts
1170
- variables:
1171
- QA_SCENARIO: "Test::Integration::Jira"
1172
-
1173
- ee:jira:
1174
- extends:
1175
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
1176
- - .test
1177
- - .high-capacity
1178
- - .ee-variables
1179
- - .rspec-report-opts
1180
- variables:
1181
- QA_SCENARIO: "Test::Integration::Jira"
1182
-
1183
- ee:jira-quarantine:
1184
- extends:
1185
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
1186
- - .test
1187
- - .high-capacity
1188
- - .ee-variables
1189
- - .quarantine
1190
- - .rspec-report-opts
1191
- variables:
1192
- QA_SCENARIO: "Test::Integration::Jira"
1193
-
1194
- ce:integrations:
1195
- extends:
1196
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
1197
- - .test
1198
- - .high-capacity
1199
- - .ce-variables
1200
- - .rspec-report-opts
1201
- variables:
1202
- QA_SCENARIO: "Test::Integration::Integrations"
1203
-
1204
- ce:integrations-quarantine:
1205
- extends:
1206
- - ce:integrations
1207
- - .quarantine
1208
-
1209
- ce:large-setup:
1210
- extends:
1211
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
1212
- - .test
1213
- - .high-capacity
1214
- - .ce-variables
1215
- - .rspec-report-opts
1216
- variables:
1217
- QA_RSPEC_TAGS: "--tag can_use_large_setup"
1218
-
1219
- ee:large-setup:
1220
- extends:
1221
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
1222
- - .test
1223
- - .high-capacity
1224
- - .ee-variables
1225
- - .rspec-report-opts
1226
- variables:
1227
- QA_RSPEC_TAGS: "--tag can_use_large_setup"
1228
-
1229
- ee:cloud-activation:
74
+ needs:
75
+ - prepare
1230
76
  before_script:
1231
- - unset EE_LICENSE
1232
- - !reference [default, before_script]
1233
- extends:
1234
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
1235
- - .test
1236
- - .high-capacity
1237
- - .ee-variables
1238
- - .rspec-report-opts
1239
- variables:
1240
- QA_RSPEC_TAGS: "--tag cloud_activation"
1241
-
1242
- ee:cloud-activation-quarantine:
1243
- before_script:
1244
- - unset EE_LICENSE
1245
- - !reference [default, before_script]
1246
- extends:
1247
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
1248
- - .test
1249
- - .high-capacity
1250
- - .ee-variables
1251
- - .quarantine
1252
- - .rspec-report-opts
1253
- variables:
1254
- QA_RSPEC_TAGS: "--tag cloud_activation"
1255
-
1256
- # This job requires the `GITLAB_QA_ACCESS_TOKEN` and `GITLAB_QA_DEV_ACCESS_TOKEN`
1257
- # variable to be passed when triggered.
1258
- staging:
1259
- script:
1260
- - unset EE_LICENSE
1261
- - 'echo "Running: bundle exec exe/gitlab-qa Test::Instance::Staging ${RELEASE:=$DEFAULT_RELEASE} -- $QA_TESTS $QA_RSPEC_TAGS"'
1262
- - bundle exec exe/gitlab-qa Test::Instance::Staging ${RELEASE:=$DEFAULT_RELEASE} -- $QA_TESTS $QA_RSPEC_TAGS
1263
- extends:
1264
- - .rules:only-qa-never-when-triggered-by-feature-flag-definition-change
1265
- - .test
1266
- - .high-capacity
1267
- allow_failure: true
1268
-
1269
- generate_test_session:
1270
- stage: report
1271
- rules:
1272
- - if: '$TOP_UPSTREAM_SOURCE_JOB && $TOP_UPSTREAM_SOURCE_REF == $TOP_UPSTREAM_DEFAULT_BRANCH'
1273
- when: always
1274
- - if: '$TOP_UPSTREAM_SOURCE_JOB =~ /\Ahttps:\/\/ops.gitlab.net\//'
1275
- when: always
77
+ - cd /home/gitlab/qa
78
+ script:
79
+ # Generate count example files
80
+ - bundle exec bin/qa Test::Instance::All http://dummy.test --count-examples-only -- $QA_TESTS
81
+ - bundle exec bin/qa Test::Integration::Mattermost http://dummy.test --mattermost-address http://mattermost.test --count-examples-only -- $QA_TESTS
82
+ - bundle exec bin/qa Test::Integration::ServicePingDisabled http://dummy.test --count-examples-only -- $QA_TESTS
83
+ - bundle exec bin/qa QA::EE::Scenario::Test::Geo --count-examples-only --primary-address http://dummy1.test --primary-name gitlab-primary --secondary-address http://dummy2.test --secondary-name gitlab-secondary --without-setup
84
+ - bundle exec bin/qa Test::Integration::LDAPNoTLS http://dummy.test --count-examples-only -- $QA_TESTS
85
+ - bundle exec bin/qa Test::Integration::LDAPTLS http://dummy.test --count-examples-only -- $QA_TESTS
86
+ - bundle exec bin/qa Test::Integration::LDAPNoServer http://dummy.test --count-examples-only -- $QA_TESTS
87
+ - bundle exec bin/qa Test::Integration::InstanceSAML http://dummy.test --count-examples-only -- $QA_TESTS
88
+ - bundle exec bin/qa QA::EE::Scenario::Test::Integration::GroupSAML http://dummy.test --count-examples-only -- $QA_TESTS
89
+ - bundle exec bin/qa Test::Integration::RegistryTLS http://dummy.test --count-examples-only -- $QA_TESTS
90
+ - bundle exec bin/qa Test::Integration::Registry http://dummy.test --count-examples-only -- $QA_TESTS
91
+ - bundle exec bin/qa QA::EE::Scenario::Test::Integration::Elasticsearch http://dummy.test --count-examples-only -- $QA_TESTS
92
+ - bundle exec bin/qa Test::Integration::SMTP http://dummy.test --count-examples-only -- $QA_TESTS
93
+ - bundle exec bin/qa Test::Integration::RegistryWithCDN http://dummy.test --count-examples-only -- $QA_TESTS
94
+ - bundle exec bin/qa Test::Instance::All http://dummy.test --count-examples-only -- $QA_TESTS --tag repository_storage
95
+ - bundle exec bin/qa Test::Instance::All http://dummy.test --count-examples-only -- $QA_TESTS --tag packages
96
+ - bundle exec bin/qa Test::Instance::All http://dummy.test --count-examples-only -- $QA_TESTS --tag integrations
97
+ - bundle exec bin/qa Test::Instance::All http://dummy.test --count-examples-only -- $QA_TESTS --tag actioncable
98
+ - bundle exec bin/qa Test::Instance::All http://dummy.test --count-examples-only -- $QA_TESTS --tag mtls
99
+ - bundle exec bin/qa Test::Instance::All http://dummy.test --count-examples-only -- $QA_TESTS --tag jira
100
+ - bundle exec bin/qa Test::Instance::All http://dummy.test --count-examples-only -- $QA_TESTS --tag can_use_large_setup
101
+ - bundle exec bin/qa Test::Instance::All http://dummy.test --count-examples-only -- $QA_TESTS --tag cloud_activation
102
+ - bundle exec bin/qa Test::Instance::All http://dummy.test --count-examples-only -- $QA_TESTS --tag object_storage
103
+ - cp -r no_of_examples $CI_PROJECT_DIR
104
+
105
+ # TOP_UPSTREAM_DEFAULT_BRANCH is the default branch name of the original project that triggered a pipeline in this project.
106
+ - 'export TOP_UPSTREAM_DEFAULT_BRANCH=${TOP_UPSTREAM_DEFAULT_BRANCH:=master} && echo "TOP_UPSTREAM_DEFAULT_BRANCH=$TOP_UPSTREAM_DEFAULT_BRANCH" >> variables.env'
107
+ - 'echo "RELEASE=$RELEASE" >> variables.env'
108
+ - 'echo "GITLAB_QA_OPTIONS=$GITLAB_QA_OPTIONS" >> variables.env'
109
+ - 'echo "QA_TESTS=$QA_TESTS" >> variables.env'
110
+ - 'echo "KNAPSACK_GENERATE_REPORT=$KNAPSACK_GENERATE_REPORT" >> variables.env'
111
+ - 'echo "TOP_UPSTREAM_SOURCE_JOB=$TOP_UPSTREAM_SOURCE_JOB" >> variables.env'
112
+ - 'echo "TOP_UPSTREAM_SOURCE_REF=$TOP_UPSTREAM_SOURCE_REF" >> variables.env'
113
+ - 'echo "DISABLE_RELATING_FAILURE_ISSUES=$DISABLE_RELATING_FAILURE_ISSUES" >> variables.env'
114
+ - 'echo "TOP_UPSTREAM_SOURCE_PROJECT=$TOP_UPSTREAM_SOURCE_PROJECT" >> variables.env'
115
+ - 'echo "TOP_UPSTREAM_SOURCE_SHA=$TOP_UPSTREAM_SOURCE_SHA" >> variables.env'
116
+ - 'echo "NOTIFY_CHANNEL=$NOTIFY_CHANNEL" >> variables.env'
117
+ - 'echo "QA_IMAGE=$QA_IMAGE" >> variables.env'
118
+ - 'echo "EE_LICENSE=$EE_LICENSE" >> variables.env'
119
+ - 'echo "TOP_UPSTREAM_MERGE_REQUEST_IID=$TOP_UPSTREAM_MERGE_REQUEST_IID" >> variables.env'
120
+ - 'echo "ALLURE_JOB_NAME=$ALLURE_JOB_NAME" >> variables.env'
121
+ - mv variables.env $CI_PROJECT_DIR
122
+
123
+ - cd $CI_PROJECT_DIR
124
+ - ./scripts/generate-qa-jobs.rb
125
+ - cat generated-qa-jobs.yml
1276
126
  artifacts:
1277
- when: always
1278
- expire_in: 10d
127
+ reports:
128
+ dotenv: variables.env
1279
129
  paths:
1280
- - REPORT_ISSUE_URL
1281
- script:
1282
- - export GITLAB_QA_ACCESS_TOKEN="$GITLAB_QA_PRODUCTION_ACCESS_TOKEN"
1283
- - bundle exec exe/gitlab-qa-report --generate-test-session "gitlab-qa-run-*/**/rspec-*.json" --project "$QA_TESTCASE_SESSIONS_PROJECT"
1284
-
1285
- relate_test_failures:
1286
- stage: report
1287
- rules:
1288
- - if: '$DISABLE_RELATING_FAILURE_ISSUES'
1289
- when: never
1290
- - if: '$TOP_UPSTREAM_SOURCE_JOB && $TOP_UPSTREAM_SOURCE_REF == $TOP_UPSTREAM_DEFAULT_BRANCH'
1291
- when: always
1292
- - if: '$TOP_UPSTREAM_SOURCE_JOB =~ /\Ahttps:\/\/ops.gitlab.net\//'
1293
- when: always
1294
- variables:
1295
- QA_FAILURES_REPORTING_PROJECT: "gitlab-org/gitlab"
1296
- QA_FAILURES_MAX_DIFF_RATIO: "0.15"
1297
- # The --dry-run can be set to modify the behavior of `exe/gitlab-qa-report --relate-failure-issue` without releasing a new gem version.
1298
- QA_FAILURES_REPORTER_OPTIONS: ""
1299
- script:
1300
- - export GITLAB_QA_ACCESS_TOKEN="$GITLAB_QA_PRODUCTION_ACCESS_TOKEN"
1301
- - 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
1302
-
1303
- .notify_upstream_commit:
1304
- stage: notify
1305
- image: ruby:3.0-alpine
1306
- before_script:
1307
- - gem install gitlab --no-document
1308
-
1309
- notify_upstream_commit:success:
1310
- extends: .notify_upstream_commit
1311
- script:
1312
- - bin/notify_upstream_commit success
1313
- rules:
1314
- - if: '$TOP_UPSTREAM_SOURCE_PROJECT && $TOP_UPSTREAM_SOURCE_SHA'
1315
- when: on_success
1316
-
1317
- notify_upstream_commit:failure:
1318
- extends: .notify_upstream_commit
1319
- script:
1320
- - bin/notify_upstream_commit failure
1321
- rules:
1322
- - if: '$TOP_UPSTREAM_SOURCE_PROJECT && $TOP_UPSTREAM_SOURCE_SHA'
1323
- when: on_failure
1324
-
1325
- .notify_slack:
1326
- image: alpine
1327
- stage: notify
1328
- dependencies: ['generate_test_session']
1329
- cache: {}
1330
- before_script:
1331
- - apk update && apk add git curl bash
1332
-
1333
- notify_slack:
1334
- extends:
1335
- - .notify_slack
1336
- rules:
1337
- - if: '$TOP_UPSTREAM_SOURCE_JOB && $NOTIFY_CHANNEL'
1338
- when: on_failure
1339
- - if: '$TOP_UPSTREAM_SOURCE_JOB && $TOP_UPSTREAM_SOURCE_REF == $TOP_UPSTREAM_DEFAULT_BRANCH'
1340
- when: on_failure
1341
- script:
1342
- - export RELEASE=${TOP_UPSTREAM_SOURCE_REF:-$RELEASE}
1343
- - echo "NOTIFY_CHANNEL is ${NOTIFY_CHANNEL:=qa-$TOP_UPSTREAM_SOURCE_REF}"
1344
- - echo "RELEASE is ${RELEASE}"
1345
- - echo "CI_PIPELINE_URL is $CI_PIPELINE_URL"
1346
- - echo "TOP_UPSTREAM_SOURCE_JOB is $TOP_UPSTREAM_SOURCE_JOB"
1347
- - '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'
1348
-
1349
- generate-allure-report:
1350
- extends: .generate-allure-report-base
1351
- stage: report
1352
- variables:
1353
- STORAGE_CREDENTIALS: $QA_ALLURE_REPORT_GCS_CREDENTIALS
1354
- GITLAB_AUTH_TOKEN: $GITLAB_QA_MR_ALLURE_REPORT_TOKEN
1355
- ALLURE_RESULTS_GLOB: gitlab-qa-run-*/**/allure-results/*
1356
- # Override allure variables for upstream triggers
1357
- ALLURE_PROJECT_PATH: $TOP_UPSTREAM_SOURCE_PROJECT
1358
- ALLURE_MERGE_REQUEST_IID: $TOP_UPSTREAM_MERGE_REQUEST_IID
1359
- ALLURE_COMMIT_SHA: $TOP_UPSTREAM_SOURCE_SHA
1360
- # Override default before script and don't push cache
1361
- cache:
1362
- policy: pull
1363
- before_script:
1364
- - export ALLURE_JOB_NAME="${ALLURE_JOB_NAME:-package-and-qa}"
1365
- rules:
1366
- # Don't run report generation on release pipelines
1367
- - if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_PATH == "gitlab-org/gitlab-qa" && $RELEASE == null'
1368
- changes: ["lib/**/version.rb"]
1369
- when: never
1370
- - if: '$CI_COMMIT_TAG'
1371
- when: never
1372
- - if: '$CI_PIPELINE_SOURCE == "merge_request_event" || ($CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH)'
1373
- variables:
1374
- ALLURE_JOB_NAME: gitlab-qa
1375
- when: always
1376
- - if: '$TOP_UPSTREAM_SOURCE_PROJECT && $TOP_UPSTREAM_SOURCE_SHA'
1377
- when: always
1378
-
1379
- generate-knapsack-report:
1380
- extends: .generate-knapsack-report-base
1381
- image:
1382
- name: ${QA_IMAGE}
1383
- stage: report
130
+ - generated-qa-jobs.yml
131
+ - variables.env
132
+ - no_of_examples
133
+ expire_in: 2 days
134
+
135
+ trigger-generated-jobs:
136
+ stage: triggers
137
+ extends: .rules:never-on-version-change-or-tag
138
+ needs: [ generate-jobs ]
139
+ variables:
140
+ # Variables used in rules also need to be passed down using the `variables` section in addition to dotenv file
141
+ # due to this bug: https://gitlab.com/gitlab-org/gitlab/-/issues/352828. For other variables, duplicate declaration here is needed
142
+ # as well due to not using `needs` and `artifacts: true` in child pipelines.
143
+ RELEASE: $RELEASE
144
+ GITLAB_QA_OPTIONS: $GITLAB_QA_OPTIONS
145
+ QA_TESTS: $QA_TESTS
146
+ KNAPSACK_GENERATE_REPORT: $KNAPSACK_GENERATE_REPORT
147
+ TOP_UPSTREAM_SOURCE_JOB: $TOP_UPSTREAM_SOURCE_JOB
148
+ TOP_UPSTREAM_SOURCE_REF: $TOP_UPSTREAM_SOURCE_REF
149
+ TOP_UPSTREAM_DEFAULT_BRANCH: $TOP_UPSTREAM_DEFAULT_BRANCH
150
+ DISABLE_RELATING_FAILURE_ISSUES: $DISABLE_RELATING_FAILURE_ISSUES
151
+ TOP_UPSTREAM_SOURCE_PROJECT: $TOP_UPSTREAM_SOURCE_PROJECT
152
+ TOP_UPSTREAM_SOURCE_SHA: $TOP_UPSTREAM_SOURCE_SHA
153
+ NOTIFY_CHANNEL: $NOTIFY_CHANNEL
154
+ QA_IMAGE: $QA_IMAGE
155
+ EE_LICENSE: $EE_LICENSE
156
+ TOP_UPSTREAM_MERGE_REQUEST_IID: $TOP_UPSTREAM_MERGE_REQUEST_IID
157
+ ALLURE_JOB_NAME: $ALLURE_JOB_NAME
158
+ trigger:
159
+ strategy: depend
160
+ include:
161
+ - artifact: generated-qa-jobs.yml
162
+ job: generate-jobs
1384
163
 
1385
164
  include:
1386
- - local: .gitlab/ci/*.gitlab-ci.yml
165
+ - local: .gitlab/ci/rules.gitlab-ci.yml
1387
166
  - project: 'gitlab-org/quality/pipeline-common'
1388
167
  file:
1389
168
  - '/ci/gem-release.yml'
1390
- - '/ci/allure-report.yml'
1391
- - '/ci/knapsack-report.yml'
1392
169
  - '/ci/danger-review.yml'
1393
170
 
1394
171
  danger-review: