gitlab-qa 7.24.5 → 7.25.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) 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-ci.yml +115 -1332
  40. data/Dangerfile +1 -3
  41. data/bin/notify_upstream +98 -0
  42. data/docs/what_tests_can_be_run.md +15 -0
  43. data/lib/gitlab/qa/component/base.rb +0 -1
  44. data/lib/gitlab/qa/component/gitlab.rb +35 -0
  45. data/lib/gitlab/qa/component/staging_ref.rb +1 -0
  46. data/lib/gitlab/qa/docker/engine.rb +4 -0
  47. data/lib/gitlab/qa/release.rb +1 -1
  48. data/lib/gitlab/qa/report/relate_failure_issue.rb +9 -3
  49. data/lib/gitlab/qa/runner.rb +10 -0
  50. data/lib/gitlab/qa/runtime/env.rb +14 -1
  51. data/lib/gitlab/qa/scenario/test/instance/staging_ref_geo.rb +27 -0
  52. data/lib/gitlab/qa/scenario/test/integration/mattermost.rb +5 -1
  53. data/lib/gitlab/qa/scenario/test/integration/registry_with_cdn.rb +42 -0
  54. data/lib/gitlab/qa/version.rb +1 -1
  55. data/lib/gitlab/qa.rb +2 -0
  56. data/scripts/generate-qa-jobs.rb +72 -0
  57. data/support/data/license_usage_seed.rb +75 -0
  58. metadata +43 -4
  59. data/.gitlab/ci/danger.gitlab-ci.yml +0 -25
  60. 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,1329 +45,129 @@ 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_REF ]]; then
54
+ # Replace '\' with '-' and convert to downcase
55
+ export QA_IMAGE_TAG=$(echo "${TOP_UPSTREAM_SOURCE_REF//\//-}" | tr '[:upper:]' '[:lower:]')
56
+ else
57
+ export QA_IMAGE_TAG=master
58
+ fi
59
+ - 'echo "QA_IMAGE_TAG=$QA_IMAGE_TAG" >> prep_vars.env'
60
+ - 'echo $QA_IMAGE_TAG'
73
61
  artifacts:
74
- when: always
75
- expire_in: 10d
76
- paths:
77
- - gitlab-qa-run-*
78
62
  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
63
+ dotenv: prep_vars.env
64
+ paths:
65
+ - prep_vars.env
151
66
 
152
- ee:sanity-framework:
67
+ generate-jobs:
68
+ stage: generate
69
+ extends: .rules:never-on-version-change-or-tag
70
+ image:
71
+ name: $CI_REGISTRY/gitlab-org/gitlab/gitlab-ee-qa:$QA_IMAGE_TAG
72
+ entrypoint: [ "" ]
153
73
  variables:
