gitlab-qa 7.13.2 → 7.15.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b871a70af32053e7d32aee98e213a86bcf4e8d05d69fad97bf8180a0bd618656
4
- data.tar.gz: 73d91628111ea86a9e7c13cf1ff11b21e60ed14ba028d722becba4c1df65e606
3
+ metadata.gz: eff5b2a5b6b59f95a7ce622eb57a6157dc7492af83be416d3b8950ba527c3495
4
+ data.tar.gz: 6da73f8680896f2875e4899ea21b3272c418ee0140ae9d1a54b5117e870f5e5a
5
5
  SHA512:
6
- metadata.gz: 3cf779ac1691072e13d3e616906200b291ef88f755985ae75ec24cc87e8a176acd9d120a9034011546253d7ea065b07d4b1d6fc45cb4f3d7a12324fbfc81115f
7
- data.tar.gz: 56c646ad59e829fe29f3227d5d0bd169d2088d049b02866e9aca2b5ba0471cf335674c2611f97deb8415ff424edbe78159e77e38a245d080e0dd739beae8acd4
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:
@@ -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
- ## Examples
19
+ ## Testing with Sauce Labs
18
20
 
19
- *Run QA Smoke Tests against firefox on SauceLabs*
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
- ```bash
22
- $ QA_BROWSER=firefox \
23
- QA_REMOTE_GRID=ondemand.saucelabs.com:80 \
24
- QA_REMOTE_GRID_USERNAME=user \
25
- QA_REMOTE_GRID_ACCESS_KEY=privatetoken \
26
- gitlab-qa Test::Instance::All --tags smoke
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|
@@ -21,6 +21,7 @@ module Gitlab
21
21
  command << "--publish 9300:9300"
22
22
 
23
23
  command.env("discovery.type", "single-node")
24
+ command.env("ES_JAVA_OPTS", "-Xms512m -Xmx512m")
24
25
  end
25
26
  end
26
27
  end
@@ -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 = pipeline == "canary" ? "qa-production" : "qa-#{pipeline}"
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.title.strip != title_from_test(test)
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.title.strip != title_from_test(test)
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.stg.gitlab.com' }
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
@@ -1,5 +1,5 @@
1
1
  module Gitlab
2
2
  module QA
3
- VERSION = '7.13.2'.freeze
3
+ VERSION = '7.15.1'.freeze
4
4
  end
5
5
  end
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.13.2
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-10-29 00:00:00.000000000 Z
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