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 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