gitlab-qa 10.3.0 → 12.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -1
- data/.gitlab/changelog_config.yml +13 -0
- data/.gitlab/merge_request_templates/Release.md +13 -34
- data/.gitlab-ci.yml +3 -1
- data/.rubocop.yml +13 -2
- data/.rubocop_todo.yml +57 -97
- data/Dangerfile +1 -5
- data/Gemfile.lock +47 -39
- data/README.md +1 -2
- data/docs/release_process.md +1 -1
- data/docs/running_against_remote_grid.md +42 -3
- data/docs/what_tests_can_be_run.md +5 -2
- data/gitlab-qa.gemspec +5 -3
- data/lib/gitlab/qa/component/base.rb +9 -9
- data/lib/gitlab/qa/component/gitaly.rb +7 -5
- data/lib/gitlab/qa/component/gitaly_cluster.rb +15 -9
- data/lib/gitlab/qa/component/gitlab.rb +48 -21
- data/lib/gitlab/qa/component/mail_hog.rb +1 -0
- data/lib/gitlab/qa/component/praefect.rb +41 -31
- data/lib/gitlab/qa/component/selenoid.rb +14 -7
- data/lib/gitlab/qa/component/specs.rb +11 -5
- data/lib/gitlab/qa/component/staging.rb +4 -4
- data/lib/gitlab/qa/component/telegraf.rb +2 -1
- data/lib/gitlab/qa/docker/engine.rb +6 -3
- data/lib/gitlab/qa/docker/volumes.rb +1 -1
- data/lib/gitlab/qa/release.rb +4 -4
- data/lib/gitlab/qa/runner.rb +10 -3
- data/lib/gitlab/qa/runtime/env.rb +47 -62
- data/lib/gitlab/qa/runtime/logger.rb +1 -1
- data/lib/gitlab/qa/runtime/omnibus_configuration.rb +1 -0
- data/lib/gitlab/qa/runtime/omnibus_configurations/decomposition_single_db.rb +1 -2
- data/lib/gitlab/qa/runtime/omnibus_configurations/object_storage_gcs.rb +2 -1
- data/lib/gitlab/qa/runtime/scenario.rb +1 -5
- data/lib/gitlab/qa/scenario/actable.rb +4 -4
- data/lib/gitlab/qa/scenario/test/instance/airgapped.rb +2 -4
- data/lib/gitlab/qa/scenario/test/instance/deployment_base.rb +2 -1
- data/lib/gitlab/qa/scenario/test/integration/gitaly_cluster.rb +0 -2
- data/lib/gitlab/qa/scenario/test/integration/group_saml.rb +1 -1
- data/lib/gitlab/qa/scenario/test/integration/ldap.rb +5 -6
- data/lib/gitlab/qa/scenario/test/integration/mtls.rb +20 -6
- data/lib/gitlab/qa/scenario/test/integration/oauth.rb +13 -4
- data/lib/gitlab/qa/scenario/test/integration/praefect.rb +16 -10
- data/lib/gitlab/qa/scenario/test/integration/registry_with_cdn.rb +5 -2
- data/lib/gitlab/qa/scenario/test/omnibus/update_from_previous.rb +1 -1
- data/lib/gitlab/qa/scenario/test/omnibus/upgrade.rb +1 -3
- data/lib/gitlab/qa/scenario/test/sanity/version.rb +1 -1
- data/lib/gitlab/qa/support/config_scripts.rb +1 -1
- data/lib/gitlab/qa/support/gitlab_version_info.rb +30 -10
- data/lib/gitlab/qa/support/shell_command.rb +1 -0
- data/lib/gitlab/qa/test_logger.rb +2 -2
- data/lib/gitlab/qa/version.rb +1 -1
- data/lib/gitlab/qa.rb +0 -1
- data/support/data/admin_access_token_seed.rb +5 -1
- data/support/data/license_usage_seed.rb +3 -1
- metadata +16 -45
- data/bin/slack +0 -14
- data/exe/gitlab-qa-report +0 -10
- data/lib/gitlab/qa/report/base_test_results.rb +0 -39
- data/lib/gitlab/qa/report/find_set_dri.rb +0 -43
- data/lib/gitlab/qa/report/generate_test_session.rb +0 -275
- data/lib/gitlab/qa/report/gitlab_issue_client.rb +0 -190
- data/lib/gitlab/qa/report/gitlab_issue_dry_client.rb +0 -28
- data/lib/gitlab/qa/report/j_unit_test_results.rb +0 -27
- data/lib/gitlab/qa/report/json_test_results.rb +0 -29
- data/lib/gitlab/qa/report/prepare_stage_reports.rb +0 -86
- data/lib/gitlab/qa/report/relate_failure_issue.rb +0 -374
- data/lib/gitlab/qa/report/report_as_issue.rb +0 -176
- data/lib/gitlab/qa/report/report_results.rb +0 -64
- data/lib/gitlab/qa/report/results_in_issues.rb +0 -126
- data/lib/gitlab/qa/report/results_in_testcases.rb +0 -111
- data/lib/gitlab/qa/report/results_reporter_shared.rb +0 -70
- data/lib/gitlab/qa/report/summary_table.rb +0 -43
- data/lib/gitlab/qa/report/test_result.rb +0 -184
- data/lib/gitlab/qa/report/update_screenshot_path.rb +0 -63
- data/lib/gitlab/qa/reporter.rb +0 -131
- data/lib/gitlab/qa/runtime/omnibus_configurations/packages.rb +0 -17
- data/lib/gitlab/qa/runtime/token_finder.rb +0 -44
- data/lib/gitlab/qa/slack/post_to_slack.rb +0 -30
- data/lib/gitlab/qa/system_logs/finders/json_log_finder.rb +0 -65
- data/lib/gitlab/qa/system_logs/finders/rails/api_log_finder.rb +0 -21
- data/lib/gitlab/qa/system_logs/finders/rails/application_log_finder.rb +0 -21
- data/lib/gitlab/qa/system_logs/finders/rails/exception_log_finder.rb +0 -21
- data/lib/gitlab/qa/system_logs/finders/rails/graphql_log_finder.rb +0 -21
- data/lib/gitlab/qa/system_logs/log_types/log.rb +0 -38
- data/lib/gitlab/qa/system_logs/log_types/rails/api_log.rb +0 -34
- data/lib/gitlab/qa/system_logs/log_types/rails/application_log.rb +0 -27
- data/lib/gitlab/qa/system_logs/log_types/rails/exception_log.rb +0 -23
- data/lib/gitlab/qa/system_logs/log_types/rails/graphql_log.rb +0 -30
- data/lib/gitlab/qa/system_logs/shared_fields.rb +0 -29
- data/lib/gitlab/qa/system_logs/system_logs_formatter.rb +0 -65
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d415adc65e11bf7cb6e51536436a6569e8477bb37cb16ef6834148e1966b3a97
|
4
|
+
data.tar.gz: 18bb3333e27085779c061807124eef6921cb9e272d1bbca9f36f4c5b8fc1e703
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a3af2c133956e35c0fc594811d9027a0a61798407632c790dbefb7873605db3701ec56c0b7c7f2dc046ea4b0f711b15a40d8bb746b15c2f0d285b8bb942b7a1a
|
7
|
+
data.tar.gz: f188e6ea775ecc41d6e31de86a609a2ce479ab52055cb28f9e3c6c08feeea8d549494e578dd3c09daa46e659a654fed1ef464ab465a67033b0b7ecb6f211f9c4
|
data/.gitignore
CHANGED
@@ -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,19 @@
|
|
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
|
+
## Pre-merge 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
|
+
## Post-merge checklist
|
13
14
|
|
14
|
-
|
15
|
+
- [ ] 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).
|
16
|
+
- [ ] In the GitLab project, update the ref for `pipeline-common` in [`.gitlab/ci/qa-common/main.gitlab-ci.yml`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/ci/qa-common/main.gitlab-ci.yml).
|
17
|
+
- [ ] 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 in [`qa/Gemfile`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/qa/Gemfile) and [`qa/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).
|
15
18
|
|
16
|
-
|
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 for [package-and-test](https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/ci/package-and-test/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"
|
19
|
+
/label ~Quality ~"type::maintenance" ~"maintenance::dependency" ~Quality
|
data/.gitlab-ci.yml
CHANGED
@@ -20,7 +20,7 @@ stages:
|
|
20
20
|
- deploy
|
21
21
|
|
22
22
|
default:
|
23
|
-
image: ${CI_REGISTRY}/gitlab-org/gitlab-build-images/debian-
|
23
|
+
image: ${CI_REGISTRY}/gitlab-org/gitlab-build-images/debian-${DEBIAN_VERSION}-ruby-${RUBY_VERSION}:bundler-2.3
|
24
24
|
tags:
|
25
25
|
- gitlab-org
|
26
26
|
cache:
|
@@ -41,6 +41,7 @@ workflow:
|
|
41
41
|
- if: '$CI_PIPELINE_SOURCE == "web"'
|
42
42
|
|
43
43
|
variables:
|
44
|
+
DEBIAN_VERSION: bullseye
|
44
45
|
RUBY_VERSION: "3.0"
|
45
46
|
BUNDLE_PATH: vendor
|
46
47
|
BUNDLE_SILENCE_ROOT_WARNING: "true"
|
@@ -133,6 +134,7 @@ package-and-test:
|
|
133
134
|
inherit:
|
134
135
|
variables:
|
135
136
|
- RUBY_VERSION
|
137
|
+
- DEBIAN_VERSION
|
136
138
|
when: manual
|
137
139
|
trigger:
|
138
140
|
strategy: depend
|
data/.rubocop.yml
CHANGED
@@ -7,6 +7,11 @@ inherit_from:
|
|
7
7
|
- '.rubocop_todo.yml'
|
8
8
|
<% end %>
|
9
9
|
|
10
|
+
AllCops:
|
11
|
+
NewCops: enable
|
12
|
+
SuggestExtensions: false
|
13
|
+
TargetRubyVersion: 3.0
|
14
|
+
|
10
15
|
Lint/HashCompareByIdentity:
|
11
16
|
Enabled: true
|
12
17
|
|
@@ -41,5 +46,11 @@ RSpec/MultipleMemoizedHelpers:
|
|
41
46
|
Enabled: false
|
42
47
|
|
43
48
|
CodeReuse/ActiveRecord:
|
44
|
-
|
45
|
-
|
49
|
+
Enabled: false
|
50
|
+
|
51
|
+
Style/OperatorMethodCall:
|
52
|
+
Enabled: false
|
53
|
+
|
54
|
+
# disable for now as it might break automatic publish
|
55
|
+
Gemspec/RequireMFA:
|
56
|
+
Enabled: false
|
data/.rubocop_todo.yml
CHANGED
@@ -1,135 +1,95 @@
|
|
1
1
|
# This configuration was generated by
|
2
|
-
# `rubocop --auto-gen-config`
|
3
|
-
# on
|
2
|
+
# `rubocop --auto-gen-config --no-exclude-limit`
|
3
|
+
# on 2023-06-14 08:01:25 UTC using RuboCop version 1.43.0.
|
4
4
|
# The point is for the user to remove these configuration records
|
5
5
|
# one by one as the offenses are removed from the code base.
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
7
7
|
# versions of RuboCop, may require this file to be generated again.
|
8
8
|
|
9
|
-
# Offense count: 199
|
10
|
-
# Cop supports --auto-correct.
|
11
|
-
CodeReuse/ActiveRecord:
|
12
|
-
Enabled: false
|
13
|
-
|
14
|
-
# Offense count: 1
|
15
|
-
# Cop supports --auto-correct.
|
16
|
-
Cop/LineBreakAroundConditionalBlock:
|
17
|
-
Exclude:
|
18
|
-
- 'lib/gitlab/qa/release.rb'
|
19
|
-
|
20
9
|
# Offense count: 1
|
21
|
-
|
22
|
-
# Include: **/*.gemspec
|
23
|
-
Gemspec/RequiredRubyVersion:
|
10
|
+
Cop/AvoidReturnFromBlocks:
|
24
11
|
Exclude:
|
25
|
-
- 'gitlab
|
12
|
+
- 'lib/gitlab/qa/scenario/template.rb'
|
26
13
|
|
27
14
|
# Offense count: 1
|
15
|
+
# Configuration parameters: AllowedMethods.
|
16
|
+
# AllowedMethods: enums
|
28
17
|
Lint/ConstantDefinitionInBlock:
|
29
18
|
Exclude:
|
30
19
|
- 'spec/gitlab/qa/scenario/test/instance/deployment_base_spec.rb'
|
31
20
|
|
32
21
|
# Offense count: 5
|
33
|
-
|
22
|
+
# Configuration parameters: AllowComments, AllowEmptyLambdas.
|
23
|
+
Lint/EmptyBlock:
|
34
24
|
Exclude:
|
35
|
-
- '
|
36
|
-
- '
|
37
|
-
- 'lib/gitlab/qa/report/update_screenshot_path.rb'
|
25
|
+
- 'spec/gitlab/qa/component/gitlab_spec.rb'
|
26
|
+
- 'spec/gitlab/qa/docker/engine_spec.rb'
|
38
27
|
|
39
|
-
# Offense count:
|
40
|
-
|
41
|
-
Lint/RedundantCopDisableDirective:
|
28
|
+
# Offense count: 3
|
29
|
+
Lint/MixedRegexpCaptureTypes:
|
42
30
|
Exclude:
|
43
|
-
- 'lib/gitlab/qa/
|
44
|
-
- 'lib/gitlab/qa/runtime/scenario.rb'
|
31
|
+
- 'lib/gitlab/qa/release.rb'
|
45
32
|
|
46
|
-
# Offense count:
|
47
|
-
# Configuration parameters: IgnoredMethods.
|
33
|
+
# Offense count: 22
|
34
|
+
# Configuration parameters: AllowedMethods, AllowedPatterns, IgnoredMethods, CountRepeatedAttributes.
|
48
35
|
Metrics/AbcSize:
|
49
|
-
Max: 60
|
50
|
-
IgnoredMethods:
|
51
|
-
- perform
|
52
|
-
|
53
|
-
# Offense count: 1
|
54
|
-
# Cop supports --auto-correct.
|
55
|
-
# Configuration parameters: PreferredName.
|
56
|
-
Naming/RescuedExceptionsVariableName:
|
57
36
|
Exclude:
|
58
|
-
- 'lib/gitlab/qa/
|
37
|
+
- 'lib/gitlab/qa/scenario/test/instance/airgapped.rb'
|
38
|
+
- 'lib/gitlab/qa/scenario/test/instance/image.rb'
|
39
|
+
- 'lib/gitlab/qa/scenario/test/instance/relative_url.rb'
|
40
|
+
- 'lib/gitlab/qa/scenario/test/instance/repository_storage.rb'
|
41
|
+
- 'lib/gitlab/qa/scenario/test/integration/client_ssl.rb'
|
42
|
+
- 'lib/gitlab/qa/scenario/test/integration/elasticsearch.rb'
|
43
|
+
- 'lib/gitlab/qa/scenario/test/integration/geo.rb'
|
44
|
+
- 'lib/gitlab/qa/scenario/test/integration/gitaly_cluster.rb'
|
45
|
+
- 'lib/gitlab/qa/scenario/test/integration/gitlab_pages.rb'
|
46
|
+
- 'lib/gitlab/qa/scenario/test/integration/integrations.rb'
|
47
|
+
- 'lib/gitlab/qa/scenario/test/integration/jira.rb'
|
48
|
+
- 'lib/gitlab/qa/scenario/test/integration/mattermost.rb'
|
49
|
+
- 'lib/gitlab/qa/scenario/test/integration/metrics.rb'
|
50
|
+
- 'lib/gitlab/qa/scenario/test/integration/mtls.rb'
|
51
|
+
- 'lib/gitlab/qa/scenario/test/integration/oauth.rb'
|
52
|
+
- 'lib/gitlab/qa/scenario/test/integration/opensearch.rb'
|
53
|
+
- 'lib/gitlab/qa/scenario/test/integration/registry.rb'
|
54
|
+
- 'lib/gitlab/qa/scenario/test/integration/registry_tls.rb'
|
55
|
+
- 'lib/gitlab/qa/scenario/test/integration/registry_with_cdn.rb'
|
56
|
+
- 'lib/gitlab/qa/scenario/test/integration/smtp.rb'
|
57
|
+
- 'lib/gitlab/qa/scenario/test/integration/suggested_reviewer.rb'
|
58
|
+
- 'lib/gitlab/qa/scenario/test/sanity/version.rb'
|
59
59
|
|
60
|
-
# Offense count:
|
61
|
-
#
|
62
|
-
|
63
|
-
RSpec/ExampleWording:
|
60
|
+
# Offense count: 2
|
61
|
+
# Configuration parameters: CheckIdentifiers, CheckConstants, CheckVariables, CheckStrings, CheckSymbols, CheckComments, CheckFilepaths, FlaggedTerms.
|
62
|
+
Naming/InclusiveLanguage:
|
64
63
|
Exclude:
|
65
|
-
- '
|
64
|
+
- 'lib/gitlab/qa/scenario/test/integration/geo.rb'
|
66
65
|
|
67
66
|
# Offense count: 2
|
68
67
|
RSpec/LeakyConstantDeclaration:
|
69
68
|
Exclude:
|
70
69
|
- 'spec/gitlab/qa/scenario/test/instance/deployment_base_spec.rb'
|
71
70
|
|
72
|
-
# Offense count:
|
73
|
-
#
|
74
|
-
|
75
|
-
Exclude:
|
76
|
-
- 'lib/gitlab/qa/scenario/test/integration/ldap.rb'
|
77
|
-
|
78
|
-
# Offense count: 1
|
79
|
-
# Cop supports --auto-correct.
|
80
|
-
Style/HashTransformKeys:
|
81
|
-
Exclude:
|
82
|
-
- 'lib/gitlab/qa/docker/volumes.rb'
|
83
|
-
|
84
|
-
# Offense count: 1
|
85
|
-
# Cop supports --auto-correct.
|
86
|
-
Style/HashTransformation:
|
87
|
-
Exclude:
|
88
|
-
- 'lib/gitlab/qa/docker/volumes.rb'
|
89
|
-
|
90
|
-
# Offense count: 8
|
91
|
-
# Cop supports --auto-correct.
|
92
|
-
Style/IfUnlessModifier:
|
71
|
+
# Offense count: 33
|
72
|
+
# Configuration parameters: IgnoreNameless, IgnoreSymbolicNames.
|
73
|
+
RSpec/VerifiedDoubles:
|
93
74
|
Exclude:
|
94
|
-
- '
|
95
|
-
- '
|
96
|
-
- '
|
75
|
+
- 'spec/gitlab/qa/component/gitaly_cluster_spec.rb'
|
76
|
+
- 'spec/gitlab/qa/component/gitaly_spec.rb'
|
77
|
+
- 'spec/gitlab/qa/component/gitlab_spec.rb'
|
78
|
+
- 'spec/gitlab/qa/component/praefect_spec.rb'
|
79
|
+
- 'spec/gitlab/qa/component/selenoid_spec.rb'
|
80
|
+
- 'spec/gitlab/qa/component/specs_spec.rb'
|
81
|
+
- 'spec/gitlab/qa/docker/command_spec.rb'
|
82
|
+
- 'spec/gitlab/qa/docker/engine_spec.rb'
|
83
|
+
- 'spec/gitlab/qa/scenario/test/instance/deployment_base_spec.rb'
|
97
84
|
|
98
85
|
# Offense count: 1
|
99
86
|
Style/MissingRespondToMissing:
|
100
87
|
Exclude:
|
101
88
|
- 'lib/gitlab/qa/runtime/scenario.rb'
|
102
89
|
|
103
|
-
# Offense count:
|
104
|
-
#
|
105
|
-
# Configuration parameters:
|
106
|
-
# SupportedStyles: literals, strict
|
107
|
-
Style/MutableConstant:
|
108
|
-
Exclude:
|
109
|
-
- 'db/migrate/**/*'
|
110
|
-
- 'db/post_migrate/**/*'
|
111
|
-
- 'db/geo/migrate/**/*'
|
112
|
-
- 'lib/gitlab/qa/release.rb'
|
113
|
-
- 'lib/gitlab/qa/report/update_screenshot_path.rb'
|
114
|
-
|
115
|
-
# Offense count: 9
|
116
|
-
# Cop supports --auto-correct.
|
117
|
-
Style/RedundantRegexpEscape:
|
118
|
-
Exclude:
|
119
|
-
- 'lib/gitlab/qa/release.rb'
|
120
|
-
- 'lib/gitlab/qa/report/generate_test_session.rb'
|
121
|
-
- 'lib/gitlab/qa/report/relate_failure_issue.rb'
|
122
|
-
- 'lib/gitlab/qa/report/update_screenshot_path.rb'
|
123
|
-
|
124
|
-
# Offense count: 1
|
125
|
-
# Cop supports --auto-correct.
|
126
|
-
Style/StringConcatenation:
|
127
|
-
Exclude:
|
128
|
-
- 'lib/gitlab/qa/reporter.rb'
|
129
|
-
|
130
|
-
# Offense count: 191
|
131
|
-
# Cop supports --auto-correct.
|
132
|
-
# Configuration parameters: AutoCorrect, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
|
90
|
+
# Offense count: 24
|
91
|
+
# This cop supports safe autocorrection (--autocorrect).
|
92
|
+
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns, IgnoredPatterns.
|
133
93
|
# URISchemes: http, https
|
134
94
|
Layout/LineLength:
|
135
|
-
Max:
|
95
|
+
Max: 172
|
data/Dangerfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
gitlab-qa (
|
5
|
-
activesupport (
|
6
|
-
gitlab (~> 4.
|
4
|
+
gitlab-qa (12.2.1)
|
5
|
+
activesupport (>= 6.1, < 7.1)
|
6
|
+
gitlab (~> 4.19)
|
7
7
|
http (~> 5.0)
|
8
8
|
nokogiri (~> 1.10)
|
9
9
|
parallel (>= 1, < 2)
|
@@ -14,12 +14,11 @@ PATH
|
|
14
14
|
GEM
|
15
15
|
remote: https://rubygems.org/
|
16
16
|
specs:
|
17
|
-
activesupport (
|
17
|
+
activesupport (7.0.5.1)
|
18
18
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
19
19
|
i18n (>= 1.6, < 2)
|
20
20
|
minitest (>= 5.1)
|
21
21
|
tzinfo (~> 2.0)
|
22
|
-
zeitwerk (~> 2.3)
|
23
22
|
addressable (2.8.1)
|
24
23
|
public_suffix (>= 2.0.2, < 6.0)
|
25
24
|
ast (2.4.2)
|
@@ -91,18 +90,18 @@ GEM
|
|
91
90
|
git (1.12.0)
|
92
91
|
addressable (~> 2.8)
|
93
92
|
rchardet (~> 1.8)
|
94
|
-
gitlab (4.
|
95
|
-
httparty (~> 0.
|
93
|
+
gitlab (4.19.0)
|
94
|
+
httparty (~> 0.20)
|
96
95
|
terminal-table (>= 1.5.1)
|
97
96
|
gitlab-dangerfiles (2.11.0)
|
98
97
|
danger (>= 8.4.5)
|
99
98
|
danger-gitlab (>= 8.0.0)
|
100
|
-
gitlab-styles (
|
101
|
-
rubocop (~>
|
102
|
-
rubocop-
|
103
|
-
rubocop-performance (~> 1.
|
104
|
-
rubocop-rails (~> 2.
|
105
|
-
rubocop-rspec (~>
|
99
|
+
gitlab-styles (10.0.0)
|
100
|
+
rubocop (~> 1.43.0)
|
101
|
+
rubocop-graphql (~> 0.18)
|
102
|
+
rubocop-performance (~> 1.15)
|
103
|
+
rubocop-rails (~> 2.17)
|
104
|
+
rubocop-rspec (~> 2.18)
|
106
105
|
hashdiff (1.0.1)
|
107
106
|
http (5.1.1)
|
108
107
|
addressable (~> 2.8)
|
@@ -118,6 +117,7 @@ GEM
|
|
118
117
|
i18n (1.12.0)
|
119
118
|
concurrent-ruby (~> 1.0)
|
120
119
|
jaro_winkler (1.5.4)
|
120
|
+
json (2.6.3)
|
121
121
|
kramdown (2.4.0)
|
122
122
|
rexml
|
123
123
|
kramdown-parser-gfm (1.1.0)
|
@@ -144,16 +144,17 @@ GEM
|
|
144
144
|
sawyer (~> 0.9)
|
145
145
|
open4 (1.3.4)
|
146
146
|
parallel (1.22.1)
|
147
|
-
parser (3.
|
147
|
+
parser (3.2.2.1)
|
148
148
|
ast (~> 2.4.1)
|
149
149
|
pry (0.14.1)
|
150
150
|
coderay (~> 1.1)
|
151
151
|
method_source (~> 1.0)
|
152
152
|
public_suffix (5.0.0)
|
153
153
|
racc (1.6.0)
|
154
|
-
rack (3.0.
|
154
|
+
rack (3.0.7)
|
155
155
|
rainbow (3.1.1)
|
156
156
|
rake (13.0.6)
|
157
|
+
rbs (2.8.4)
|
157
158
|
rchardet (1.8.0)
|
158
159
|
regexp_parser (2.6.1)
|
159
160
|
reverse_markdown (2.1.1)
|
@@ -172,29 +173,35 @@ GEM
|
|
172
173
|
diff-lcs (>= 1.2.0, < 2.0)
|
173
174
|
rspec-support (~> 3.12.0)
|
174
175
|
rspec-support (3.12.0)
|
175
|
-
rubocop (
|
176
|
+
rubocop (1.43.0)
|
177
|
+
json (~> 2.3)
|
176
178
|
parallel (~> 1.10)
|
177
|
-
parser (>= 2.
|
179
|
+
parser (>= 3.2.0.0)
|
178
180
|
rainbow (>= 2.2.2, < 4.0)
|
179
|
-
regexp_parser (>= 1.8)
|
180
|
-
rexml
|
181
|
-
rubocop-ast (>=
|
181
|
+
regexp_parser (>= 1.8, < 3.0)
|
182
|
+
rexml (>= 3.2.5, < 4.0)
|
183
|
+
rubocop-ast (>= 1.24.1, < 2.0)
|
182
184
|
ruby-progressbar (~> 1.7)
|
183
|
-
unicode-display_width (>=
|
184
|
-
rubocop-ast (1.
|
185
|
-
parser (>= 3.
|
186
|
-
rubocop-
|
187
|
-
rubocop (
|
188
|
-
rubocop-
|
189
|
-
rubocop (
|
185
|
+
unicode-display_width (>= 2.4.0, < 3.0)
|
186
|
+
rubocop-ast (1.28.1)
|
187
|
+
parser (>= 3.2.1.0)
|
188
|
+
rubocop-capybara (2.18.0)
|
189
|
+
rubocop (~> 1.41)
|
190
|
+
rubocop-factory_bot (2.23.1)
|
191
|
+
rubocop (~> 1.33)
|
192
|
+
rubocop-graphql (0.19.0)
|
193
|
+
rubocop (>= 0.87, < 2)
|
194
|
+
rubocop-performance (1.18.0)
|
195
|
+
rubocop (>= 1.7.0, < 2.0)
|
190
196
|
rubocop-ast (>= 0.4.0)
|
191
|
-
rubocop-rails (2.
|
197
|
+
rubocop-rails (2.19.1)
|
192
198
|
activesupport (>= 4.2.0)
|
193
199
|
rack (>= 1.1)
|
194
|
-
rubocop (>=
|
195
|
-
rubocop-rspec (
|
196
|
-
rubocop (~>
|
197
|
-
rubocop-
|
200
|
+
rubocop (>= 1.33.0, < 2.0)
|
201
|
+
rubocop-rspec (2.22.0)
|
202
|
+
rubocop (~> 1.33)
|
203
|
+
rubocop-capybara (~> 2.17)
|
204
|
+
rubocop-factory_bot (~> 2.22)
|
198
205
|
ruby-progressbar (1.11.0)
|
199
206
|
ruby2_keywords (0.0.5)
|
200
207
|
sawyer (0.9.2)
|
@@ -209,18 +216,19 @@ GEM
|
|
209
216
|
simplecov (~> 0.19)
|
210
217
|
simplecov-html (0.12.3)
|
211
218
|
simplecov_json_formatter (0.1.4)
|
212
|
-
solargraph (0.
|
219
|
+
solargraph (0.49.0)
|
213
220
|
backport (~> 1.2)
|
214
221
|
benchmark
|
215
|
-
bundler (
|
222
|
+
bundler (~> 2.0)
|
216
223
|
diff-lcs (~> 1.4)
|
217
224
|
e2mmap
|
218
225
|
jaro_winkler (~> 1.5)
|
219
226
|
kramdown (~> 2.3)
|
220
227
|
kramdown-parser-gfm (~> 1.1)
|
221
228
|
parser (~> 3.0)
|
222
|
-
|
223
|
-
|
229
|
+
rbs (~> 2.0)
|
230
|
+
reverse_markdown (~> 2.0)
|
231
|
+
rubocop (~> 1.38)
|
224
232
|
thor (~> 1.0)
|
225
233
|
tilt (~> 2.0)
|
226
234
|
yard (~> 0.9, >= 0.9.24)
|
@@ -235,7 +243,7 @@ GEM
|
|
235
243
|
unf (0.1.4)
|
236
244
|
unf_ext
|
237
245
|
unf_ext (0.0.8.2)
|
238
|
-
unicode-display_width (
|
246
|
+
unicode-display_width (2.4.2)
|
239
247
|
webmock (3.7.0)
|
240
248
|
addressable (>= 2.3.6)
|
241
249
|
crack (>= 0.3.2)
|
@@ -252,7 +260,7 @@ DEPENDENCIES
|
|
252
260
|
climate_control (~> 1.0.1)
|
253
261
|
gitlab-dangerfiles (~> 2.11)
|
254
262
|
gitlab-qa!
|
255
|
-
gitlab-styles (~>
|
263
|
+
gitlab-styles (~> 10)
|
256
264
|
lefthook (~> 1.2.6)
|
257
265
|
pry (~> 0.11)
|
258
266
|
rake (~> 13.0)
|
@@ -264,4 +272,4 @@ DEPENDENCIES
|
|
264
272
|
webmock (= 3.7.0)
|
265
273
|
|
266
274
|
BUNDLED WITH
|
267
|
-
2.4.
|
275
|
+
2.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).
|
data/docs/release_process.md
CHANGED
@@ -23,7 +23,7 @@ when we make a change - no matter the size of the change.
|
|
23
23
|
- If there is one, update it if necessary.
|
24
24
|
- If not, update [`lib/gitlab/qa/version.rb`] to an appropriate [semantic version](https://semver.org) in a new merge request using the [release template](https://gitlab.com/gitlab-org/gitlab-qa/blob/master/.gitlab/merge_request_templates/Release.md)
|
25
25
|
and title the MR like `"Bump version to <version>"`.
|
26
|
-
- Run `bundle
|
26
|
+
- Run `bundle install` to update the `Gemfile.lock` with the new version number of `gitlab-qa`.
|
27
27
|
- Merge the merge request.
|
28
28
|
- The new version should automatically be tagged and pushed to Rubygems by the `gem-release` job in the merge commit pipeline.
|
29
29
|
- Update the release notes for the newly created tag (https://gitlab.com/gitlab-org/gitlab-qa/-/tags):
|
@@ -8,20 +8,59 @@ 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 | "latest" | "latest" "111.0" "mobile-111.0"|
|
11
|
+
| QA_BROWSER | Browser to run against | "chrome" | "chrome" "edge" |
|
13
12
|
| QA_REMOTE_GRID_PROTOCOL | Protocol to use | "http" | "http" "https" |
|
14
13
|
| QA_REMOTE_GRID | Remote grid to run tests against | | "localhost:3000" "provider:80" "selenoid:4444" |
|
15
14
|
| 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
15
|
| SELENOID_DIRECTORY | Used with Selenoid. Directory to save videos to | "<host_artifacts_dir>/selenoid" | |
|
17
16
|
| USE_SELENOID | Used with Selenoid. Sets up selenoid containers. | false | false, true |
|
18
17
|
| QA_RECORD_VIDEO | Used with Selenoid. Triggers video recording. | false | false, true |
|
18
|
+
| QA_SAVE_ALL_VIDEOS | Used with Selenoid. Saves video for both passed and failed tests | false | false, true |
|
19
|
+
| QA_SELENOID_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_SELENOID_BROWSER_VERSION | Used in conjunction with QA_SELENOID_BROWSER_IMAGE. Version of browser to run against. | "111.0" | "latest" "111.0" "mobile-111.0"|
|
21
|
+
| 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" |
|
22
|
+
| QA_VIDEO_RECORDER_VERSION | Used with Selenoid. Sets the video recorder image version to use for video recording. | "latest" | "latest" |
|
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
|
|
24
|
-
## Testing with
|
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. Also note that DOCKER_HOST can't be set to a non-http address.
|
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/video directory and as attachments in the Allure report.
|
35
|
+
|
36
|
+
Specs outside /browser_ui/ folder are not recorded, e.g. api specs.
|
37
|
+
|
38
|
+
### Add failure video recording to a pipeline for a non-live environment
|
39
|
+
|
40
|
+
Set these environment variables:
|
41
|
+
|
42
|
+
USE_SELENOID=true
|
43
|
+
QA_RECORD_VIDEO=true
|
44
|
+
QA_REMOTE_GRID="selenoid:4444"
|
45
|
+
|
46
|
+
#### To test with an Edge browser instead of Chrome
|
47
|
+
|
48
|
+
Include these environment variables:
|
49
|
+
|
50
|
+
QA_BROWSER="edge"
|
51
|
+
QA_SELENOID_BROWSER_IMAGE="browsers/edge"
|
52
|
+
|
53
|
+
#### To test with a Chrome mobile device browser
|
54
|
+
|
55
|
+
Include these environment variables:
|
56
|
+
|
57
|
+
QA_LAYOUT="phone"
|
58
|
+
QA_SELENOID_BROWSER_IMAGE="registry.gitlab.com/gitlab-org/gitlab-qa/selenoid-chrome-gitlab"
|
59
|
+
QA_SELENOID_BROWSER_VERSION=mobile-111.0
|
60
|
+
|
61
|
+
For now we have a limited number of images available for Chrome mobile browser testing, which can found in [gitlab-qa registry](https://gitlab.com/gitlab-org/gitlab-qa/container_registry/4079425)
|
62
|
+
|
63
|
+
## Testing with Sauce Labs (deprecated)
|
25
64
|
|
26
65
|
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.
|
27
66
|
|
@@ -1072,7 +1072,10 @@ gitlab-qa Test::Integration::RegistryTLS EE --omnibus-config object_storage_aws
|
|
1072
1072
|
|
1073
1073
|
### `Test::Instance::Image EE --omnibus-config decomposition_single_db`
|
1074
1074
|
|
1075
|
-
|
1075
|
+
**Note: The default Omnibus config is using a single database
|
1076
|
+
with [two database connections](https://docs.gitlab.com/omnibus/settings/database.html#configuring-multiple-database-connections)**
|
1077
|
+
|
1078
|
+
This scenario is to run tests against a GitLab instance using a single database with only one `main` connection:
|
1076
1079
|
|
1077
1080
|
```ruby
|
1078
1081
|
gitlab-qa Test::Instance::Image EE --omnibus-config decomposition_single_db
|
@@ -1080,7 +1083,7 @@ gitlab-qa Test::Instance::Image EE --omnibus-config decomposition_single_db
|
|
1080
1083
|
|
1081
1084
|
### `Test::Instance::Image EE --omnibus-config decomposition_multiple_db`
|
1082
1085
|
|
1083
|
-
This scenario is to run tests against a GitLab instance
|
1086
|
+
This scenario is to run tests against a GitLab instance using [multiple databases](https://docs.gitlab.com/ee/administration/postgresql/multiple_databases.html):
|
1084
1087
|
|
1085
1088
|
```ruby
|
1086
1089
|
gitlab-qa Test::Instance::Image EE --omnibus-config decomposition_multiple_db
|