154
- QA_GENERATE_ALLURE_REPORT: "false"
155
74
  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:
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
- variables:
832
- GITLAB_QA_OPTIONS_COMBINED: "$GITLAB_QA_OPTIONS --omnibus-config packages"
833
- QA_RSPEC_TAGS: "--tag packages"
834
-
835
- ee:packages-quarantine:
836
- extends:
837
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
838
- - .test
839
- - .high-capacity
840
- - .ee-variables
841
- - .quarantine
842
- - .rspec-report-opts
843
- - .combined-gitlab-qa-options-script
844
- variables:
845
- GITLAB_QA_OPTIONS_COMBINED: "$GITLAB_QA_OPTIONS --omnibus-config packages"
846
- QA_RSPEC_TAGS: "--tag quarantine --tag packages"
847
-
848
- ce:object_storage_registry_tls:
849
- extends:
850
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
851
- - .test
852
- - .high-capacity
853
- - .ce-variables
854
- - .rspec-report-opts
855
- variables:
856
- QA_SCENARIO: "Test::Integration::RegistryTLS --omnibus-config registry_object_storage"
857
-
858
- ce:object_storage_registry_tls-quarantine:
859
- extends:
860
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
861
- - .test
862
- - .high-capacity
863
- - .ce-variables
864
- - .quarantine
865
- - .rspec-report-opts
866
- variables:
867
- QA_SCENARIO: "Test::Integration::RegistryTLS --omnibus-config registry_object_storage"
868
-
869
- ee:object_storage_registry_tls:
870
- extends:
871
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
872
- - .test
873
- - .ee-variables
874
- - .high-capacity
875
- - .rspec-report-opts
876
- variables:
877
- QA_SCENARIO: "Test::Integration::RegistryTLS --omnibus-config registry_object_storage"
878
-
879
- ee:object_storage_registry_tls-quarantine:
880
- extends:
881
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
882
- - .test
883
- - .high-capacity
884
- - .ee-variables
885
- - .quarantine
886
- - .rspec-report-opts
887
- variables:
888
- QA_SCENARIO: "Test::Integration::RegistryTLS --omnibus-config registry_object_storage"
889
-
890
- ce:registry:
891
- extends:
892
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
893
- - .test
894
- - .high-capacity
895
- - .ce-variables
896
- - .rspec-report-opts
897
- variables:
898
- QA_SCENARIO: "Test::Integration::Registry"
899
-
900
- ce:registry-quarantine:
901
- extends:
902
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
903
- - .test
904
- - .high-capacity
905
- - .ce-variables
906
- - .quarantine
907
- - .rspec-report-opts
908
- variables:
909
- QA_SCENARIO: "Test::Integration::Registry"
910
-
911
- ee:registry:
912
- extends:
913
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
914
- - .test
915
- - .high-capacity
916
- - .ee-variables
917
- - .rspec-report-opts
918
- variables:
919
- QA_SCENARIO: "Test::Integration::Registry"
920
-
921
- ee:registry-quarantine:
922
- extends:
923
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
924
- - .test
925
- - .high-capacity
926
- - .ee-variables
927
- - .quarantine
928
- - .rspec-report-opts
929
- variables:
930
- QA_SCENARIO: "Test::Integration::Registry"
931
-
932
- ce:actioncable:
933
- extends:
934
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
935
- - .test
936
- - .high-capacity
937
- - .ce-variables
938
- - .rspec-report-opts
939
- variables:
940
- QA_SCENARIO: "Test::Integration::Actioncable"
941
-
942
- ce:actioncable-quarantine:
943
- extends:
944
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
945
- - .test
946
- - .high-capacity
947
- - .ce-variables
948
- - .quarantine
949
- - .rspec-report-opts
950
- variables:
951
- QA_SCENARIO: "Test::Integration::Actioncable"
952
-
953
- ee:actioncable:
954
- extends:
955
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
956
- - .test
957
- - .high-capacity
958
- - .ee-variables
959
- - .rspec-report-opts
960
- variables:
961
- QA_SCENARIO: "Test::Integration::Actioncable"
962
-
963
- ee:actioncable-quarantine:
964
- extends:
965
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
966
- - .test
967
- - .high-capacity
968
- - .ee-variables
969
- - .quarantine
970
- - .rspec-report-opts
971
- variables:
972
- QA_SCENARIO: "Test::Integration::Actioncable"
973
-
974
- ee:elasticsearch:
975
- extends:
976
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
977
- - .test
978
- - .high-capacity
979
- - .ee-variables
980
- - .rspec-report-opts
981
- variables:
982
- QA_SCENARIO: "Test::Integration::Elasticsearch"
983
-
984
- ee:elasticsearch-quarantine:
985
- extends:
986
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
987
- - .test
988
- - .high-capacity
989
- - .ee-variables
990
- - .quarantine
991
- - .rspec-report-opts
992
- variables:
993
- QA_SCENARIO: "Test::Integration::Elasticsearch"
994
-
995
- ce:praefect-parallel:
996
- extends:
997
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-specified
998
- - .test
999
- - .high-capacity
1000
- - .ce-variables
1001
- - .rspec-report-opts
1002
- parallel: 5
1003
- variables:
1004
- QA_SCENARIO: "Test::Integration::Praefect"
1005
- QA_CAN_TEST_PRAEFECT: "true"
1006
-
1007
- ce:praefect:
1008
- extends:
1009
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-not-specified
1010
- - .test
1011
- - .high-capacity
1012
- - .ce-variables
1013
- - .rspec-report-opts
1014
- variables:
1015
- QA_SCENARIO: "Test::Integration::Praefect"
1016
- QA_CAN_TEST_PRAEFECT: "true"
1017
-
1018
- ce:praefect-quarantine:
1019
- extends:
1020
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
1021
- - .test
1022
- - .high-capacity
1023
- - .ce-variables
1024
- - .quarantine
1025
- - .rspec-report-opts
1026
- variables:
1027
- QA_SCENARIO: "Test::Integration::Praefect"
1028
- QA_CAN_TEST_PRAEFECT: "true"
1029
- QA_RSPEC_TAGS: "--tag quarantine --tag ~orchestrated"
1030
-
1031
- ee:praefect-parallel:
1032
- extends:
1033
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-specified
1034
- - .test
1035
- - .high-capacity
1036
- - .ee-variables
1037
- - .rspec-report-opts
1038
- parallel: 10
1039
- variables:
1040
- QA_SCENARIO: "Test::Integration::Praefect"
1041
- QA_CAN_TEST_PRAEFECT: "true"
1042
-
1043
- ee:praefect:
1044
- extends:
1045
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-not-specified
1046
- - .test
1047
- - .high-capacity
1048
- - .ee-variables
1049
- - .rspec-report-opts
1050
- variables:
1051
- QA_SCENARIO: "Test::Integration::Praefect"
1052
- QA_CAN_TEST_PRAEFECT: "true"
1053
-
1054
- ee:praefect-quarantine:
1055
- extends:
1056
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
1057
- - .test
1058
- - .high-capacity
1059
- - .ee-variables
1060
- - .quarantine
1061
- - .rspec-report-opts
1062
- variables:
1063
- QA_SCENARIO: "Test::Integration::Praefect"
1064
- QA_CAN_TEST_PRAEFECT: "true"
1065
- QA_RSPEC_TAGS: "--tag quarantine --tag ~orchestrated"
1066
-
1067
- ce:gitaly-cluster:
1068
- extends:
1069
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
1070
- - .test
1071
- - .high-capacity
1072
- - .ce-variables
1073
- - .rspec-report-opts
1074
- variables:
1075
- QA_SCENARIO: "Test::Integration::GitalyCluster"
1076
- QA_LOG_PATH: "tmp/gitaly_cluster.log"
1077
-
1078
- ce:gitaly-cluster-quarantine:
1079
- extends:
1080
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
1081
- - .test
1082
- - .high-capacity
1083
- - .ce-variables
1084
- - .quarantine
1085
- - .rspec-report-opts
1086
- variables:
1087
- QA_SCENARIO: "Test::Integration::GitalyCluster"
1088
- QA_LOG_PATH: "tmp/gitaly_cluster.log"
1089
-
1090
- ee:gitaly-cluster:
1091
- extends:
1092
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
1093
- - .test
1094
- - .high-capacity
1095
- - .ee-variables
1096
- - .rspec-report-opts
1097
- variables:
1098
- QA_SCENARIO: "Test::Integration::GitalyCluster"
1099
- QA_LOG_PATH: "tmp/gitaly_cluster.log"
1100
-
1101
- ee:gitaly-cluster-quarantine:
1102
- extends:
1103
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
1104
- - .test
1105
- - .high-capacity
1106
- - .ee-variables
1107
- - .quarantine
1108
- - .rspec-report-opts
1109
- variables:
1110
- QA_SCENARIO: "Test::Integration::GitalyCluster"
1111
- QA_LOG_PATH: "tmp/gitaly_cluster.log"
1112
-
1113
- ce:mtls:
1114
- extends:
1115
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
1116
- - .test
1117
- - .ce-variables
1118
- - .rspec-report-opts
1119
- variables:
1120
- QA_SCENARIO: "Test::Integration::MTLS"
1121
-
1122
- ee:mtls:
1123
- extends:
1124
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
1125
- - .test
1126
- - .ee-variables
1127
- - .rspec-report-opts
1128
- variables:
1129
- QA_SCENARIO: "Test::Integration::MTLS"
1130
-
1131
- ce:smtp:
1132
- extends:
1133
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
1134
- - .test
1135
- - .high-capacity
1136
- - .ce-variables
1137
- - .rspec-report-opts
1138
- variables:
1139
- QA_SCENARIO: "Test::Integration::SMTP"
1140
-
1141
- ee:smtp:
1142
- extends:
1143
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
1144
- - .test
1145
- - .high-capacity
1146
- - .ee-variables
1147
- - .rspec-report-opts
1148
- variables:
1149
- QA_SCENARIO: "Test::Integration::SMTP"
1150
-
1151
- ce:jira:
1152
- extends:
1153
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
1154
- - .test
1155
- - .high-capacity
1156
- - .ce-variables
1157
- - .rspec-report-opts
1158
- variables:
1159
- QA_SCENARIO: "Test::Integration::Jira"
1160
-
1161
- ce:jira-quarantine:
1162
- extends:
1163
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
1164
- - .test
1165
- - .high-capacity
1166
- - .ce-variables
1167
- - .quarantine
1168
- - .rspec-report-opts
1169
- variables:
1170
- QA_SCENARIO: "Test::Integration::Jira"
1171
-
1172
- ee:jira:
1173
- extends:
1174
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
1175
- - .test
1176
- - .high-capacity
1177
- - .ee-variables
1178
- - .rspec-report-opts
1179
- variables:
1180
- QA_SCENARIO: "Test::Integration::Jira"
1181
-
1182
- ee:jira-quarantine:
1183
- extends:
1184
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
1185
- - .test
1186
- - .high-capacity
1187
- - .ee-variables
1188
- - .quarantine
1189
- - .rspec-report-opts
1190
- variables:
1191
- QA_SCENARIO: "Test::Integration::Jira"
1192
-
1193
- ce:integrations:
1194
- extends:
1195
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
1196
- - .test
1197
- - .high-capacity
1198
- - .ce-variables
1199
- - .rspec-report-opts
1200
- variables:
1201
- QA_SCENARIO: "Test::Integration::Integrations"
1202
-
1203
- ce:integrations-quarantine:
1204
- extends:
1205
- - ce:integrations
1206
- - .quarantine
1207
-
1208
- ce:large-setup:
1209
- extends:
1210
- - .rules:ce-never-when-triggered-by-feature-flag-definition-change
1211
- - .test
1212
- - .high-capacity
1213
- - .ce-variables
1214
- - .rspec-report-opts
1215
- variables:
1216
- QA_RSPEC_TAGS: "--tag can_use_large_setup"
1217
-
1218
- ee:large-setup:
1219
- extends:
1220
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
1221
- - .test
1222
- - .high-capacity
1223
- - .ee-variables
1224
- - .rspec-report-opts
1225
- variables:
1226
- QA_RSPEC_TAGS: "--tag can_use_large_setup"
1227
-
1228
- ee:cloud-activation:
1229
- before_script:
1230
- - unset EE_LICENSE
1231
- - !reference [default, before_script]
1232
- extends:
1233
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
1234
- - .test
1235
- - .high-capacity
1236
- - .ee-variables
1237
- - .rspec-report-opts
1238
- variables:
1239
- QA_RSPEC_TAGS: "--tag cloud_activation"
1240
-
1241
- ee:cloud-activation-quarantine:
75
+ needs:
76
+ - prepare
1242
77
  before_script:
