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.
Files changed (91) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -1
  3. data/.gitlab/changelog_config.yml +13 -0
  4. data/.gitlab/merge_request_templates/Release.md +13 -34
  5. data/.gitlab-ci.yml +3 -1
  6. data/.rubocop.yml +13 -2
  7. data/.rubocop_todo.yml +57 -97
  8. data/Dangerfile +1 -5
  9. data/Gemfile.lock +47 -39
  10. data/README.md +1 -2
  11. data/docs/release_process.md +1 -1
  12. data/docs/running_against_remote_grid.md +42 -3
  13. data/docs/what_tests_can_be_run.md +5 -2
  14. data/gitlab-qa.gemspec +5 -3
  15. data/lib/gitlab/qa/component/base.rb +9 -9
  16. data/lib/gitlab/qa/component/gitaly.rb +7 -5
  17. data/lib/gitlab/qa/component/gitaly_cluster.rb +15 -9
  18. data/lib/gitlab/qa/component/gitlab.rb +48 -21
  19. data/lib/gitlab/qa/component/mail_hog.rb +1 -0
  20. data/lib/gitlab/qa/component/praefect.rb +41 -31
  21. data/lib/gitlab/qa/component/selenoid.rb +14 -7
  22. data/lib/gitlab/qa/component/specs.rb +11 -5
  23. data/lib/gitlab/qa/component/staging.rb +4 -4
  24. data/lib/gitlab/qa/component/telegraf.rb +2 -1
  25. data/lib/gitlab/qa/docker/engine.rb +6 -3
  26. data/lib/gitlab/qa/docker/volumes.rb +1 -1
  27. data/lib/gitlab/qa/release.rb +4 -4
  28. data/lib/gitlab/qa/runner.rb +10 -3
  29. data/lib/gitlab/qa/runtime/env.rb +47 -62
  30. data/lib/gitlab/qa/runtime/logger.rb +1 -1
  31. data/lib/gitlab/qa/runtime/omnibus_configuration.rb +1 -0
  32. data/lib/gitlab/qa/runtime/omnibus_configurations/decomposition_single_db.rb +1 -2
  33. data/lib/gitlab/qa/runtime/omnibus_configurations/object_storage_gcs.rb +2 -1
  34. data/lib/gitlab/qa/runtime/scenario.rb +1 -5
  35. data/lib/gitlab/qa/scenario/actable.rb +4 -4
  36. data/lib/gitlab/qa/scenario/test/instance/airgapped.rb +2 -4
  37. data/lib/gitlab/qa/scenario/test/instance/deployment_base.rb +2 -1
  38. data/lib/gitlab/qa/scenario/test/integration/gitaly_cluster.rb +0 -2
  39. data/lib/gitlab/qa/scenario/test/integration/group_saml.rb +1 -1
  40. data/lib/gitlab/qa/scenario/test/integration/ldap.rb +5 -6
  41. data/lib/gitlab/qa/scenario/test/integration/mtls.rb +20 -6
  42. data/lib/gitlab/qa/scenario/test/integration/oauth.rb +13 -4
  43. data/lib/gitlab/qa/scenario/test/integration/praefect.rb +16 -10
  44. data/lib/gitlab/qa/scenario/test/integration/registry_with_cdn.rb +5 -2
  45. data/lib/gitlab/qa/scenario/test/omnibus/update_from_previous.rb +1 -1
  46. data/lib/gitlab/qa/scenario/test/omnibus/upgrade.rb +1 -3
  47. data/lib/gitlab/qa/scenario/test/sanity/version.rb +1 -1
  48. data/lib/gitlab/qa/support/config_scripts.rb +1 -1
  49. data/lib/gitlab/qa/support/gitlab_version_info.rb +30 -10
  50. data/lib/gitlab/qa/support/shell_command.rb +1 -0
  51. data/lib/gitlab/qa/test_logger.rb +2 -2
  52. data/lib/gitlab/qa/version.rb +1 -1
  53. data/lib/gitlab/qa.rb +0 -1
  54. data/support/data/admin_access_token_seed.rb +5 -1
  55. data/support/data/license_usage_seed.rb +3 -1
  56. metadata +16 -45
  57. data/bin/slack +0 -14
  58. data/exe/gitlab-qa-report +0 -10
  59. data/lib/gitlab/qa/report/base_test_results.rb +0 -39
  60. data/lib/gitlab/qa/report/find_set_dri.rb +0 -43
  61. data/lib/gitlab/qa/report/generate_test_session.rb +0 -275
  62. data/lib/gitlab/qa/report/gitlab_issue_client.rb +0 -190
  63. data/lib/gitlab/qa/report/gitlab_issue_dry_client.rb +0 -28
  64. data/lib/gitlab/qa/report/j_unit_test_results.rb +0 -27
  65. data/lib/gitlab/qa/report/json_test_results.rb +0 -29
  66. data/lib/gitlab/qa/report/prepare_stage_reports.rb +0 -86
  67. data/lib/gitlab/qa/report/relate_failure_issue.rb +0 -374
  68. data/lib/gitlab/qa/report/report_as_issue.rb +0 -176
  69. data/lib/gitlab/qa/report/report_results.rb +0 -64
  70. data/lib/gitlab/qa/report/results_in_issues.rb +0 -126
  71. data/lib/gitlab/qa/report/results_in_testcases.rb +0 -111
  72. data/lib/gitlab/qa/report/results_reporter_shared.rb +0 -70
  73. data/lib/gitlab/qa/report/summary_table.rb +0 -43
  74. data/lib/gitlab/qa/report/test_result.rb +0 -184
  75. data/lib/gitlab/qa/report/update_screenshot_path.rb +0 -63
  76. data/lib/gitlab/qa/reporter.rb +0 -131
  77. data/lib/gitlab/qa/runtime/omnibus_configurations/packages.rb +0 -17
  78. data/lib/gitlab/qa/runtime/token_finder.rb +0 -44
  79. data/lib/gitlab/qa/slack/post_to_slack.rb +0 -30
  80. data/lib/gitlab/qa/system_logs/finders/json_log_finder.rb +0 -65
  81. data/lib/gitlab/qa/system_logs/finders/rails/api_log_finder.rb +0 -21
  82. data/lib/gitlab/qa/system_logs/finders/rails/application_log_finder.rb +0 -21
  83. data/lib/gitlab/qa/system_logs/finders/rails/exception_log_finder.rb +0 -21
  84. data/lib/gitlab/qa/system_logs/finders/rails/graphql_log_finder.rb +0 -21
  85. data/lib/gitlab/qa/system_logs/log_types/log.rb +0 -38
  86. data/lib/gitlab/qa/system_logs/log_types/rails/api_log.rb +0 -34
  87. data/lib/gitlab/qa/system_logs/log_types/rails/application_log.rb +0 -27
  88. data/lib/gitlab/qa/system_logs/log_types/rails/exception_log.rb +0 -23
  89. data/lib/gitlab/qa/system_logs/log_types/rails/graphql_log.rb +0 -30
  90. data/lib/gitlab/qa/system_logs/shared_fields.rb +0 -29
  91. 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: 2851a74117f3479437a3e355883c7a407d4f56c41aac2700028cd9686790f0ea
