gitlab-qa 10.4.1 → 10.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitlab/changelog_config.yml +13 -0
- data/.gitlab/merge_request_templates/Release.md +9 -36
- data/Dangerfile +1 -5
- data/Gemfile.lock +4 -4
- data/README.md +1 -2
- data/docs/running_against_remote_grid.md +39 -2
- data/gitlab-qa.gemspec +1 -1
- data/lib/gitlab/qa/component/gitaly_cluster.rb +0 -1
- data/lib/gitlab/qa/component/selenoid.rb +8 -3
- data/lib/gitlab/qa/runtime/env.rb +21 -1
- data/lib/gitlab/qa/scenario/test/instance/airgapped.rb +0 -2
- data/lib/gitlab/qa/scenario/test/integration/gitaly_cluster.rb +0 -2
- data/lib/gitlab/qa/scenario/test/integration/mtls.rb +0 -1
- data/lib/gitlab/qa/scenario/test/integration/praefect.rb +0 -2
- data/lib/gitlab/qa/version.rb +1 -1
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d20bcf2165a475147754d654e35715f0715552ea01dfcf866ed7d133f5ae9097
|
4
|
+
data.tar.gz: 99e4ff3dc864f8a2afee3dcdcc11ac07ffc9dfd6d344ef140356c3c5131d837b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4d73658a3b283fb9616dd4b12469467d6851f194685350b6d07f78116f34c8db647bb5bc7226ec0a5d5e4f1f14864de94665774b0ff74ab0ea31b54a26828f82
|
7
|
+
data.tar.gz: e31e45cfe7a154567ac8bf5ba08522f930236d7710eda01018c9d23d607f02adcd4584455f4f59d10eb00834eae23f65b87603c8144e602f8bd569248b89c051
|
@@ -0,0 +1,13 @@
|
|
1
|
+
---
|
2
|
+
# Settings for generating changelogs using the GitLab API. See
|
3
|
+
# https://docs.gitlab.com/ee/api/repositories.html#generate-changelog-data for
|
4
|
+
# more information.
|
5
|
+
categories:
|
6
|
+
added: Added
|
7
|
+
fixed: Fixed
|
8
|
+
changed: Changed
|
9
|
+
deprecated: Deprecated
|
10
|
+
removed: Removed
|
11
|
+
security: Security
|
12
|
+
performance: Performance
|
13
|
+
other: Other
|
@@ -1,40 +1,13 @@
|
|
1
|
-
<!-- Replace
|
2
|
-
|
3
|
-
|
1
|
+
<!-- Replace `<PREVIOUS_VERSION>` with the previous version number here, `<COMMIT_UPDATING_VERSION>` with the latest
|
2
|
+
commit from this merge request, and `<NEW_VERSION>` with the upcoming version number. -->
|
3
|
+
## Diff
|
4
4
|
|
5
|
-
-
|
5
|
+
https://gitlab.com/gitlab-org/gitlab-qa/-/compare/v<PREVIOUS_VERSION>...<COMMIT_UPDATING_VERSION>
|
6
6
|
|
7
|
-
|
7
|
+
## Checklist
|
8
8
|
|
9
|
-
|
10
|
-
|
9
|
+
- [ ] Diff link is up-to-date.
|
10
|
+
- [ ] Check the release notes: https://gitlab.com/api/v4/projects/gitlab-org%2Fgitlab-qa/repository/changelog?version=<NEW_VERSION>
|
11
|
+
- [ ] Based on the diff and the release notes, `version.rb` is updated, according to [SemVer](https://semver.org).
|
11
12
|
|
12
|
-
|
13
|
-
|
14
|
-
### Fixes
|
15
|
-
|
16
|
-
- !bbb <Title of the bbb MR>.
|
17
|
-
|
18
|
-
### Doc changes
|
19
|
-
|
20
|
-
- !ccc <Title of the ccc MR>.
|
21
|
-
|
22
|
-
### Other changes (CI, backstage)
|
23
|
-
|
24
|
-
- !ddd <Title of the ddd MR>.
|
25
|
-
```
|
26
|
-
|
27
|
-
- Checklist before merging:
|
28
|
-
- [ ] Diff link is up-to-date.
|
29
|
-
- [ ] Based on the diff, `lib/gitlab/qa/version.rb` is updated, according to [SemVer](https://semver.org).
|
30
|
-
- [ ] Release notes are accurate.
|
31
|
-
|
32
|
-
- Checklist after merging:
|
33
|
-
- [ ] [Update the release notes for the newly created tag](docs/release_process.md#how-to).
|
34
|
-
|
35
|
-
- Checklist after gitlab-qa version has been released by the post merge pipeline:
|
36
|
-
- [ ] In the pipeline-common project, [update the GITLAB_QA_VERSION](https://gitlab.com/gitlab-org/quality/pipeline-common/-/blob/master/ci/base.gitlab-ci.yml) and [create a release](https://gitlab.com/gitlab-org/quality/pipeline-common#release-process).
|
37
|
-
- [ ] In the GitLab project, update the ref for pipeline-common in [qa-common](https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/ci/qa-common/main.gitlab-ci.yml) and [review-apps](https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/ci/review-apps/qa.gitlab-ci.yml).
|
38
|
-
- [ ] Unless already done by [renovate-gitlab-bot](https://gitlab.com/dashboard/merge_requests?scope=all&state=opened&author_username=gitlab-dependency-update-bot&label_name[]=Quality), or if you need it sooner, in the GitLab project, [update the gitlab-qa gem version](https://gitlab.com/gitlab-org/gitlab/-/blob/master/qa/Gemfile) and [`Gemfile.lock`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/qa/Gemfile.lock) (for an example, see: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/117054).
|
39
|
-
|
40
|
-
/label ~Quality ~"type::maintenance" ~"maintenance::dependency"
|
13
|
+
/label ~Quality ~"type::maintenance" ~"maintenance::dependency" ~Quality
|
data/Dangerfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
gitlab-qa (10.
|
4
|
+
gitlab-qa (10.6.0)
|
5
5
|
activesupport (~> 6.1)
|
6
|
-
gitlab (~> 4.
|
6
|
+
gitlab (~> 4.19)
|
7
7
|
http (~> 5.0)
|
8
8
|
nokogiri (~> 1.10)
|
9
9
|
parallel (>= 1, < 2)
|
@@ -91,8 +91,8 @@ GEM
|
|
91
91
|
git (1.12.0)
|
92
92
|
addressable (~> 2.8)
|
93
93
|
rchardet (~> 1.8)
|
94
|
-
gitlab (4.
|
95
|
-
httparty (~> 0.
|
94
|
+
gitlab (4.19.0)
|
95
|
+
httparty (~> 0.20)
|
96
96
|
terminal-table (>= 1.5.1)
|
97
97
|
gitlab-dangerfiles (2.11.0)
|
98
98
|
danger (>= 8.4.5)
|
data/README.md
CHANGED
@@ -96,8 +96,7 @@ of tests.
|
|
96
96
|
## How do we use it
|
97
97
|
|
98
98
|
Currently, we execute the test suite against GitLab Docker images created by
|
99
|
-
Omnibus nightly via a
|
100
|
-
project.
|
99
|
+
Omnibus nightly via a [`gitlab-org/gitlab` nightly schedule pipeline](https://gitlab.com/gitlab-org/gitlab/-/pipeline_schedules).
|
101
100
|
|
102
101
|
We also execute the test suite nightly against our [staging environment](https://staging.gitlab.com)
|
103
102
|
via a pipeline in the [staging project](https://gitlab.com/gitlab-org/quality/staging).
|
@@ -8,19 +8,56 @@ 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" "
|
12
|
-
| QA_BROWSER_VERSION | Version of browser to run against | "
|
11
|
+
| QA_BROWSER | Browser to run against | "chrome" | "chrome" "edge" |
|
12
|
+
| QA_BROWSER_VERSION | Version of browser to run against | "111.0" | "latest" "111.0" "mobile-111.0"|
|
13
13
|
| QA_REMOTE_GRID_PROTOCOL | Protocol to use | "http" | "http" "https" |
|
14
14
|
| QA_REMOTE_GRID | Remote grid to run tests against | | "localhost:3000" "provider:80" "selenoid:4444" |
|
15
15
|
| QA_LAYOUT | Used with Selenoid. Tells test nav to expect collapsed menus. "phone" expects collapsed top and left nav bars, "tablet" expects collapsed left nav bar only. | | "phone", "tablet" |
|
16
16
|
| SELENOID_DIRECTORY | Used with Selenoid. Directory to save videos to | "<host_artifacts_dir>/selenoid" | |
|
17
17
|
| USE_SELENOID | Used with Selenoid. Sets up selenoid containers. | false | false, true |
|
18
18
|
| QA_RECORD_VIDEO | Used with Selenoid. Triggers video recording. | false | false, true |
|
19
|
+
| QA_BROWSER_IMAGE | Used with Selenoid. Sets the browser image to use for video recording. | "selenoid/chrome" | "selenoid/chrome", "registry.gitlab.com/gitlab-org/gitlab-qa/selenoid-chrome-gitlab" |
|
20
|
+
| QA_VIDEO_RECORDER_IMAGE | Used with Selenoid. Sets the video recorder image to use for video recording. | "presidenten/selenoid-manual-video-recorder" | "presidenten/selenoid-manual-video-recorder" |
|
21
|
+
| QA_VIDEO_RECORDER_VERSION | Used with Selenoid. Sets the video recorder image version to use for video recording. | "latest" | "latest" |
|
22
|
+
| QA_RECORD_VIDEO | Used with Selenoid. Triggers video recording. | false | false, true |
|
19
23
|
| QA_REMOTE_GRID_USERNAME | Used with Sauce Labs. Username to specify in the remote grid. "USERNAME@provider:80" | | "gitlab-sl" |
|
20
24
|
| QA_REMOTE_GRID_ACCESS_KEY | Used with Sauce Labs. Key/Token paired with `QA_REMOTE_GRID_USERNAME` | | |
|
21
25
|
| QA_REMOTE_TUNNEL_ID | Used with Sauce Labs. Name of the remote tunnel to use | "gitlab-sl_tunnel_id" | |
|
22
26
|
| QA_REMOTE_MOBILE_DEVICE_NAME | Used with Sauce Labs. 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" |
|
23
27
|
|
28
|
+
## Testing with Selenoid
|
29
|
+
|
30
|
+
Running directly against an environment like staging is not recommended because test videos can expose credentials. Therefore, it is best practice to not run against live environments.
|
31
|
+
|
32
|
+
Available browsers are defined in [browsers.json](https://gitlab.com/gitlab-org/gitlab-qa/-/blob/master/fixtures/selenoid/browsers.json)
|
33
|
+
|
34
|
+
Failure videos are available as job artifacts in the selenoid directory.
|
35
|
+
|
36
|
+
### Add failure video recording to a pipeline for a non-live environment
|
37
|
+
|
38
|
+
Set these environment variables:
|
39
|
+
|
40
|
+
USE_SELENOID=true
|
41
|
+
QA_RECORD_VIDEO=true
|
42
|
+
QA_REMOTE_GRID="selenoid:4444"
|
43
|
+
|
44
|
+
#### To test with an Edge browser instead of Chrome
|
45
|
+
|
46
|
+
Include these environment variables:
|
47
|
+
|
48
|
+
QA_BROWSER="edge"
|
49
|
+
QA_BROWSER_IMAGE="selenoid/edge"
|
50
|
+
|
51
|
+
#### To test with a Chrome mobile device browser
|
52
|
+
|
53
|
+
Include these environment variables:
|
54
|
+
|
55
|
+
QA_LAYOUT="phone"
|
56
|
+
QA_BROWSER_IMAGE="registry.gitlab.com/gitlab-org/gitlab-qa/selenoid-chrome-gitlab"
|
57
|
+
QA_BROWSER_VERSION=mobile-111.0
|
58
|
+
|
59
|
+
For now we only have version 111.0 available for chrome mobile browser testing.
|
60
|
+
|
24
61
|
## Testing with Sauce Labs
|
25
62
|
|
26
63
|
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.
|
data/gitlab-qa.gemspec
CHANGED
@@ -34,7 +34,7 @@ Gem::Specification.new do |spec|
|
|
34
34
|
spec.add_development_dependency 'webmock', '3.7.0'
|
35
35
|
|
36
36
|
spec.add_runtime_dependency 'activesupport', '~> 6.1'
|
37
|
-
spec.add_runtime_dependency 'gitlab', '~> 4.
|
37
|
+
spec.add_runtime_dependency 'gitlab', '~> 4.19'
|
38
38
|
spec.add_runtime_dependency 'http', '~> 5.0'
|
39
39
|
spec.add_runtime_dependency 'nokogiri', '~> 1.10'
|
40
40
|
spec.add_runtime_dependency 'parallel', '>= 1', '< 2'
|
@@ -27,7 +27,12 @@ module Gitlab
|
|
27
27
|
|
28
28
|
def start
|
29
29
|
pull_images
|
30
|
-
docker.run(image: image, tag: tag, args:
|
30
|
+
docker.run(image: image, tag: tag, args:
|
31
|
+
['-video-recorder-image',
|
32
|
+
QA::Runtime::Env.video_recorder_image,
|
33
|
+
'-container-network',
|
34
|
+
network]
|
35
|
+
) do |command|
|
31
36
|
set_command_args(command)
|
32
37
|
set_volumes(command)
|
33
38
|
end
|
@@ -55,8 +60,8 @@ module Gitlab
|
|
55
60
|
end
|
56
61
|
|
57
62
|
def pull_images
|
58
|
-
docker.pull(image:
|
59
|
-
docker.pull(image:
|
63
|
+
docker.pull(image: QA::Runtime::Env.browser_image, tag: Runtime::Env.browser_version)
|
64
|
+
docker.pull(image: QA::Runtime::Env.video_recorder_image, tag: QA::Runtime::Env.video_recorder_version)
|
60
65
|
end
|
61
66
|
|
62
67
|
# Set custom run command arguments
|
@@ -25,6 +25,9 @@ module Gitlab
|
|
25
25
|
'QA_BROWSER_VERSION' => :browser_version,
|
26
26
|
'QA_RECORD_VIDEO' => :record_video,
|
27
27
|
'QA_LAYOUT' => :layout,
|
28
|
+
'QA_VIDEO_RECORDER_IMAGE' => :video_recorder_image,
|
29
|
+
'QA_VIDEO_RECORDER_VERSION' => :video_recorder_version,
|
30
|
+
'QA_BROWSER_IMAGE' => :browser_image,
|
28
31
|
'QA_ADDITIONAL_REPOSITORY_STORAGE' => :qa_additional_repository_storage,
|
29
32
|
'QA_PRAEFECT_REPOSITORY_STORAGE' => :qa_praefect_repository_storage,
|
30
33
|
'QA_GITALY_NON_CLUSTER_STORAGE' => :qa_gitaly_non_cluster_storage,
|
@@ -154,7 +157,8 @@ module Gitlab
|
|
154
157
|
'RELEASE_REGISTRY_USERNAME' => :release_registry_username,
|
155
158
|
'RELEASE_REGISTRY_PASSWORD' => :release_registry_password,
|
156
159
|
'SELENOID_DIRECTORY' => :selenoid_directory,
|
157
|
-
'USE_SELENOID' => :use_selenoid
|
160
|
+
'USE_SELENOID' => :use_selenoid,
|
161
|
+
'SCHEDULE_TYPE' => :schedule_type
|
158
162
|
}.freeze
|
159
163
|
|
160
164
|
ENV_VARIABLES.each do |env_name, method_name|
|
@@ -367,6 +371,22 @@ module Gitlab
|
|
367
371
|
env_var_value_if_defined('QA_LAYOUT')&.match?(/tablet|phone/i)
|
368
372
|
end
|
369
373
|
|
374
|
+
def video_recorder_image
|
375
|
+
env_var_value_if_defined('QA_VIDEO_RECORDER_IMAGE') || 'presidenten/selenoid-manual-video-recorder'
|
376
|
+
end
|
377
|
+
|
378
|
+
def video_recorder_version
|
379
|
+
env_var_value_if_defined('QA_VIDEO_RECORDER_VERSION') || 'latest'
|
380
|
+
end
|
381
|
+
|
382
|
+
def browser_image
|
383
|
+
env_var_value_if_defined('QA_BROWSER_IMAGE') || 'selenoid/chrome'
|
384
|
+
end
|
385
|
+
|
386
|
+
def browser_version
|
387
|
+
env_var_value_if_defined('QA_BROWSER_VERSION') || '111.0'
|
388
|
+
end
|
389
|
+
|
370
390
|
def qa_run_type
|
371
391
|
return env_var_value_if_defined('QA_RUN_TYPE') if env_var_value_valid?('QA_RUN_TYPE')
|
372
392
|
|
data/lib/gitlab/qa/version.rb
CHANGED
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: 10.
|
4
|
+
version: 10.6.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: 2023-05-
|
11
|
+
date: 2023-05-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: climate_control
|
@@ -198,14 +198,14 @@ dependencies:
|
|
198
198
|
requirements:
|
199
199
|
- - "~>"
|
200
200
|
- !ruby/object:Gem::Version
|
201
|
-
version: 4.
|
201
|
+
version: '4.19'
|
202
202
|
type: :runtime
|
203
203
|
prerelease: false
|
204
204
|
version_requirements: !ruby/object:Gem::Requirement
|
205
205
|
requirements:
|
206
206
|
- - "~>"
|
207
207
|
- !ruby/object:Gem::Version
|
208
|
-
version: 4.
|
208
|
+
version: '4.19'
|
209
209
|
- !ruby/object:Gem::Dependency
|
210
210
|
name: http
|
211
211
|
requirement: !ruby/object:Gem::Requirement
|
@@ -320,6 +320,7 @@ files:
|
|
320
320
|
- ".dockerignore"
|
321
321
|
- ".gitignore"
|
322
322
|
- ".gitlab-ci.yml"
|
323
|
+
- ".gitlab/changelog_config.yml"
|
323
324
|
- ".gitlab/issue_templates/Default.md"
|
324
325
|
- ".gitlab/merge_request_templates/Default.md"
|
325
326
|
- ".gitlab/merge_request_templates/Release.md"
|