gitlab-qa 7.13.0 → 7.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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
@@ -727,7 +727,7 @@ $ gitlab-qa Test::Instance::Staging
727
727
 
728
728
  ### `Test::Instance::StagingRef`
729
729
 
730
- This scenario tests that the [`Staging Ref`](https://staging-ref.testbed.gitlab.net)
730
+ This scenario tests that the [`Staging Ref`](https://staging-ref.gitlab.com)
731
731
  works as expected by running tests against it.
732
732
 
733
733
  To run tests against the GitLab instance, a GitLab QA (`gitlab/gitlab-qa`)
@@ -2,7 +2,7 @@ module Gitlab
2
2
  module QA
3
3
  module Component
4
4
  class StagingRef < Staging
5
- ADDRESS = 'https://staging-ref.testbed.gitlab.net'.freeze
5
+ ADDRESS = 'https://staging-ref.gitlab.com'.freeze
6
6
  end
7
7
  end
8
8
  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,9 +111,11 @@ 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
- when 'staging-orchestrated', 'nightly', QA::Runtime::Env.default_branch, 'staging-ref'
118
+ when 'staging-orchestrated', 'nightly', QA::Runtime::Env.default_branch, 'staging-ref', 'release'
117
119
  "found:#{pipeline}"
118
120
  else
119
121
  raise "No `found:*` label for the `#{pipeline}` pipeline!"
@@ -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,
@@ -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
@@ -1,5 +1,5 @@
1
1
  module Gitlab
2
2
  module QA
3
- VERSION = '7.13.0'.freeze
3
+ VERSION = '7.14.0'.freeze
4
4
  end
5
5
  end
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.0
4
+ version: 7.14.0
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-27 00:00:00.000000000 Z
11
+ date: 2021-11-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: climate_control
@@ -190,6 +190,7 @@ files:
190
190
  - ".dockerignore"
191
191
  - ".gitignore"
192
192
  - ".gitlab-ci.yml"
193
+ - ".gitlab/ci/rules.gitlab-ci.yml"
193
194
  - ".gitlab/merge_request_templates/Release.md"
194
195
  - ".rspec"
195
196
  - ".rubocop.yml"