4
- data.tar.gz: a284df28173a258c4948ead8be3c677df487c585b60cc73ffe88d5c12b6281b5
3
+ metadata.gz: d415adc65e11bf7cb6e51536436a6569e8477bb37cb16ef6834148e1966b3a97
4
+ data.tar.gz: 18bb3333e27085779c061807124eef6921cb9e272d1bbca9f36f4c5b8fc1e703
5
5
  SHA512:
6
- metadata.gz: 44a1c9743ce4fafbaad0e20f2de55598c4686598a2c3ac50d9da69565e72a477e3a0ab90f909fb32ed2b153129912b365db19ee9af91814bf6db707dc4bc70f4
7
- data.tar.gz: f2d8e7accf348103ff3f7ab85467186dd11a7c51a5cdb691e3e8999716272ba54a06204257395a7594ea832c60b93d33a11fd198c57b957609599638ab3b2672
6
+ metadata.gz: a3af2c133956e35c0fc594811d9027a0a61798407632c790dbefb7873605db3701ec56c0b7c7f2dc046ea4b0f711b15a40d8bb746b15c2f0d285b8bb942b7a1a
7
+ data.tar.gz: f188e6ea775ecc41d6e31de86a609a2ce479ab52055cb28f9e3c6c08feeea8d549494e578dd3c09daa46e659a654fed1ef464ab465a67033b0b7ecb6f211f9c4
data/.gitignore CHANGED
@@ -6,11 +6,11 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /.idea
9
+ /vendor/bundle
9
10
  .ruby-version
10
11
  .ruby-gemset
11
12
  .DS_Store
12
13
  .rakeTasks
13
14
  .tool-versions
14
-
15
15
  # ignore built gems
16
16
  *.gem
@@ -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 `v4.5.0` with the previous release here, and `e18d76b309e42888759c1effe96767f13e34ae55`
2
- with the latest commit from https://gitlab.com/gitlab-org/gitlab-qa/commits/master that will be included in the release. -->
3
- - Diff: https://gitlab.com/gitlab-org/gitlab-qa/compare/v4.5.0...e18d76b309e42888759c1effe96767f13e34ae55
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
- - Release notes:
5
+ https://gitlab.com/gitlab-org/gitlab-qa/-/compare/v<PREVIOUS_VERSION>...<COMMIT_UPDATING_VERSION>
6
6
 
7
- <!-- Keep the sections order but remove the empty sections -->
7
+ ## Pre-merge checklist
8
8
 