1243
- - unset EE_LICENSE
1244
- - !reference [default, before_script]
1245
- extends:
1246
- - .rules:ee-never-when-triggered-by-feature-flag-definition-change
1247
- - .test
1248
- - .high-capacity
1249
- - .ee-variables
1250
- - .quarantine
1251
- - .rspec-report-opts
1252
- variables:
1253
- QA_RSPEC_TAGS: "--tag cloud_activation"
1254
-
1255
- # This job requires the `GITLAB_QA_ACCESS_TOKEN` and `GITLAB_QA_DEV_ACCESS_TOKEN`
1256
- # variable to be passed when triggered.
1257
- staging:
1258
- script:
1259
- - unset EE_LICENSE
1260
- - 'echo "Running: bundle exec exe/gitlab-qa Test::Instance::Staging ${RELEASE:=$DEFAULT_RELEASE} -- $QA_TESTS $QA_RSPEC_TAGS"'
1261
- - bundle exec exe/gitlab-qa Test::Instance::Staging ${RELEASE:=$DEFAULT_RELEASE} -- $QA_TESTS $QA_RSPEC_TAGS
1262
- extends:
1263
- - .rules:only-qa-never-when-triggered-by-feature-flag-definition-change
1264
- - .test
1265
- - .high-capacity
1266
- allow_failure: true
1267
-
1268
- generate_test_session:
1269
- stage: report
1270
- rules:
1271
- - if: '$TOP_UPSTREAM_SOURCE_JOB && $TOP_UPSTREAM_SOURCE_REF == $TOP_UPSTREAM_DEFAULT_BRANCH'
1272
- when: always
1273
- - if: '$TOP_UPSTREAM_SOURCE_JOB =~ /\Ahttps:\/\/ops.gitlab.net\//'
1274
- when: always
78
+ - cd /home/gitlab/qa
79
+ script:
80
+ # Generate count example files
81
+ - bundle exec bin/qa Test::Instance::All http://dummy.test --count-examples-only -- $QA_TESTS
82
+ - bundle exec bin/qa Test::Integration::Mattermost http://dummy.test --mattermost-address http://mattermost.test --count-examples-only -- $QA_TESTS
83
+ - bundle exec bin/qa Test::Integration::ServicePingDisabled http://dummy.test --count-examples-only -- $QA_TESTS
84
+ - 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
85
+ - bundle exec bin/qa Test::Integration::LDAPNoTLS http://dummy.test --count-examples-only -- $QA_TESTS
86
+ - bundle exec bin/qa Test::Integration::LDAPTLS http://dummy.test --count-examples-only -- $QA_TESTS
87
+ - bundle exec bin/qa Test::Integration::LDAPNoServer http://dummy.test --count-examples-only -- $QA_TESTS
88
+ - bundle exec bin/qa Test::Integration::InstanceSAML http://dummy.test --count-examples-only -- $QA_TESTS
89
+ - bundle exec bin/qa QA::EE::Scenario::Test::Integration::GroupSAML http://dummy.test --count-examples-only -- $QA_TESTS
90
+ - bundle exec bin/qa Test::Integration::RegistryTLS http://dummy.test --count-examples-only -- $QA_TESTS
91
+ - bundle exec bin/qa Test::Integration::Registry http://dummy.test --count-examples-only -- $QA_TESTS
92
+ - bundle exec bin/qa QA::EE::Scenario::Test::Integration::Elasticsearch http://dummy.test --count-examples-only -- $QA_TESTS
93
+ - bundle exec bin/qa Test::Integration::SMTP http://dummy.test --count-examples-only -- $QA_TESTS
94
+ - bundle exec bin/qa Test::Integration::RegistryWithCDN http://dummy.test --count-examples-only -- $QA_TESTS
95
+ - bundle exec bin/qa Test::Instance::All http://dummy.test --count-examples-only -- $QA_TESTS --tag repository_storage
96
+ - bundle exec bin/qa Test::Instance::All http://dummy.test --count-examples-only -- $QA_TESTS --tag packages
97
+ - bundle exec bin/qa Test::Instance::All http://dummy.test --count-examples-only -- $QA_TESTS --tag integrations
98
+ - bundle exec bin/qa Test::Instance::All http://dummy.test --count-examples-only -- $QA_TESTS --tag actioncable
99
+ - bundle exec bin/qa Test::Instance::All http://dummy.test --count-examples-only -- $QA_TESTS --tag mtls
100
+ - bundle exec bin/qa Test::Instance::All http://dummy.test --count-examples-only -- $QA_TESTS --tag jira
101
+ - bundle exec bin/qa Test::Instance::All http://dummy.test --count-examples-only -- $QA_TESTS --tag can_use_large_setup
102
+ - bundle exec bin/qa Test::Instance::All http://dummy.test --count-examples-only -- $QA_TESTS --tag cloud_activation
103
+ - bundle exec bin/qa Test::Instance::All http://dummy.test --count-examples-only -- $QA_TESTS --tag object_storage
104
+ - cp -r no_of_examples $CI_PROJECT_DIR
105
+
106
+ # TOP_UPSTREAM_DEFAULT_BRANCH is the default branch name of the original project that triggered a pipeline in this project.
107
+ - 'export TOP_UPSTREAM_DEFAULT_BRANCH=${TOP_UPSTREAM_DEFAULT_BRANCH:=master} && echo "TOP_UPSTREAM_DEFAULT_BRANCH=$TOP_UPSTREAM_DEFAULT_BRANCH" >> variables.env'
108
+ - 'echo "RELEASE=$RELEASE" >> variables.env'
109
+ - 'echo "GITLAB_QA_OPTIONS=$GITLAB_QA_OPTIONS" >> variables.env'
110
+ - 'echo "QA_TESTS=$QA_TESTS" >> variables.env'
111
+ - 'echo "KNAPSACK_GENERATE_REPORT=$KNAPSACK_GENERATE_REPORT" >> variables.env'
112
+ - 'echo "TOP_UPSTREAM_SOURCE_JOB=$TOP_UPSTREAM_SOURCE_JOB" >> variables.env'
113
+ - 'echo "TOP_UPSTREAM_SOURCE_REF=$TOP_UPSTREAM_SOURCE_REF" >> variables.env'
114
+ - 'echo "DISABLE_RELATING_FAILURE_ISSUES=$DISABLE_RELATING_FAILURE_ISSUES" >> variables.env'
115
+ - 'echo "TOP_UPSTREAM_SOURCE_PROJECT=$TOP_UPSTREAM_SOURCE_PROJECT" >> variables.env'
116
+ - 'echo "TOP_UPSTREAM_SOURCE_SHA=$TOP_UPSTREAM_SOURCE_SHA" >> variables.env'
117
+ - 'echo "NOTIFY_CHANNEL=$NOTIFY_CHANNEL" >> variables.env'
118
+ - 'echo "QA_IMAGE=$QA_IMAGE" >> variables.env'
119
+ - 'echo "EE_LICENSE=$EE_LICENSE" >> variables.env'
120
+ - 'echo "TOP_UPSTREAM_MERGE_REQUEST_IID=$TOP_UPSTREAM_MERGE_REQUEST_IID" >> variables.env'
121
+ - 'echo "ALLURE_JOB_NAME=$ALLURE_JOB_NAME" >> variables.env'
122
+ - mv variables.env $CI_PROJECT_DIR
123
+
124
+ - cd $CI_PROJECT_DIR
125
+ - ./scripts/generate-qa-jobs.rb
126
+ - cat generated-qa-jobs.yml
1275
127
  artifacts:
1276
- when: always
1277
- expire_in: 10d
128
+ reports:
129
+ dotenv: variables.env
1278
130
  paths:
1279
- - REPORT_ISSUE_URL
1280
- script:
1281
- - export GITLAB_QA_ACCESS_TOKEN="$GITLAB_QA_PRODUCTION_ACCESS_TOKEN"
1282
- - bundle exec exe/gitlab-qa-report --generate-test-session "gitlab-qa-run-*/**/rspec-*.json" --project "$QA_TESTCASE_SESSIONS_PROJECT"
1283
-
1284
- relate_test_failures:
1285
- stage: report
1286
- rules:
1287
- - if: '$DISABLE_RELATING_FAILURE_ISSUES'
1288
- when: never
1289
- - if: '$TOP_UPSTREAM_SOURCE_JOB && $TOP_UPSTREAM_SOURCE_REF == $TOP_UPSTREAM_DEFAULT_BRANCH'
1290
- when: always
1291
- - if: '$TOP_UPSTREAM_SOURCE_JOB =~ /\Ahttps:\/\/ops.gitlab.net\//'
1292
- when: always
1293
- variables:
1294
- QA_FAILURES_REPORTING_PROJECT: "gitlab-org/gitlab"
1295
- QA_FAILURES_MAX_DIFF_RATIO: "0.15"
1296
- # The --dry-run can be set to modify the behavior of `exe/gitlab-qa-report --relate-failure-issue` without releasing a new gem version.
1297
- QA_FAILURES_REPORTER_OPTIONS: ""
1298
- script:
1299
- - export GITLAB_QA_ACCESS_TOKEN="$GITLAB_QA_PRODUCTION_ACCESS_TOKEN"
1300
- - 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
1301
-
1302
- .notify_upstream_commit:
1303
- stage: notify
1304
- image: ruby:3.0-alpine
1305
- before_script:
1306
- - gem install gitlab --no-document
1307
-
1308
- notify_upstream_commit:success:
1309
- extends: .notify_upstream_commit
1310
- script:
1311
- - bin/notify_upstream_commit success
1312
- rules:
1313
- - if: '$TOP_UPSTREAM_SOURCE_PROJECT && $TOP_UPSTREAM_SOURCE_SHA'
1314
- when: on_success
1315
-
1316
- notify_upstream_commit:failure:
1317
- extends: .notify_upstream_commit
1318
- script:
1319
- - bin/notify_upstream_commit failure
1320
- rules:
1321
- - if: '$TOP_UPSTREAM_SOURCE_PROJECT && $TOP_UPSTREAM_SOURCE_SHA'
1322
- when: on_failure
1323
-
1324
- .notify_slack:
1325
- image: alpine
1326
- stage: notify
1327
- dependencies: ['generate_test_session']
1328
- cache: {}
1329
- before_script:
1330
- - apk update && apk add git curl bash
1331
-
1332
- notify_slack:
1333
- extends:
1334
- - .notify_slack
1335
- rules:
1336
- - if: '$TOP_UPSTREAM_SOURCE_JOB && $NOTIFY_CHANNEL'
1337
- when: on_failure
1338
- - if: '$TOP_UPSTREAM_SOURCE_JOB && $TOP_UPSTREAM_SOURCE_REF == $TOP_UPSTREAM_DEFAULT_BRANCH'
1339
- when: on_failure
1340
- script:
1341
- - export RELEASE=${TOP_UPSTREAM_SOURCE_REF:-$RELEASE}
1342
- - echo "NOTIFY_CHANNEL is ${NOTIFY_CHANNEL:=qa-$TOP_UPSTREAM_SOURCE_REF}"
1343
- - echo "RELEASE is ${RELEASE}"
1344
- - echo "CI_PIPELINE_URL is $CI_PIPELINE_URL"
1345
- - echo "TOP_UPSTREAM_SOURCE_JOB is $TOP_UPSTREAM_SOURCE_JOB"
1346
- - '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'
1347
-
1348
- generate-allure-report:
1349
- extends: .generate-allure-report-base
1350
- stage: report
1351
- variables:
1352
- STORAGE_CREDENTIALS: $QA_ALLURE_REPORT_GCS_CREDENTIALS
1353
- GITLAB_AUTH_TOKEN: $GITLAB_QA_MR_ALLURE_REPORT_TOKEN
1354
- ALLURE_RESULTS_GLOB: gitlab-qa-run-*/**/allure-results/*
1355
- # Override allure variables for upstream triggers
1356
- ALLURE_PROJECT_PATH: $TOP_UPSTREAM_SOURCE_PROJECT
1357
- ALLURE_MERGE_REQUEST_IID: $TOP_UPSTREAM_MERGE_REQUEST_IID
1358
- ALLURE_COMMIT_SHA: $TOP_UPSTREAM_SOURCE_SHA
1359
- # Override default before script and don't push cache
1360
- cache:
1361
- policy: pull
1362
- before_script:
1363
- - export ALLURE_JOB_NAME="${ALLURE_JOB_NAME:-package-and-qa}"
1364
- rules:
1365
- # Don't run report generation on release pipelines
1366
- - if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_PATH == "gitlab-org/gitlab-qa" && $RELEASE == null'
1367
- changes: ["lib/**/version.rb"]
1368
- when: never
1369
- - if: '$CI_COMMIT_TAG'
1370
- when: never
1371
- - if: '$CI_PIPELINE_SOURCE == "merge_request_event" || ($CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH)'
1372
- variables:
1373
- ALLURE_JOB_NAME: gitlab-qa
1374
- when: always
1375
- - if: '$TOP_UPSTREAM_SOURCE_PROJECT && $TOP_UPSTREAM_SOURCE_SHA'
1376
- when: always
1377
-
1378
- generate-knapsack-report:
1379
- extends: .generate-knapsack-report-base
1380
- image:
1381
- name: ${QA_IMAGE}
1382
- stage: report
131
+ - generated-qa-jobs.yml
132
+ - variables.env
133
+ - no_of_examples
134
+ expire_in: 2 days
135
+
136
+ trigger-generated-jobs:
137
+ stage: triggers
138
+ extends: .rules:never-on-version-change-or-tag
139
+ needs: [ generate-jobs ]
140
+ variables:
141
+ # Variables used in rules also need to be passed down using the `variables` section in addition to dotenv file
142
+ # due to this bug: https://gitlab.com/gitlab-org/gitlab/-/issues/352828. For other variables, duplicate declaration here is needed
143
+ # as well due to not using `needs` and `artifacts: true` in child pipelines.
144
+ RELEASE: $RELEASE
145
+ GITLAB_QA_OPTIONS: $GITLAB_QA_OPTIONS
146
+ QA_TESTS: $QA_TESTS
147
+ KNAPSACK_GENERATE_REPORT: $KNAPSACK_GENERATE_REPORT
148
+ TOP_UPSTREAM_SOURCE_JOB: $TOP_UPSTREAM_SOURCE_JOB
149
+ TOP_UPSTREAM_SOURCE_REF: $TOP_UPSTREAM_SOURCE_REF
150
+ TOP_UPSTREAM_DEFAULT_BRANCH: $TOP_UPSTREAM_DEFAULT_BRANCH
151
+ DISABLE_RELATING_FAILURE_ISSUES: $DISABLE_RELATING_FAILURE_ISSUES
152
+ TOP_UPSTREAM_SOURCE_PROJECT: $TOP_UPSTREAM_SOURCE_PROJECT
153
+ TOP_UPSTREAM_SOURCE_SHA: $TOP_UPSTREAM_SOURCE_SHA
154
+ NOTIFY_CHANNEL: $NOTIFY_CHANNEL
155
+ QA_IMAGE: $QA_IMAGE
156
+ EE_LICENSE: $EE_LICENSE
157
+ TOP_UPSTREAM_MERGE_REQUEST_IID: $TOP_UPSTREAM_MERGE_REQUEST_IID
158
+ ALLURE_JOB_NAME: $ALLURE_JOB_NAME
159
+ trigger:
160
+ strategy: depend
161
+ include:
162
+ - artifact: generated-qa-jobs.yml
163
+ job: generate-jobs
1383
164
 
1384
165
  include:
1385
- - local: .gitlab/ci/*.gitlab-ci.yml
166
+ - local: .gitlab/ci/rules.gitlab-ci.yml
1386
167
  - project: 'gitlab-org/quality/pipeline-common'
1387
168
  file:
1388
169
  - '/ci/gem-release.yml'
1389
- - '/ci/allure-report.yml'
1390
- - '/ci/knapsack-report.yml'
170
+ - '/ci/danger-review.yml'
171
+
172
+ danger-review:
173
+ stage: check