gitlab-qa 7.13.0 → 7.14.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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"