9
- ```markdown
10
- ### New scenarios and scenario updates
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
- - !aaa <Title of the aaa MR>.
13
+ ## Post-merge checklist
13
14
 
14
- ### Fixes
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
- - !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 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-bullseye-ruby-${RUBY_VERSION}:bundler-2.3
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
- Exclude:
45
- - 'spec/**/*_spec.rb'
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 2022-06-21 18:16:41 UTC using RuboCop version 0.93.1.
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
- # Configuration parameters: Include.
22
- # Include: **/*.gemspec
23
- Gemspec/RequiredRubyVersion:
10
+ Cop/AvoidReturnFromBlocks:
24
11
  Exclude:
25
- - 'gitlab-qa.gemspec'
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
- Lint/MixedRegexpCaptureTypes:
22
+ # Configuration parameters: AllowComments, AllowEmptyLambdas.
23
+ Lint/EmptyBlock:
34
24
  Exclude:
35
- - 'lib/gitlab/qa/release.rb'
36
- - 'lib/gitlab/qa/report/relate_failure_issue.rb'
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: 2
40
- # Cop supports --auto-correct.
41
- Lint/RedundantCopDisableDirective:
28
+ # Offense count: 3
29
+ Lint/MixedRegexpCaptureTypes:
42
30
  Exclude:
43
- - 'lib/gitlab/qa/component/staging.rb'
44
- - 'lib/gitlab/qa/runtime/scenario.rb'
31
+ - 'lib/gitlab/qa/release.rb'
45
32
 
46
- # Offense count: 21
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/component/staging.rb'
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: 4
61
- # Cop supports --auto-correct.
62
- # Configuration parameters: CustomTransform, IgnoredWords.
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
- - 'spec/gitlab/qa/component/gitlab_spec.rb'
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: 1
73
- # Cop supports --auto-correct.
74
- Style/ExplicitBlockArgument:
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
- - 'lib/gitlab/qa/runtime/env.rb'
95
- - 'lib/gitlab/qa/runtime/scenario.rb'
96
- - 'lib/gitlab/qa/scenario/test/omnibus/upgrade.rb'
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: 5
104
- # Cop supports --auto-correct.
105
- # Configuration parameters: EnforcedStyle.
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: 189
95
+ Max: 172
data/Dangerfile CHANGED
@@ -2,8 +2,4 @@
2
2
 
3
3
  require 'gitlab-dangerfiles'
4
4
 
5
- Gitlab::Dangerfiles.for_project(self) do |dangerfiles|
6
- dangerfiles.import_plugins
7
-
8
- dangerfiles.import_dangerfiles(except: %w[changelog])
9
- end
5
+ Gitlab::Dangerfiles.for_project(self, &:import_defaults)
data/Gemfile.lock CHANGED
@@ -1,9 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- gitlab-qa (10.3.0)
5
- activesupport (~> 6.1)
6
- gitlab (~> 4.18.0)
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 (6.1.7)
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.18.0)
95
- httparty (~> 0.18)
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 (6.2.1)
101
- rubocop (~> 0.91, >= 0.91.1)
102
- rubocop-gitlab-security (~> 0.1.1)
103
- rubocop-performance (~> 1.9.2)
104
- rubocop-rails (~> 2.9)
105
- rubocop-rspec (~> 1.44)
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.1.2.1)
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.1)
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 (0.93.1)
176
+ rubocop (1.43.0)
177
+ json (~> 2.3)
176
178
  parallel (~> 1.10)
177
- parser (>= 2.7.1.5)
179
+ parser (>= 3.2.0.0)
178
180
  rainbow (>= 2.2.2, < 4.0)
179
- regexp_parser (>= 1.8)
180
- rexml
181
- rubocop-ast (>= 0.6.0)
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 (>= 1.4.0, < 2.0)
184
- rubocop-ast (1.23.0)
185
- parser (>= 3.1.1.0)
186
- rubocop-gitlab-security (0.1.1)
187
- rubocop (>= 0.51)
188
- rubocop-performance (1.9.2)
189
- rubocop (>= 0.90.0, < 2.0)
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.9.1)
197
+ rubocop-rails (2.19.1)
192
198
  activesupport (>= 4.2.0)
193
199
  rack (>= 1.1)
194
- rubocop (>= 0.90.0, < 2.0)
195
- rubocop-rspec (1.44.1)
196
- rubocop (~> 0.87)
197
- rubocop-ast (>= 0.7.1)
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.47.2)
219
+ solargraph (0.49.0)
213
220
  backport (~> 1.2)
214
221
  benchmark
215
- bundler (>= 1.17.2)
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
- reverse_markdown (>= 1.0.5, < 3)
223
- rubocop (>= 0.52)
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 (1.8.0)
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 (~> 6.2.1)
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.2
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 pipeline in the [nightly](https://gitlab.com/gitlab-org/quality/nightly)
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).
@@ -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 update` to update the `Gemfile.lock` with the new version number of `gitlab-qa`.
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" "firefox" "safari" |
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 Sauce Labs
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
- This scenario is to run tests against a GitLab instance with a [decomposed database](https://gitlab.com/groups/gitlab-org/-/epics/6160) using a single database:
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 with a [decomposed database](https://gitlab.com/groups/gitlab-org/-/epics/6160) using multiple databases:
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