gitlab-qa 7.24.6 → 7.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: