gitlab-qa 7.13.2 → 7.15.1
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.
- checksums.yaml +4 -4
- data/.gitlab/ci/rules.gitlab-ci.yml +70 -0
- data/.gitlab-ci.yml +128 -18
- data/docs/run_qa_against_gdk.md +11 -1
- data/docs/running_against_remote_grid.md +39 -10
- data/docs/what_tests_can_be_run.md +1 -0
- data/lib/gitlab/qa/component/elasticsearch.rb +1 -0
- data/lib/gitlab/qa/report/gitlab_issue_client.rb +8 -1
- data/lib/gitlab/qa/report/report_as_issue.rb +2 -0
- data/lib/gitlab/qa/report/results_in_issues.rb +6 -2
- data/lib/gitlab/qa/runtime/env.rb +4 -1
- data/lib/gitlab/qa/runtime/omnibus_configurations/license_mode.rb +1 -1
- data/lib/gitlab/qa/scenario/test/integration/service_ping_disabled.rb +33 -0
- data/lib/gitlab/qa/version.rb +1 -1
- data/lib/gitlab/qa.rb +1 -0
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: eff5b2a5b6b59f95a7ce622eb57a6157dc7492af83be416d3b8950ba527c3495
|
|
4
|
+
data.tar.gz: 6da73f8680896f2875e4899ea21b3272c418ee0140ae9d1a54b5117e870f5e5a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6110c4e993d4ff262476a637e7fad86a32561c29609bd6a5341cf8d14a53de73a0c7301763a71a3674551cd36385d67ed42db86de2c434cd938c13cbb98a0afa
|
|
7
|
+
data.tar.gz: 43db85b7549e3b3296df9f1d2c8534724d7c908ecaa11b300fe64f8a7b0f4297fbf88e704c8431fa2da4ce5a5247788136a6b66972cbbf7fd6dd1a6de3956dff
|
|
@@ -37,6 +37,12 @@
|
|
|
37
37
|
.if-set-feature-flag: &if-set-feature-flag
|
|
38
38
|
if: '$GITLAB_QA_OPTIONS =~ /--set-feature-flags/'
|
|
39
39
|
|
|
40
|
+
.if-qa-tests-specified: &if-qa-tests-specified
|
|
41
|
+
if: '$QA_TESTS != null && $QA_TESTS != ""'
|
|
42
|
+
|
|
43
|
+
.if-qa-tests-not-specified: &if-qa-tests-not-specified
|
|
44
|
+
if: '$QA_TESTS == null || $QA_TESTS == ""'
|
|
45
|
+
|
|
40
46
|
#########
|
|
41
47
|
# Rules #
|
|
42
48
|
#########
|
|
@@ -98,3 +104,67 @@
|
|
|
98
104
|
- <<: *if-set-feature-flag
|
|
99
105
|
when: never
|
|
100
106
|
- !reference [".rules:only-qa", rules]
|
|
107
|
+
|
|
108
|
+
# === When QA_TESTS variable has a value ===
|
|
109
|
+
|
|
110
|
+
.rules:ce-never-when-qa-tests-specified:
|
|
111
|
+
rules:
|
|
112
|
+
- <<: *if-qa-tests-specified
|
|
113
|
+
when: never
|
|
114
|
+
- !reference [".rules:ce-qa", rules]
|
|
115
|
+
|
|
116
|
+
.rules:ee-never-when-qa-tests-specified:
|
|
117
|
+
rules:
|
|
118
|
+
- <<: *if-qa-tests-specified
|
|
119
|
+
when: never
|
|
120
|
+
- !reference [".rules:ee-qa", rules]
|
|
121
|
+
|
|
122
|
+
.rules:ce-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-specified:
|
|
123
|
+
rules:
|
|
124
|
+
- <<: *if-qa-tests-specified
|
|
125
|
+
when: never
|
|
126
|
+
- !reference [".rules:ce-never-when-triggered-by-feature-flag-definition-change", rules]
|
|
127
|
+
|
|
128
|
+
.rules:ee-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-specified:
|
|
129
|
+
rules:
|
|
130
|
+
- <<: *if-qa-tests-specified
|
|
131
|
+
when: never
|
|
132
|
+
- !reference [".rules:ee-never-when-triggered-by-feature-flag-definition-change", rules]
|
|
133
|
+
|
|
134
|
+
.rules:only-qa-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-specified:
|
|
135
|
+
rules:
|
|
136
|
+
- <<: *if-qa-tests-specified
|
|
137
|
+
when: never
|
|
138
|
+
- !reference [".rules:only-qa-never-when-triggered-by-feature-flag-definition-change", rules]
|
|
139
|
+
|
|
140
|
+
# === When QA_TESTS variable does not have a value ===
|
|
141
|
+
|
|
142
|
+
.rules:ce-never-when-qa-tests-not-specified:
|
|
143
|
+
rules:
|
|
144
|
+
- <<: *if-qa-tests-not-specified
|
|
145
|
+
when: never
|
|
146
|
+
- !reference [".rules:ce-qa", rules]
|
|
147
|
+
|
|
148
|
+
.rules:ee-never-when-qa-tests-not-specified:
|
|
149
|
+
rules:
|
|
150
|
+
- <<: *if-qa-tests-not-specified
|
|
151
|
+
when: never
|
|
152
|
+
- !reference [".rules:ee-qa", rules]
|
|
153
|
+
|
|
154
|
+
.rules:ce-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-not-specified:
|
|
155
|
+
rules:
|
|
156
|
+
- <<: *if-qa-tests-not-specified
|
|
157
|
+
when: never
|
|
158
|
+
- !reference [".rules:ce-never-when-triggered-by-feature-flag-definition-change", rules]
|
|
159
|
+
|
|
160
|
+
.rules:ee-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-not-specified:
|
|
161
|
+
rules:
|
|
162
|
+
- <<: *if-qa-tests-not-specified
|
|
163
|
+
when: never
|
|
164
|
+
- !reference [".rules:ee-never-when-triggered-by-feature-flag-definition-change", rules]
|
|
165
|
+
|
|
166
|
+
.rules:only-qa-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-not-specified:
|
|
167
|
+
rules:
|
|
168
|
+
- <<: *if-qa-tests-not-specified
|
|
169
|
+
when: never
|
|
170
|
+
- !reference [".rules:only-qa-never-when-triggered-by-feature-flag-definition-change", rules]
|
data/.gitlab-ci.yml
CHANGED
|
@@ -66,6 +66,7 @@ rspec:
|
|
|
66
66
|
|
|
67
67
|
.test:
|
|
68
68
|
stage: test
|
|
69
|
+
timeout: 1 hour 30 minutes
|
|
69
70
|
services:
|
|
70
71
|
- docker:20.10.5-dind
|
|
71
72
|
tags:
|
|
@@ -187,9 +188,9 @@ ee:custom-parallel:
|
|
|
187
188
|
allow_failure: true
|
|
188
189
|
parallel: 10
|
|
189
190
|
|
|
190
|
-
ce:instance:
|
|
191
|
+
ce:instance-parallel:
|
|
191
192
|
extends:
|
|
192
|
-
- .rules:ce-qa
|
|
193
|
+
- .rules:ce-never-when-qa-tests-specified
|
|
193
194
|
- .test
|
|
194
195
|
- .high-capacity
|
|
195
196
|
- .ce-variables
|
|
@@ -197,6 +198,14 @@ ce:instance:
|
|
|
197
198
|
- .rspec-report-opts
|
|
198
199
|
parallel: 5
|
|
199
200
|
|
|
201
|
+
ce:instance:
|
|
202
|
+
extends:
|
|
203
|
+
- .rules:ce-never-when-qa-tests-not-specified
|
|
204
|
+
- .test
|
|
205
|
+
- .high-capacity
|
|
206
|
+
- .ce-variables
|
|
207
|
+
- .rspec-report-opts
|
|
208
|
+
|
|
200
209
|
ce:instance-quarantine:
|
|
201
210
|
extends:
|
|
202
211
|
- .rules:ce-qa
|
|
@@ -208,9 +217,9 @@ ce:instance-quarantine:
|
|
|
208
217
|
variables:
|
|
209
218
|
QA_RSPEC_TAGS: "--tag quarantine --tag ~orchestrated"
|
|
210
219
|
|
|
211
|
-
ee:instance:
|
|
220
|
+
ee:instance-parallel:
|
|
212
221
|
extends:
|
|
213
|
-
- .rules:ee-qa
|
|
222
|
+
- .rules:ee-never-when-qa-tests-specified
|
|
214
223
|
- .test
|
|
215
224
|
- .high-capacity
|
|
216
225
|
- .ee-variables
|
|
@@ -218,6 +227,14 @@ ee:instance:
|
|
|
218
227
|
- .rspec-report-opts
|
|
219
228
|
parallel: 5
|
|
220
229
|
|
|
230
|
+
ee:instance:
|
|
231
|
+
extends:
|
|
232
|
+
- .rules:ee-never-when-qa-tests-not-specified
|
|
233
|
+
- .test
|
|
234
|
+
- .high-capacity
|
|
235
|
+
- .ee-variables
|
|
236
|
+
- .rspec-report-opts
|
|
237
|
+
|
|
221
238
|
ee:instance-quarantine:
|
|
222
239
|
extends:
|
|
223
240
|
- .rules:ee-qa
|
|
@@ -229,9 +246,9 @@ ee:instance-quarantine:
|
|
|
229
246
|
variables:
|
|
230
247
|
QA_RSPEC_TAGS: "--tag quarantine --tag ~orchestrated"
|
|
231
248
|
|
|
232
|
-
ce:relative_url:
|
|
249
|
+
ce:relative_url-parallel:
|
|
233
250
|
extends:
|
|
234
|
-
- .rules:ce-never-when-triggered-by-feature-flag-definition-change
|
|
251
|
+
- .rules:ce-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-specified
|
|
235
252
|
- .test
|
|
236
253
|
- .high-capacity
|
|
237
254
|
- .ce-variables
|
|
@@ -241,6 +258,16 @@ ce:relative_url:
|
|
|
241
258
|
variables:
|
|
242
259
|
QA_SCENARIO: "Test::Instance::RelativeUrl"
|
|
243
260
|
|
|
261
|
+
ce:relative_url:
|
|
262
|
+
extends:
|
|
263
|
+
- .rules:ce-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-not-specified
|
|
264
|
+
- .test
|
|
265
|
+
- .high-capacity
|
|
266
|
+
- .ce-variables
|
|
267
|
+
- .rspec-report-opts
|
|
268
|
+
variables:
|
|
269
|
+
QA_SCENARIO: "Test::Instance::RelativeUrl"
|
|
270
|
+
|
|
244
271
|
ce:relative_url-quarantine:
|
|
245
272
|
extends:
|
|
246
273
|
- .rules:ce-never-when-triggered-by-feature-flag-definition-change
|
|
@@ -253,9 +280,9 @@ ce:relative_url-quarantine:
|
|
|
253
280
|
QA_SCENARIO: "Test::Instance::RelativeUrl"
|
|
254
281
|
QA_RSPEC_TAGS: "--tag quarantine --tag ~orchestrated"
|
|
255
282
|
|
|
256
|
-
ee:relative_url:
|
|
283
|
+
ee:relative_url-parallel:
|
|
257
284
|
extends:
|
|
258
|
-
- .rules:ee-never-when-triggered-by-feature-flag-definition-change
|
|
285
|
+
- .rules:ee-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-specified
|
|
259
286
|
- .test
|
|
260
287
|
- .high-capacity
|
|
261
288
|
- .ee-variables
|
|
@@ -265,6 +292,16 @@ ee:relative_url:
|
|
|
265
292
|
variables:
|
|
266
293
|
QA_SCENARIO: "Test::Instance::RelativeUrl"
|
|
267
294
|
|
|
295
|
+
ee:relative_url:
|
|
296
|
+
extends:
|
|
297
|
+
- .rules:ee-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-not-specified
|
|
298
|
+
- .test
|
|
299
|
+
- .high-capacity
|
|
300
|
+
- .ee-variables
|
|
301
|
+
- .rspec-report-opts
|
|
302
|
+
variables:
|
|
303
|
+
QA_SCENARIO: "Test::Instance::RelativeUrl"
|
|
304
|
+
|
|
268
305
|
ee:relative_url-quarantine:
|
|
269
306
|
extends:
|
|
270
307
|
- .rules:ee-never-when-triggered-by-feature-flag-definition-change
|
|
@@ -336,9 +373,9 @@ ee:image:
|
|
|
336
373
|
- .test
|
|
337
374
|
- .ee-variables
|
|
338
375
|
|
|
339
|
-
ce:update:
|
|
376
|
+
ce:update-parallel:
|
|
340
377
|
extends:
|
|
341
|
-
- .rules:ce-never-when-triggered-by-feature-flag-definition-change
|
|
378
|
+
- .rules:ce-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-specified
|
|
342
379
|
- .test
|
|
343
380
|
- .high-capacity
|
|
344
381
|
- .ce-variables
|
|
@@ -347,6 +384,15 @@ ce:update:
|
|
|
347
384
|
- .update-scenario-script
|
|
348
385
|
parallel: 5
|
|
349
386
|
|
|
387
|
+
ce:update:
|
|
388
|
+
extends:
|
|
389
|
+
- .rules:ce-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-not-specified
|
|
390
|
+
- .test
|
|
391
|
+
- .high-capacity
|
|
392
|
+
- .ce-variables
|
|
393
|
+
- .rspec-report-opts
|
|
394
|
+
- .update-scenario-script
|
|
395
|
+
|
|
350
396
|
ce:update-quarantine:
|
|
351
397
|
extends:
|
|
352
398
|
- .rules:ce-never-when-triggered-by-feature-flag-definition-change
|
|
@@ -359,9 +405,9 @@ ce:update-quarantine:
|
|
|
359
405
|
variables:
|
|
360
406
|
QA_RSPEC_TAGS: "--tag quarantine --tag ~orchestrated"
|
|
361
407
|
|
|
362
|
-
ee:update:
|
|
408
|
+
ee:update-parallel:
|
|
363
409
|
extends:
|
|
364
|
-
- .rules:ee-never-when-triggered-by-feature-flag-definition-change
|
|
410
|
+
- .rules:ee-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-specified
|
|
365
411
|
- .test
|
|
366
412
|
- .high-capacity
|
|
367
413
|
- .ee-variables
|
|
@@ -370,6 +416,15 @@ ee:update:
|
|
|
370
416
|
- .update-scenario-script
|
|
371
417
|
parallel: 10
|
|
372
418
|
|
|
419
|
+
ee:update:
|
|
420
|
+
extends:
|
|
421
|
+
- .rules:ee-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-not-specified
|
|
422
|
+
- .test
|
|
423
|
+
- .high-capacity
|
|
424
|
+
- .ee-variables
|
|
425
|
+
- .rspec-report-opts
|
|
426
|
+
- .update-scenario-script
|
|
427
|
+
|
|
373
428
|
ee:update-quarantine:
|
|
374
429
|
extends:
|
|
375
430
|
- .rules:ee-never-when-triggered-by-feature-flag-definition-change
|
|
@@ -382,17 +437,26 @@ ee:update-quarantine:
|
|
|
382
437
|
QA_RSPEC_TAGS: "--tag quarantine --tag ~orchestrated"
|
|
383
438
|
|
|
384
439
|
# 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
|
|
385
|
-
ce:upgrade:
|
|
440
|
+
ce:upgrade-parallel:
|
|
386
441
|
script:
|
|
387
442
|
- bundle exec exe/gitlab-qa Test::Omnibus::Upgrade CE -- $RSPEC_REPORT_OPTS
|
|
388
443
|
extends:
|
|
389
|
-
- .rules:only-qa-never-when-triggered-by-feature-flag-definition-change
|
|
444
|
+
- .rules:only-qa-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-specified
|
|
390
445
|
- .test
|
|
391
446
|
- .high-capacity
|
|
392
447
|
- .rspec-report-opts
|
|
393
448
|
- .knapsack-variables
|
|
394
449
|
parallel: 5
|
|
395
450
|
|
|
451
|
+
ce:upgrade:
|
|
452
|
+
script:
|
|
453
|
+
- bundle exec exe/gitlab-qa Test::Omnibus::Upgrade CE -- $RSPEC_REPORT_OPTS
|
|
454
|
+
extends:
|
|
455
|
+
- .rules:only-qa-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-not-specified
|
|
456
|
+
- .test
|
|
457
|
+
- .high-capacity
|
|
458
|
+
- .rspec-report-opts
|
|
459
|
+
|
|
396
460
|
ce:upgrade-quarantine:
|
|
397
461
|
script:
|
|
398
462
|
- bundle exec exe/gitlab-qa Test::Omnibus::Upgrade CE -- --tag quarantine --tag ~orchestrated $RSPEC_REPORT_OPTS
|
|
@@ -464,6 +528,26 @@ ee:mattermost-quarantine:
|
|
|
464
528
|
variables:
|
|
465
529
|
QA_SCENARIO: "Test::Integration::Mattermost"
|
|
466
530
|
|
|
531
|
+
ce:service_ping_disabled:
|
|
532
|
+
extends:
|
|
533
|
+
- .rules:ce-never-when-triggered-by-feature-flag-definition-change
|
|
534
|
+
- .test
|
|
535
|
+
- .high-capacity
|
|
536
|
+
- .ce-variables
|
|
537
|
+
- .rspec-report-opts
|
|
538
|
+
variables:
|
|
539
|
+
QA_SCENARIO: "Test::Integration::ServicePingDisabled"
|
|
540
|
+
|
|
541
|
+
ee:service_ping_disabled:
|
|
542
|
+
extends:
|
|
543
|
+
- .rules:ee-never-when-triggered-by-feature-flag-definition-change
|
|
544
|
+
- .test
|
|
545
|
+
- .high-capacity
|
|
546
|
+
- .ee-variables
|
|
547
|
+
- .rspec-report-opts
|
|
548
|
+
variables:
|
|
549
|
+
QA_SCENARIO: "Test::Integration::ServicePingDisabled"
|
|
550
|
+
|
|
467
551
|
# Disabling geo jobs temporarily due to https://gitlab.com/gitlab-org/gitlab/-/issues/273063
|
|
468
552
|
# ee:geo:
|
|
469
553
|
# extends:
|
|
@@ -920,9 +1004,9 @@ ee:elasticsearch-quarantine:
|
|
|
920
1004
|
variables:
|
|
921
1005
|
QA_SCENARIO: "Test::Integration::Elasticsearch"
|
|
922
1006
|
|
|
923
|
-
ce:praefect:
|
|
1007
|
+
ce:praefect-parallel:
|
|
924
1008
|
extends:
|
|
925
|
-
- .rules:ce-never-when-triggered-by-feature-flag-definition-change
|
|
1009
|
+
- .rules:ce-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-specified
|
|
926
1010
|
- .test
|
|
927
1011
|
- .high-capacity
|
|
928
1012
|
- .ce-variables
|
|
@@ -933,6 +1017,17 @@ ce:praefect:
|
|
|
933
1017
|
QA_SCENARIO: "Test::Integration::Praefect"
|
|
934
1018
|
QA_CAN_TEST_PRAEFECT: "true"
|
|
935
1019
|
|
|
1020
|
+
ce:praefect:
|
|
1021
|
+
extends:
|
|
1022
|
+
- .rules:ce-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-not-specified
|
|
1023
|
+
- .test
|
|
1024
|
+
- .high-capacity
|
|
1025
|
+
- .ce-variables
|
|
1026
|
+
- .rspec-report-opts
|
|
1027
|
+
variables:
|
|
1028
|
+
QA_SCENARIO: "Test::Integration::Praefect"
|
|
1029
|
+
QA_CAN_TEST_PRAEFECT: "true"
|
|
1030
|
+
|
|
936
1031
|
ce:praefect-quarantine:
|
|
937
1032
|
extends:
|
|
938
1033
|
- .rules:ce-never-when-triggered-by-feature-flag-definition-change
|
|
@@ -946,9 +1041,9 @@ ce:praefect-quarantine:
|
|
|
946
1041
|
QA_CAN_TEST_PRAEFECT: "true"
|
|
947
1042
|
QA_RSPEC_TAGS: "--tag quarantine --tag ~orchestrated"
|
|
948
1043
|
|
|
949
|
-
ee:praefect:
|
|
1044
|
+
ee:praefect-parallel:
|
|
950
1045
|
extends:
|
|
951
|
-
- .rules:ee-never-when-triggered-by-feature-flag-definition-change
|
|
1046
|
+
- .rules:ee-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-specified
|
|
952
1047
|
- .test
|
|
953
1048
|
- .high-capacity
|
|
954
1049
|
- .ee-variables
|
|
@@ -959,6 +1054,17 @@ ee:praefect:
|
|
|
959
1054
|
QA_SCENARIO: "Test::Integration::Praefect"
|
|
960
1055
|
QA_CAN_TEST_PRAEFECT: "true"
|
|
961
1056
|
|
|
1057
|
+
ee:praefect:
|
|
1058
|
+
extends:
|
|
1059
|
+
- .rules:ee-never-when-triggered-by-feature-flag-definition-change-and-never-when-qa-tests-not-specified
|
|
1060
|
+
- .test
|
|
1061
|
+
- .high-capacity
|
|
1062
|
+
- .ee-variables
|
|
1063
|
+
- .rspec-report-opts
|
|
1064
|
+
variables:
|
|
1065
|
+
QA_SCENARIO: "Test::Integration::Praefect"
|
|
1066
|
+
QA_CAN_TEST_PRAEFECT: "true"
|
|
1067
|
+
|
|
962
1068
|
ee:praefect-quarantine:
|
|
963
1069
|
extends:
|
|
964
1070
|
- .rules:ee-never-when-triggered-by-feature-flag-definition-change
|
|
@@ -981,6 +1087,7 @@ ce:gitaly-cluster:
|
|
|
981
1087
|
- .rspec-report-opts
|
|
982
1088
|
variables:
|
|
983
1089
|
QA_SCENARIO: "Test::Integration::GitalyCluster"
|
|
1090
|
+
QA_LOG_PATH: "tmp/gitaly_cluster.log"
|
|
984
1091
|
|
|
985
1092
|
ce:gitaly-cluster-quarantine:
|
|
986
1093
|
extends:
|
|
@@ -992,6 +1099,7 @@ ce:gitaly-cluster-quarantine:
|
|
|
992
1099
|
- .rspec-report-opts
|
|
993
1100
|
variables:
|
|
994
1101
|
QA_SCENARIO: "Test::Integration::GitalyCluster"
|
|
1102
|
+
QA_LOG_PATH: "tmp/gitaly_cluster.log"
|
|
995
1103
|
|
|
996
1104
|
ee:gitaly-cluster:
|
|
997
1105
|
extends:
|
|
@@ -1002,6 +1110,7 @@ ee:gitaly-cluster:
|
|
|
1002
1110
|
- .rspec-report-opts
|
|
1003
1111
|
variables:
|
|
1004
1112
|
QA_SCENARIO: "Test::Integration::GitalyCluster"
|
|
1113
|
+
QA_LOG_PATH: "tmp/gitaly_cluster.log"
|
|
1005
1114
|
|
|
1006
1115
|
ee:gitaly-cluster-quarantine:
|
|
1007
1116
|
extends:
|
|
@@ -1013,6 +1122,7 @@ ee:gitaly-cluster-quarantine:
|
|
|
1013
1122
|
- .rspec-report-opts
|
|
1014
1123
|
variables:
|
|
1015
1124
|
QA_SCENARIO: "Test::Integration::GitalyCluster"
|
|
1125
|
+
QA_LOG_PATH: "tmp/gitaly_cluster.log"
|
|
1016
1126
|
|
|
1017
1127
|
ce:mtls:
|
|
1018
1128
|
extends:
|
data/docs/run_qa_against_gdk.md
CHANGED
|
@@ -49,6 +49,16 @@ make a few changes to your `gdk/gitlab/config/gitlab.yml` file.
|
|
|
49
49
|
**Note:** The hostname of the URL provided to `gitlab-qa` must match the hostname configured for GDK.
|
|
50
50
|
If they do not match, a test will be signed out when it visits a page directly because the hostname of the URL visited will be different from the hostname that was used when signing in.
|
|
51
51
|
|
|
52
|
+
**Note:** When you log into your GDK instance of GitLab for the first time, the root password requires a change.
|
|
53
|
+
GitLab QA expects the default initial password to be used in tests; see all default values listed in
|
|
54
|
+
[Supported GitLab environment variables](what_tests_can_be_run.md#supported-gitlab-environment-variables).
|
|
55
|
+
If you have changed your root password, you must set the `GITLAB_INITIAL_ROOT_PASSWORD` environment
|
|
56
|
+
variable.
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
export GITLAB_INITIAL_ROOT_PASSWORD="<GDK root password>"
|
|
60
|
+
```
|
|
61
|
+
|
|
52
62
|
### Running EE tests
|
|
53
63
|
|
|
54
64
|
When running EE tests you'll need to have a license available. GitLab engineers can [request a license](https://about.gitlab.com/handbook/developer-onboarding/#working-on-gitlab-ee).
|
|
@@ -101,7 +111,7 @@ your DNS and point to the IP/port of `dnsdock` application.
|
|
|
101
111
|
|
|
102
112
|
### Docker on macOS caveats
|
|
103
113
|
|
|
104
|
-
When using OS X Docker, you need to go to Preferences > Advanced and allocate at least **5.0 GB**,
|
|
114
|
+
When using OS X Docker, you need to go to Preferences > Resources > Advanced and allocate at least **5.0 GB**,
|
|
105
115
|
otherwise some steps may fail to execute the `chrome-webdriver`.
|
|
106
116
|
|
|
107
117
|
When using docker-machine, see [this StackOverflow link for increasing memory](https://stackoverflow.com/questions/32834082/how-to-increase-docker-machine-memory-mac/36982696#36982696).
|
|
@@ -8,20 +8,49 @@ I.e, if you have a Selenium server set up at http://localhost:4444 or if you hav
|
|
|
8
8
|
|
|
9
9
|
| Variable | Description | Default | Example(s) |
|
|
10
10
|
|---------------------------|----------------------------------------------------------------|----------|--------------------------------|
|
|
11
|
-
| QA_BROWSER | Browser to run against | "chrome" | "chrome" "firefox"
|
|
11
|
+
| QA_BROWSER | Browser to run against | "chrome" | "chrome" "firefox" "safari" |
|
|
12
12
|
| QA_REMOTE_GRID_PROTOCOL | Protocol to use | "http" | "http" "https" |
|
|
13
13
|
| QA_REMOTE_GRID | Remote grid to run tests against | | "localhost:3000" "provider:80" |
|
|
14
|
-
| QA_REMOTE_GRID_USERNAME | Username to specify in the remote grid. "USERNAME@provider:80" | |
|
|
14
|
+
| QA_REMOTE_GRID_USERNAME | Username to specify in the remote grid. "USERNAME@provider:80" | | "gitlab-sl" |
|
|
15
15
|
| QA_REMOTE_GRID_ACCESS_KEY | Key/Token paired with `QA_REMOTE_GRID_USERNAME` | | |
|
|
16
|
+
| QA_REMOTE_TUNNEL_ID | Name of the remote tunnel to use | "gitlab-sl_tunnel_id" | |
|
|
17
|
+
| QA_REMOTE_MOBILE_DEVICE_NAME | Name of mobile device to test against. `QA_BROWSER` must be set to `safari` for iOS devices and `chrome` for Android devices. | | "iPhone 12 Simulator" |
|
|
16
18
|
|
|
17
|
-
##
|
|
19
|
+
## Testing with Sauce Labs
|
|
18
20
|
|
|
19
|
-
|
|
21
|
+
Running directly against an environment like staging is not recommended because test logs expose credentials. Therefore, it is best practice and the default to use a tunnel.
|
|
20
22
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
To install a tunnel, follow these [instructions](https://docs.saucelabs.com/secure-connections/sauce-connect/installation).
|
|
24
|
+
|
|
25
|
+
To start the tunnel, copy the run command in **Sauce Labs > Tunnels** and run it in the terminal. You must be logged in to Sauce Labs. Use the credentials in 1Password to log in.
|
|
26
|
+
|
|
27
|
+
It is highly recommended to use `GITLAB_QA_ACCESS_TOKEN` to speed up tests and reduce flakiness.
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
### Run a test in a desktop browser
|
|
31
|
+
|
|
32
|
+
While tunnel is running, to test against a local instance in a desktop browser, run:
|
|
33
|
+
```shell
|
|
34
|
+
$ QA_BROWSER="safari" \
|
|
35
|
+
QA_REMOTE_GRID="ondemand.saucelabs.com:80" \
|
|
36
|
+
QA_REMOTE_GRID_USERNAME="gitlab-sl" \
|
|
37
|
+
QA_REMOTE_GRID_ACCESS_KEY="<access key found in Sauce Lab account>" \
|
|
38
|
+
GITLAB_QA_ACCESS_TOKEN="<token>" \
|
|
39
|
+
gitlab-qa Test::Instance::Any <CE|EE> http://<local_ip>:3000 -- -- <relative_spec_path>
|
|
27
40
|
```
|
|
41
|
+
|
|
42
|
+
### Run a test in a mobile device browser
|
|
43
|
+
|
|
44
|
+
`QA_REMOTE_MOBILE_DEVICE_NAME` can be any device name in the [supported browser devices](https://saucelabs.com/platform/supported-browsers-devices) in the Emulators/simulators list, and the latest versions of Android or iOS. You must set `QA_BROWSER` to `safari` for iOS devices and `chrome` for Android devices.```
|
|
45
|
+
|
|
46
|
+
```shell
|
|
47
|
+
$ QA_BROWSER="safari" \
|
|
48
|
+
QA_REMOTE_MOBILE_DEVICE_NAME="iPhone 12 Simulator" \
|
|
49
|
+
QA_REMOTE_GRID="ondemand.saucelabs.com:80" \
|
|
50
|
+
QA_REMOTE_GRID_USERNAME="gitlab-sl" \
|
|
51
|
+
QA_REMOTE_GRID_ACCESS_KEY="<found in Sauce Lab account>" \
|
|
52
|
+
GITLAB_QA_ACCESS_TOKEN="<token>" \
|
|
53
|
+
gitlab-qa Test::Instance::Any <CE|EE> http://<local_ip>:3000 -- -- <relative_spec_path>
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Results can be watched in real time in Sauce Labs under AUTOMATED > Test Results
|
|
@@ -62,6 +62,7 @@ All environment variables used by GitLab QA should be defined in [`lib/gitlab/qa
|
|
|
62
62
|
| `QA_ARTIFACTS_DIR` |`/tmp/gitlab-qa`| Path to a directory where artifacts (logs and screenshots) for failing tests will be saved. | No|
|
|
63
63
|
| `DOCKER_HOST` |`http://localhost`| Docker host to run tests against. | No|
|
|
64
64
|
| `WEBDRIVER_HEADLESS` |- | When running locally, set to `false` to allow Chrome tests to be visible - watch your tests being run. | No|
|
|
65
|
+
| `CHROME_DISABLE_DEV_SHM` | `false` | Set to `true` to disable `/dev/shm` usage in Chrome on Linux. | No|
|
|
65
66
|
| `QA_ADDITIONAL_REPOSITORY_STORAGE` |- | The name of additional, non-default storage to be used with tests tagged `repository_storage`, run via the `Test::Instance::RepositoryStorage` scenario. Note: Admin access is required to change repository storage. | No|
|
|
66
67
|
| `QA_PRAEFECT_REPOSITORY_STORAGE` |- | The name of repository storage using Praefect. Note: Admin access is required to change repository storage. | No|
|
|
67
68
|
| `QA_COOKIES` |- | Optionally set to "cookie1=value;cookie2=value" in order to add a cookie to every request. This can be used to set the canary cookie by setting it to "gitlab_canary=true". | No|
|
|
@@ -107,7 +107,14 @@ module Gitlab
|
|
|
107
107
|
retry
|
|
108
108
|
rescue StandardError => e
|
|
109
109
|
pipeline = QA::Runtime::Env.pipeline_from_project_name
|
|
110
|
-
channel =
|
|
110
|
+
channel = case pipeline
|
|
111
|
+
when "canary"
|
|
112
|
+
"qa-production"
|
|
113
|
+
when "staging-canary"
|
|
114
|
+
"qa-staging"
|
|
115
|
+
else
|
|
116
|
+
"qa-#{pipeline}"
|
|
117
|
+
end
|
|
111
118
|
error_msg = warn_exception(e)
|
|
112
119
|
|
|
113
120
|
return unless QA::Runtime::Env.ci_commit_ref_name == QA::Runtime::Env.default_branch
|
|
@@ -111,6 +111,8 @@ module Gitlab
|
|
|
111
111
|
'found:gitlab.com'
|
|
112
112
|
when 'canary', 'staging'
|
|
113
113
|
"found:#{pipeline}.gitlab.com"
|
|
114
|
+
when 'staging-canary'
|
|
115
|
+
"found:canary.staging.gitlab.com"
|
|
114
116
|
when 'preprod'
|
|
115
117
|
'found:pre.gitlab.com'
|
|
116
118
|
when 'staging-orchestrated', 'nightly', QA::Runtime::Env.default_branch, 'staging-ref', 'release'
|
|
@@ -35,7 +35,7 @@ module Gitlab
|
|
|
35
35
|
issue = find_linked_results_issue_by_iid(testcase, test)
|
|
36
36
|
|
|
37
37
|
if issue
|
|
38
|
-
issue = update_issue_title(issue, test, 'issue') if issue
|
|
38
|
+
issue = update_issue_title(issue, test, 'issue') if issue_title_needs_updating?(issue, test)
|
|
39
39
|
else
|
|
40
40
|
puts "No valid issue link found"
|
|
41
41
|
issue = find_or_create_results_issue(test)
|
|
@@ -51,7 +51,7 @@ module Gitlab
|
|
|
51
51
|
testcase = find_testcase_by_iid(test)
|
|
52
52
|
|
|
53
53
|
if testcase
|
|
54
|
-
testcase = update_issue_title(testcase, test, 'test_case') if testcase
|
|
54
|
+
testcase = update_issue_title(testcase, test, 'test_case') if issue_title_needs_updating?(testcase, test)
|
|
55
55
|
else
|
|
56
56
|
testcase = find_issue(test, 'test_case')
|
|
57
57
|
end
|
|
@@ -67,6 +67,10 @@ module Gitlab
|
|
|
67
67
|
find_issue_by_iid(iid, 'test_case')
|
|
68
68
|
end
|
|
69
69
|
|
|
70
|
+
def issue_title_needs_updating?(issue, test)
|
|
71
|
+
issue.title.strip != title_from_test(test) && !%w[canary production preprod release].include?(pipeline)
|
|
72
|
+
end
|
|
73
|
+
|
|
70
74
|
def find_linked_results_issue_by_iid(testcase, test)
|
|
71
75
|
iid = issue_iid_from_testcase(testcase)
|
|
72
76
|
|
|
@@ -15,6 +15,8 @@ module Gitlab
|
|
|
15
15
|
'QA_REMOTE_GRID_USERNAME' => :remote_grid_username,
|
|
16
16
|
'QA_REMOTE_GRID_ACCESS_KEY' => :remote_grid_access_key,
|
|
17
17
|
'QA_REMOTE_GRID_PROTOCOL' => :remote_grid_protocol,
|
|
18
|
+
'QA_REMOTE_MOBILE_DEVICE_NAME' => :remote_mobile_device_name,
|
|
19
|
+
'QA_REMOTE_TUNNEL_ID' => :remote_tunnel_id,
|
|
18
20
|
'QA_BROWSER' => :browser,
|
|
19
21
|
'QA_ADDITIONAL_REPOSITORY_STORAGE' => :qa_additional_repository_storage,
|
|
20
22
|
'QA_PRAEFECT_REPOSITORY_STORAGE' => :qa_praefect_repository_storage,
|
|
@@ -121,7 +123,8 @@ module Gitlab
|
|
|
121
123
|
'GOOGLE_JSON_KEY' => :google_json_key,
|
|
122
124
|
'GCS_BUCKET_NAME' => :gcs_bucket_name,
|
|
123
125
|
'SMOKE_ONLY' => :smoke_only,
|
|
124
|
-
'NO_ADMIN' => :no_admin
|
|
126
|
+
'NO_ADMIN' => :no_admin,
|
|
127
|
+
'CHROME_DISABLE_DEV_SHM' => :chrome_disable_dev_shm
|
|
125
128
|
}.freeze
|
|
126
129
|
|
|
127
130
|
ENV_VARIABLES.each do |env_name, method_name|
|
|
@@ -7,7 +7,7 @@ module Gitlab
|
|
|
7
7
|
class LicenseMode < Default
|
|
8
8
|
def configuration
|
|
9
9
|
<<~OMNIBUS
|
|
10
|
-
gitlab_rails['env'] = { 'GITLAB_LICENSE_MODE' => 'test', 'CUSTOMER_PORTAL_URL' => 'https://customers.
|
|
10
|
+
gitlab_rails['env'] = { 'GITLAB_LICENSE_MODE' => 'test', 'CUSTOMER_PORTAL_URL' => 'https://customers.staging.gitlab.com' }
|
|
11
11
|
OMNIBUS
|
|
12
12
|
end
|
|
13
13
|
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Gitlab
|
|
4
|
+
module QA
|
|
5
|
+
module Scenario
|
|
6
|
+
module Test
|
|
7
|
+
module Integration
|
|
8
|
+
class ServicePingDisabled < Scenario::Template
|
|
9
|
+
def perform(release, *rspec_args)
|
|
10
|
+
Component::Gitlab.perform do |gitlab|
|
|
11
|
+
gitlab.release = release
|
|
12
|
+
gitlab.network = 'test'
|
|
13
|
+
|
|
14
|
+
gitlab.omnibus_configuration << <<~OMNIBUS
|
|
15
|
+
gitlab_rails['usage_ping_enabled'] = false;
|
|
16
|
+
OMNIBUS
|
|
17
|
+
|
|
18
|
+
gitlab.instance do
|
|
19
|
+
Component::Specs.perform do |specs|
|
|
20
|
+
specs.suite = 'Test::Integration::ServicePingDisabled'
|
|
21
|
+
specs.release = gitlab.release
|
|
22
|
+
specs.network = gitlab.network
|
|
23
|
+
specs.args = [gitlab.address, *rspec_args]
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
data/lib/gitlab/qa/version.rb
CHANGED
data/lib/gitlab/qa.rb
CHANGED
|
@@ -72,6 +72,7 @@ module Gitlab
|
|
|
72
72
|
autoload :ClientSSL, 'gitlab/qa/scenario/test/integration/client_ssl'
|
|
73
73
|
autoload :Registry, 'gitlab/qa/scenario/test/integration/registry'
|
|
74
74
|
autoload :RegistryTLS, 'gitlab/qa/scenario/test/integration/registry_tls'
|
|
75
|
+
autoload :ServicePingDisabled, 'gitlab/qa/scenario/test/integration/service_ping_disabled'
|
|
75
76
|
end
|
|
76
77
|
|
|
77
78
|
module Sanity
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: gitlab-qa
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 7.
|
|
4
|
+
version: 7.15.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- GitLab Quality
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-
|
|
11
|
+
date: 2021-12-02 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: climate_control
|
|
@@ -309,6 +309,7 @@ files:
|
|
|
309
309
|
- lib/gitlab/qa/scenario/test/integration/registry.rb
|
|
310
310
|
- lib/gitlab/qa/scenario/test/integration/registry_tls.rb
|
|
311
311
|
- lib/gitlab/qa/scenario/test/integration/saml.rb
|
|
312
|
+
- lib/gitlab/qa/scenario/test/integration/service_ping_disabled.rb
|
|
312
313
|
- lib/gitlab/qa/scenario/test/integration/smtp.rb
|
|
313
314
|
- lib/gitlab/qa/scenario/test/integration/ssh_tunnel.rb
|
|
314
315
|
- lib/gitlab/qa/scenario/test/omnibus/image.rb
|