gitlab-qa 7.35.0 → 8.1.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.
- checksums.yaml +4 -4
- data/.gitlab/ci/jobs/cloud_activation.gitlab-ci.yml +0 -6
- data/.gitlab/ci/jobs/opensearch.gitlab-ci.yml +20 -0
- data/.rubocop_todo.yml +15 -23
- data/Gemfile.lock +24 -23
- data/docs/release_process.md +1 -0
- data/docs/run_qa_against_gdk.md +5 -0
- data/docs/trainings.md +2 -0
- data/docs/what_tests_can_be_run.md +1 -0
- data/gitlab-qa.gemspec +1 -0
- data/lib/gitlab/qa/component/gitlab.rb +18 -6
- data/lib/gitlab/qa/component/opensearch.rb +33 -0
- data/lib/gitlab/qa/component/specs.rb +12 -3
- data/lib/gitlab/qa/docker/engine.rb +8 -0
- data/lib/gitlab/qa/report/{junit_test_results.rb → j_unit_test_results.rb} +0 -0
- data/lib/gitlab/qa/runtime/env.rb +9 -1
- data/lib/gitlab/qa/scenario/test/integration/opensearch.rb +62 -0
- data/lib/gitlab/qa/scenario/test/omnibus/update.rb +38 -2
- data/lib/gitlab/qa/test_logger.rb +1 -1
- data/lib/gitlab/qa/version.rb +1 -1
- data/lib/gitlab/qa.rb +49 -143
- data/scripts/generate-qa-jobs.rb +1 -0
- data/support/data/admin_access_token_seed.rb +1 -1
- metadata +20 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d9b328348db20338194b52a69ad58985c4f48bfec8b9a7989b44a1840c6d27d2
|
|
4
|
+
data.tar.gz: 11aaf09daf2aac04f0f06e626087230b959ee68eba236c516ae4ce28df808817
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: bd385edcc561ad24faf5cba3b3e8ed28ff444b3b801224657c3bfd425a759c4eb39a0090e9425dedba48b0c20be6ed6a9624e41e06e304bb929c1a1b2905f30c
|
|
7
|
+
data.tar.gz: d5b8fd24b8f23e8f9bc291c626261f200f54795df0ea613bca59a59e63c34779842657954f6a52b53c92fe466e203ff2aefa0c0501cef8e120ed4c3cd33acd6a
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
ee:cloud-activation:
|
|
2
|
-
before_script:
|
|
3
|
-
- unset EE_LICENSE
|
|
4
|
-
- !reference [default, before_script]
|
|
5
2
|
extends:
|
|
6
3
|
- .rules:ee-never-when-triggered-by-feature-flag-definition-change
|
|
7
4
|
- .test
|
|
@@ -14,9 +11,6 @@ ee:cloud-activation:
|
|
|
14
11
|
GITLAB_QA_OPTIONS_COMBINED: "$GITLAB_QA_OPTIONS --seed-db license*.rb"
|
|
15
12
|
|
|
16
13
|
ee:cloud-activation-quarantine:
|
|
17
|
-
before_script:
|
|
18
|
-
- unset EE_LICENSE
|
|
19
|
-
- !reference [default, before_script]
|
|
20
14
|
extends:
|
|
21
15
|
- .rules:ee-never-when-triggered-by-feature-flag-definition-change
|
|
22
16
|
- .test
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
ee:opensearch:
|
|
2
|
+
extends:
|
|
3
|
+
- .rules:ee-never-when-triggered-by-feature-flag-definition-change
|
|
4
|
+
- .test
|
|
5
|
+
- .high-capacity
|
|
6
|
+
- .ee-variables
|
|
7
|
+
- .rspec-report-opts
|
|
8
|
+
variables:
|
|
9
|
+
QA_SCENARIO: "Test::Integration::Opensearch"
|
|
10
|
+
|
|
11
|
+
ee:opensearch-quarantine:
|
|
12
|
+
extends:
|
|
13
|
+
- .rules:ee-never-when-triggered-by-feature-flag-definition-change
|
|
14
|
+
- .test
|
|
15
|
+
- .high-capacity
|
|
16
|
+
- .ee-variables
|
|
17
|
+
- .quarantine
|
|
18
|
+
- .rspec-report-opts
|
|
19
|
+
variables:
|
|
20
|
+
QA_SCENARIO: "Test::Integration::Opensearch"
|
data/.rubocop_todo.yml
CHANGED
|
@@ -1,22 +1,21 @@
|
|
|
1
1
|
# This configuration was generated by
|
|
2
2
|
# `rubocop --auto-gen-config`
|
|
3
|
-
# on
|
|
3
|
+
# on 2022-06-21 18:16:41 UTC using RuboCop version 0.93.1.
|
|
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:
|
|
9
|
+
# Offense count: 199
|
|
10
10
|
# Cop supports --auto-correct.
|
|
11
11
|
CodeReuse/ActiveRecord:
|
|
12
12
|
Enabled: false
|
|
13
13
|
|
|
14
|
-
# Offense count:
|
|
14
|
+
# Offense count: 1
|
|
15
15
|
# Cop supports --auto-correct.
|
|
16
16
|
Cop/LineBreakAroundConditionalBlock:
|
|
17
17
|
Exclude:
|
|
18
18
|
- 'lib/gitlab/qa/release.rb'
|
|
19
|
-
- 'lib/gitlab/qa/runtime/env.rb'
|
|
20
19
|
|
|
21
20
|
# Offense count: 1
|
|
22
21
|
# Configuration parameters: Include.
|
|
@@ -44,10 +43,10 @@ Lint/RedundantCopDisableDirective:
|
|
|
44
43
|
- 'lib/gitlab/qa/component/staging.rb'
|
|
45
44
|
- 'lib/gitlab/qa/runtime/scenario.rb'
|
|
46
45
|
|
|
47
|
-
# Offense count:
|
|
46
|
+
# Offense count: 21
|
|
48
47
|
# Configuration parameters: IgnoredMethods.
|
|
49
48
|
Metrics/AbcSize:
|
|
50
|
-
Max:
|
|
49
|
+
Max: 60
|
|
51
50
|
IgnoredMethods:
|
|
52
51
|
- perform
|
|
53
52
|
|
|
@@ -58,24 +57,11 @@ Naming/RescuedExceptionsVariableName:
|
|
|
58
57
|
Exclude:
|
|
59
58
|
- 'lib/gitlab/qa/component/staging.rb'
|
|
60
59
|
|
|
61
|
-
# Offense count: 1
|
|
62
|
-
# Cop supports --auto-correct.
|
|
63
|
-
Performance/RegexpMatch:
|
|
64
|
-
Exclude:
|
|
65
|
-
- 'lib/gitlab/qa/component/gitlab.rb'
|
|
66
|
-
|
|
67
|
-
# Offense count: 1
|
|
68
|
-
# Cop supports --auto-correct.
|
|
69
|
-
# Configuration parameters: AutoCorrect.
|
|
70
|
-
Performance/StringInclude:
|
|
71
|
-
Exclude:
|
|
72
|
-
- 'lib/gitlab/qa/component/gitlab.rb'
|
|
73
|
-
|
|
74
60
|
# Offense count: 3
|
|
75
61
|
# Cop supports --auto-correct.
|
|
76
62
|
RSpec/EmptyLineAfterLetBlock:
|
|
77
63
|
Exclude:
|
|
78
|
-
- 'spec/gitlab/qa/support/
|
|
64
|
+
- 'spec/gitlab/qa/support/dev_ee_qa_image_spec.rb'
|
|
79
65
|
|
|
80
66
|
# Offense count: 4
|
|
81
67
|
# Cop supports --auto-correct.
|
|
@@ -84,6 +70,12 @@ RSpec/ExampleWording:
|
|
|
84
70
|
Exclude:
|
|
85
71
|
- 'spec/gitlab/qa/component/gitlab_spec.rb'
|
|
86
72
|
|
|
73
|
+
# Offense count: 1
|
|
74
|
+
# Configuration parameters: CustomTransform, IgnoreMethods, SpecSuffixOnly.
|
|
75
|
+
RSpec/FilePath:
|
|
76
|
+
Exclude:
|
|
77
|
+
- 'spec/gitlab/qa/support/dev_ee_qa_image_spec.rb'
|
|
78
|
+
|
|
87
79
|
# Offense count: 2
|
|
88
80
|
RSpec/LeakyConstantDeclaration:
|
|
89
81
|
Exclude:
|
|
@@ -107,7 +99,7 @@ Style/HashTransformation:
|
|
|
107
99
|
Exclude:
|
|
108
100
|
- 'lib/gitlab/qa/docker/volumes.rb'
|
|
109
101
|
|
|
110
|
-
# Offense count:
|
|
102
|
+
# Offense count: 8
|
|
111
103
|
# Cop supports --auto-correct.
|
|
112
104
|
Style/IfUnlessModifier:
|
|
113
105
|
Exclude:
|
|
@@ -147,9 +139,9 @@ Style/StringConcatenation:
|
|
|
147
139
|
Exclude:
|
|
148
140
|
- 'lib/gitlab/qa/reporter.rb'
|
|
149
141
|
|
|
150
|
-
# Offense count:
|
|
142
|
+
# Offense count: 191
|
|
151
143
|
# Cop supports --auto-correct.
|
|
152
144
|
# Configuration parameters: AutoCorrect, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
|
|
153
145
|
# URISchemes: http, https
|
|
154
146
|
Layout/LineLength:
|
|
155
|
-
Max:
|
|
147
|
+
Max: 189
|
data/Gemfile.lock
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
gitlab-qa (
|
|
4
|
+
gitlab-qa (8.1.0)
|
|
5
5
|
activesupport (~> 6.1)
|
|
6
6
|
gitlab (~> 4.18.0)
|
|
7
7
|
http (~> 5.0)
|
|
8
8
|
nokogiri (~> 1.10)
|
|
9
9
|
rainbow (~> 3.0.0)
|
|
10
10
|
table_print (= 1.5.7)
|
|
11
|
+
zeitwerk (~> 2.4)
|
|
11
12
|
|
|
12
13
|
GEM
|
|
13
14
|
remote: https://rubygems.org/
|
|
14
15
|
specs:
|
|
15
|
-
activesupport (6.1.6)
|
|
16
|
+
activesupport (6.1.6.1)
|
|
16
17
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
17
18
|
i18n (>= 1.6, < 2)
|
|
18
19
|
minitest (>= 5.1)
|
|
@@ -71,11 +72,11 @@ GEM
|
|
|
71
72
|
faraday-em_http (1.0.0)
|
|
72
73
|
faraday-em_synchrony (1.0.0)
|
|
73
74
|
faraday-excon (1.1.0)
|
|
74
|
-
faraday-http-cache (2.
|
|
75
|
+
faraday-http-cache (2.4.0)
|
|
75
76
|
faraday (>= 0.8)
|
|
76
77
|
faraday-httpclient (1.0.1)
|
|
77
|
-
faraday-multipart (1.0.
|
|
78
|
-
multipart-post (
|
|
78
|
+
faraday-multipart (1.0.4)
|
|
79
|
+
multipart-post (~> 2)
|
|
79
80
|
faraday-net_http (1.0.1)
|
|
80
81
|
faraday-net_http_persistent (1.2.0)
|
|
81
82
|
faraday-patron (1.0.0)
|
|
@@ -100,7 +101,7 @@ GEM
|
|
|
100
101
|
rubocop-rails (~> 2.9)
|
|
101
102
|
rubocop-rspec (~> 1.44)
|
|
102
103
|
hashdiff (1.0.1)
|
|
103
|
-
http (5.0
|
|
104
|
+
http (5.1.0)
|
|
104
105
|
addressable (~> 2.8)
|
|
105
106
|
http-cookie (~> 1.0)
|
|
106
107
|
http-form_data (~> 2.2)
|
|
@@ -111,7 +112,7 @@ GEM
|
|
|
111
112
|
httparty (0.20.0)
|
|
112
113
|
mime-types (~> 3.0)
|
|
113
114
|
multi_xml (>= 0.5.2)
|
|
114
|
-
i18n (1.
|
|
115
|
+
i18n (1.12.0)
|
|
115
116
|
concurrent-ruby (~> 1.0)
|
|
116
117
|
jaro_winkler (1.5.4)
|
|
117
118
|
kramdown (2.4.0)
|
|
@@ -126,17 +127,17 @@ GEM
|
|
|
126
127
|
mime-types-data (~> 3.2015)
|
|
127
128
|
mime-types-data (3.2022.0105)
|
|
128
129
|
mini_portile2 (2.8.0)
|
|
129
|
-
minitest (5.
|
|
130
|
+
minitest (5.16.2)
|
|
130
131
|
multi_xml (0.6.0)
|
|
131
|
-
multipart-post (2.
|
|
132
|
+
multipart-post (2.2.3)
|
|
132
133
|
nap (1.1.0)
|
|
133
134
|
no_proxy_fix (0.1.2)
|
|
134
|
-
nokogiri (1.13.
|
|
135
|
+
nokogiri (1.13.8)
|
|
135
136
|
mini_portile2 (~> 2.8.0)
|
|
136
137
|
racc (~> 1.4)
|
|
137
|
-
octokit (4.
|
|
138
|
-
faraday (>=
|
|
139
|
-
sawyer (~> 0.
|
|
138
|
+
octokit (4.25.1)
|
|
139
|
+
faraday (>= 1, < 3)
|
|
140
|
+
sawyer (~> 0.9)
|
|
140
141
|
open4 (1.3.4)
|
|
141
142
|
parallel (1.22.1)
|
|
142
143
|
parser (3.1.2.0)
|
|
@@ -146,11 +147,11 @@ GEM
|
|
|
146
147
|
method_source (~> 1.0)
|
|
147
148
|
public_suffix (4.0.7)
|
|
148
149
|
racc (1.6.0)
|
|
149
|
-
rack (2.2.
|
|
150
|
+
rack (2.2.4)
|
|
150
151
|
rainbow (3.0.0)
|
|
151
152
|
rake (13.0.6)
|
|
152
153
|
rchardet (1.8.0)
|
|
153
|
-
regexp_parser (2.
|
|
154
|
+
regexp_parser (2.5.0)
|
|
154
155
|
reverse_markdown (2.1.1)
|
|
155
156
|
nokogiri
|
|
156
157
|
rexml (3.2.5)
|
|
@@ -176,7 +177,7 @@ GEM
|
|
|
176
177
|
rubocop-ast (>= 0.6.0)
|
|
177
178
|
ruby-progressbar (~> 1.7)
|
|
178
179
|
unicode-display_width (>= 1.4.0, < 2.0)
|
|
179
|
-
rubocop-ast (1.
|
|
180
|
+
rubocop-ast (1.19.1)
|
|
180
181
|
parser (>= 3.1.1.0)
|
|
181
182
|
rubocop-gitlab-security (0.1.1)
|
|
182
183
|
rubocop (>= 0.51)
|
|
@@ -192,9 +193,9 @@ GEM
|
|
|
192
193
|
rubocop-ast (>= 0.7.1)
|
|
193
194
|
ruby-progressbar (1.11.0)
|
|
194
195
|
ruby2_keywords (0.0.5)
|
|
195
|
-
sawyer (0.
|
|
196
|
+
sawyer (0.9.2)
|
|
196
197
|
addressable (>= 2.3.5)
|
|
197
|
-
faraday (
|
|
198
|
+
faraday (>= 0.17.3, < 3)
|
|
198
199
|
solargraph (0.45.0)
|
|
199
200
|
backport (~> 1.2)
|
|
200
201
|
benchmark
|
|
@@ -214,8 +215,8 @@ GEM
|
|
|
214
215
|
terminal-table (3.0.2)
|
|
215
216
|
unicode-display_width (>= 1.1.1, < 3)
|
|
216
217
|
thor (1.2.1)
|
|
217
|
-
tilt (2.0.
|
|
218
|
-
tzinfo (2.0.
|
|
218
|
+
tilt (2.0.11)
|
|
219
|
+
tzinfo (2.0.5)
|
|
219
220
|
concurrent-ruby (~> 1.0)
|
|
220
221
|
unf (0.1.4)
|
|
221
222
|
unf_ext
|
|
@@ -226,9 +227,9 @@ GEM
|
|
|
226
227
|
crack (>= 0.3.2)
|
|
227
228
|
hashdiff (>= 0.4.0, < 2.0.0)
|
|
228
229
|
webrick (1.7.0)
|
|
229
|
-
yard (0.9.
|
|
230
|
+
yard (0.9.28)
|
|
230
231
|
webrick (~> 1.7.0)
|
|
231
|
-
zeitwerk (2.
|
|
232
|
+
zeitwerk (2.6.0)
|
|
232
233
|
|
|
233
234
|
PLATFORMS
|
|
234
235
|
ruby
|
|
@@ -245,4 +246,4 @@ DEPENDENCIES
|
|
|
245
246
|
webmock (= 3.7.0)
|
|
246
247
|
|
|
247
248
|
BUNDLED WITH
|
|
248
|
-
2.
|
|
249
|
+
2.3.9
|
data/docs/release_process.md
CHANGED
|
@@ -23,6 +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
27
|
- Merge the merge request.
|
|
27
28
|
- The new version should automatically be tagged and pushed to Rubygems by the `gem-release` job in the merge commit pipeline.
|
|
28
29
|
- Update the release notes for the newly created tag (https://gitlab.com/gitlab-org/gitlab-qa/-/tags):
|
data/docs/run_qa_against_gdk.md
CHANGED
|
@@ -120,6 +120,11 @@ This is required because chrome-webdriver makes use of `/dev/shm` shared memory.
|
|
|
120
120
|
~3GB but unless you allocate 5GB or more some magic numbers may not enable a bigger `/dev/shm` in the
|
|
121
121
|
'host' VM that "native" docker runs on.
|
|
122
122
|
|
|
123
|
+
By default, Docker runs a container with a /dev/shm shared memory space 64MB.
|
|
124
|
+
This is typically too small for Chrome and will cause Chrome to crash when rendering large pages and fail the tests.
|
|
125
|
+
To fix, run the container with docker run `--shm-size=1gb` to increase the size of `/dev/shm`.
|
|
126
|
+
Since Chrome 65, this is no longer necessary. Instead, launch the browser with the `CHROME_DISABLE_DEV_SHM=true`.
|
|
127
|
+
|
|
123
128
|
Please note that while it's possible to run multi-node tests like Geo Primary and Secondary, you can't
|
|
124
129
|
access the machines from your host machine, as they are all exposed as `0.0.0.0:port`, and because
|
|
125
130
|
of that they don't match the configured VHOSTs in your GitLab installation, so the redirect login
|
data/docs/trainings.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# GitLab QA trainings
|
|
2
2
|
|
|
3
|
+
The handbook has [information about the entire test automation framework](https://about.gitlab.com/handbook/engineering/quality/#test-automation-framework), including GitLab QA. There you can find links to additional documentation and videos.
|
|
4
|
+
|
|
3
5
|
## Build team training on GitLab QA
|
|
4
6
|
|
|
5
7
|
A great introduction to the GitLab QA project, its internal structure, how it's
|
|
@@ -98,6 +98,7 @@ All environment variables used by GitLab QA should be defined in [`lib/gitlab/qa
|
|
|
98
98
|
| `GEO_FAILOVER` | `false` | Set to `true` when a Geo secondary site has been promoted to a Geo primary site. | No|
|
|
99
99
|
| `GITLAB_INITIAL_ROOT_PASSWORD` | `5iveL!fe` | Initial root password for Omnibus installations | No|
|
|
100
100
|
| `COLORIZED_LOGS` | `false` | Colors GitLab QA and test logs to improve readability | No|
|
|
101
|
+
| `QA_DOCKER_ADD_HOSTS` |- | Comma separated list of hosts to add to /etc/hosts in docker container | No|
|
|
101
102
|
|
|
102
103
|
## [Supported Remote Grid environment variables](./running_against_remote_grid.md)
|
|
103
104
|
|
data/gitlab-qa.gemspec
CHANGED
|
@@ -7,6 +7,7 @@ require 'uri'
|
|
|
7
7
|
require 'forwardable'
|
|
8
8
|
require 'openssl'
|
|
9
9
|
require 'tempfile'
|
|
10
|
+
require 'json'
|
|
10
11
|
|
|
11
12
|
module Gitlab
|
|
12
13
|
module QA
|
|
@@ -119,6 +120,10 @@ module Gitlab
|
|
|
119
120
|
super
|
|
120
121
|
end
|
|
121
122
|
|
|
123
|
+
def exist?(image, tag)
|
|
124
|
+
docker.manifest_exists?("#{image}:#{tag}")
|
|
125
|
+
end
|
|
126
|
+
|
|
122
127
|
def prepare_gitlab_omnibus_config
|
|
123
128
|
set_formless_login_token
|
|
124
129
|
set_license_mode
|
|
@@ -202,18 +207,18 @@ module Gitlab
|
|
|
202
207
|
end
|
|
203
208
|
|
|
204
209
|
def rails_version
|
|
205
|
-
|
|
206
|
-
@release.image, @release.tag,
|
|
207
|
-
'/opt/gitlab/version-manifest.json'
|
|
208
|
-
)
|
|
209
|
-
|
|
210
|
-
manifest = JSON.parse(json)
|
|
210
|
+
manifest = JSON.parse(read_package_manifest)
|
|
211
211
|
{
|
|
212
212
|
sha: manifest['software']['gitlab-rails']['locked_version'],
|
|
213
213
|
source: manifest['software']['gitlab-rails']['locked_source']['git']
|
|
214
214
|
}
|
|
215
215
|
end
|
|
216
216
|
|
|
217
|
+
def package_version
|
|
218
|
+
manifest = JSON.parse(read_package_manifest)
|
|
219
|
+
manifest['software']['package-scripts']['locked_version']
|
|
220
|
+
end
|
|
221
|
+
|
|
217
222
|
def copy_key_file(env_key)
|
|
218
223
|
key_dir = ENV['CI_PROJECT_DIR'] || Dir.tmpdir
|
|
219
224
|
key_file = Tempfile.new(env_key.downcase, key_dir)
|
|
@@ -229,6 +234,13 @@ module Gitlab
|
|
|
229
234
|
|
|
230
235
|
private
|
|
231
236
|
|
|
237
|
+
def read_package_manifest
|
|
238
|
+
@docker.read_file(
|
|
239
|
+
@release.image, @release.tag,
|
|
240
|
+
'/opt/gitlab/version-manifest.json'
|
|
241
|
+
)
|
|
242
|
+
end
|
|
243
|
+
|
|
232
244
|
# Copy certs to a temporary directory in current working directory.
|
|
233
245
|
# This is needed for docker-in-docker ci environments where mount points outside of build dir are not accessible
|
|
234
246
|
#
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Gitlab
|
|
4
|
+
module QA
|
|
5
|
+
module Component
|
|
6
|
+
class Opensearch < Base
|
|
7
|
+
DOCKER_IMAGE = 'opensearchproject/opensearch'
|
|
8
|
+
|
|
9
|
+
def name
|
|
10
|
+
@name ||= "elastic68"
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def tag
|
|
14
|
+
Runtime::Env.opensearch_version
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def start
|
|
18
|
+
@docker.run(image: image, tag: tag) do |command|
|
|
19
|
+
command << "-d"
|
|
20
|
+
command << "--name #{name}"
|
|
21
|
+
command << "--net #{network}"
|
|
22
|
+
command << "--publish 9200:9200"
|
|
23
|
+
command << "--publish 9300:9300"
|
|
24
|
+
|
|
25
|
+
command.env("discovery.type", "single-node")
|
|
26
|
+
command.env("ES_JAVA_OPTS", "-Xms512m -Xmx512m")
|
|
27
|
+
command.env("plugins.security.disabled", "true")
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -23,9 +23,7 @@ module Gitlab
|
|
|
23
23
|
|
|
24
24
|
raise ArgumentError unless [suite, release].all?
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
@docker.pull(image: qa_image) unless Runtime::Env.skip_pull?
|
|
26
|
+
docker_pull_qa_image_if_needed
|
|
29
27
|
|
|
30
28
|
Runtime::Logger.info("Running test suite `#{suite}` for #{release.project_name}")
|
|
31
29
|
|
|
@@ -52,6 +50,11 @@ module Gitlab
|
|
|
52
50
|
command.env('QA_HOSTNAME', hostname)
|
|
53
51
|
end
|
|
54
52
|
|
|
53
|
+
unless Runtime::Env.docker_add_hosts.empty?
|
|
54
|
+
hosts = Runtime::Env.docker_add_hosts.map { |host| "--add-host=#{host} " }.join
|
|
55
|
+
command << hosts # override /etc/hosts in docker container when test runs
|
|
56
|
+
end
|
|
57
|
+
|
|
55
58
|
env.merge(Runtime::Env.variables).each do |key, value|
|
|
56
59
|
command.env(key, value)
|
|
57
60
|
end
|
|
@@ -70,6 +73,12 @@ module Gitlab
|
|
|
70
73
|
|
|
71
74
|
private
|
|
72
75
|
|
|
76
|
+
def docker_pull_qa_image_if_needed
|
|
77
|
+
@docker.login(**release.login_params) if release.login_params
|
|
78
|
+
|
|
79
|
+
@docker.pull(image: qa_image) unless Runtime::Env.skip_pull?
|
|
80
|
+
end
|
|
81
|
+
|
|
73
82
|
def args_with_flags(args, feature_flag_set)
|
|
74
83
|
return args if feature_flag_set.empty?
|
|
75
84
|
|
|
@@ -110,6 +110,14 @@ module Gitlab
|
|
|
110
110
|
Docker::Command.execute("rm -f #{name}")
|
|
111
111
|
end
|
|
112
112
|
|
|
113
|
+
def manifest_exists?(name)
|
|
114
|
+
Docker::Command.execute("manifest inspect #{name}")
|
|
115
|
+
rescue Docker::Shellout::StatusError
|
|
116
|
+
false
|
|
117
|
+
else
|
|
118
|
+
true
|
|
119
|
+
end
|
|
120
|
+
|
|
113
121
|
def container_exists?(name)
|
|
114
122
|
Docker::Command.execute("container inspect #{name}")
|
|
115
123
|
rescue Docker::Shellout::StatusError
|
|
File without changes
|
|
@@ -229,7 +229,11 @@ module Gitlab
|
|
|
229
229
|
end
|
|
230
230
|
|
|
231
231
|
def elastic_version
|
|
232
|
-
env_var_value_if_defined('ELASTIC_VERSION') || '
|
|
232
|
+
env_var_value_if_defined('ELASTIC_VERSION') || '8.2.0'
|
|
233
|
+
end
|
|
234
|
+
|
|
235
|
+
def opensearch_version
|
|
236
|
+
env_var_value_if_defined('OPENSEARCH_VERSION') || '2.0.1'
|
|
233
237
|
end
|
|
234
238
|
|
|
235
239
|
def require_license!
|
|
@@ -357,6 +361,10 @@ module Gitlab
|
|
|
357
361
|
"#{ci_project_name}-#{test_subset}"
|
|
358
362
|
end
|
|
359
363
|
|
|
364
|
+
def docker_add_hosts
|
|
365
|
+
(env_var_value_if_defined('QA_DOCKER_ADD_HOSTS') || '').split(',')
|
|
366
|
+
end
|
|
367
|
+
|
|
360
368
|
private
|
|
361
369
|
|
|
362
370
|
def enabled?(value, default: true)
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Gitlab
|
|
4
|
+
module QA
|
|
5
|
+
module Scenario
|
|
6
|
+
module Test
|
|
7
|
+
module Integration
|
|
8
|
+
class Opensearch < Scenario::Template
|
|
9
|
+
attr_reader :gitlab_name, :spec_suite
|
|
10
|
+
|
|
11
|
+
def initialize
|
|
12
|
+
@gitlab_name = 'gitlab-opensearch'
|
|
13
|
+
# Currently the test suite that tests Advanced Search features is called 'Elasticsearch' which we hope to abstract to 'Advancedsearch' in the future
|
|
14
|
+
@spec_suite = 'QA::EE::Scenario::Test::Integration::Elasticsearch'
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def before_perform(release)
|
|
18
|
+
raise ArgumentError, 'OpenSearch is an EE only feature!' unless release.ee?
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def perform(release, *rspec_args)
|
|
22
|
+
release = QA::Release.new(release)
|
|
23
|
+
before_perform(release)
|
|
24
|
+
|
|
25
|
+
Component::Gitlab.perform do |gitlab|
|
|
26
|
+
gitlab.release = release
|
|
27
|
+
setup_opensearch_on gitlab
|
|
28
|
+
|
|
29
|
+
Component::Opensearch.perform do |opensearch|
|
|
30
|
+
opensearch.network = 'test'
|
|
31
|
+
opensearch.instance do
|
|
32
|
+
gitlab.instance do
|
|
33
|
+
Runtime::Logger.info("Running #{spec_suite} specs!")
|
|
34
|
+
|
|
35
|
+
Component::Specs.perform do |specs|
|
|
36
|
+
specs.suite = spec_suite
|
|
37
|
+
specs.release = gitlab.release
|
|
38
|
+
specs.network = gitlab.network
|
|
39
|
+
specs.args = [gitlab.address, *rspec_args]
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def empty_index
|
|
48
|
+
@empty_index ||= ["gitlab-rake gitlab:elastic:create_empty_index"]
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def setup_opensearch_on(instance)
|
|
52
|
+
instance.name = gitlab_name
|
|
53
|
+
instance.network = 'test'
|
|
54
|
+
instance.elastic_url = "http://elastic68:9200"
|
|
55
|
+
instance.exec_commands = empty_index
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
@@ -10,8 +10,44 @@ module Gitlab
|
|
|
10
10
|
module Omnibus
|
|
11
11
|
class Update < Scenario::Template
|
|
12
12
|
def perform(from_release, to_release = nil, *rspec_args)
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
version = Component::Gitlab.perform do |gitlab|
|
|
14
|
+
gitlab.release = from_release
|
|
15
|
+
gitlab.act do
|
|
16
|
+
pull
|
|
17
|
+
package_version
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
if version
|
|
22
|
+
# Sub any plus symbols in version eg. "15.1.2+ce.0"
|
|
23
|
+
version.tr!('+', '-')
|
|
24
|
+
Runtime::Logger.info("Found previous version '#{version}'")
|
|
25
|
+
|
|
26
|
+
current_release = QA::Release.new(to_release || from_release)
|
|
27
|
+
|
|
28
|
+
type = current_release.ee? ? 'ee' : 'ce'
|
|
29
|
+
|
|
30
|
+
existing_previous = Component::Gitlab.perform do |gitlab|
|
|
31
|
+
gitlab.act do
|
|
32
|
+
next "gitlab/gitlab-#{type}:#{version}" if exist?("gitlab/gitlab-#{type}", version)
|
|
33
|
+
|
|
34
|
+
next "gitlab/gitlab-#{type}:#{version}-#{type}.0" if exist?("gitlab/gitlab-#{type}", "#{version}-#{type}.0")
|
|
35
|
+
|
|
36
|
+
nil
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
else
|
|
40
|
+
Runtime::Logger.info("Could not find previous image version")
|
|
41
|
+
existing_previous = nil
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
previous_release = if existing_previous
|
|
45
|
+
Runtime::Logger.info("Using previous image '#{existing_previous}'")
|
|
46
|
+
QA::Release.new(existing_previous)
|
|
47
|
+
else
|
|
48
|
+
Runtime::Logger.info("Using stable as previous image")
|
|
49
|
+
QA::Release.new(from_release).previous_stable
|
|
50
|
+
end
|
|
15
51
|
|
|
16
52
|
Docker::Volumes.new.with_temporary_volumes do |volumes|
|
|
17
53
|
Component::Gitlab.perform do |gitlab|
|
data/lib/gitlab/qa/version.rb
CHANGED
data/lib/gitlab/qa.rb
CHANGED
|
@@ -1,151 +1,57 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require 'rainbow/refinement'
|
|
4
|
+
require 'zeitwerk'
|
|
4
5
|
|
|
5
6
|
module Gitlab
|
|
6
7
|
module QA
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
module Omnibus
|
|
57
|
-
autoload :Image, 'gitlab/qa/scenario/test/omnibus/image'
|
|
58
|
-
autoload :Update, 'gitlab/qa/scenario/test/omnibus/update'
|
|
59
|
-
autoload :Upgrade, 'gitlab/qa/scenario/test/omnibus/upgrade'
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
module Integration
|
|
63
|
-
autoload :Geo, 'gitlab/qa/scenario/test/integration/geo'
|
|
64
|
-
autoload :LDAP, 'gitlab/qa/scenario/test/integration/ldap'
|
|
65
|
-
autoload :LDAPNoTLS, 'gitlab/qa/scenario/test/integration/ldap_no_tls'
|
|
66
|
-
autoload :LDAPNoServer, 'gitlab/qa/scenario/test/integration/ldap_no_server'
|
|
67
|
-
autoload :LDAPTLS, 'gitlab/qa/scenario/test/integration/ldap_tls'
|
|
68
|
-
autoload :SAML, 'gitlab/qa/scenario/test/integration/saml'
|
|
69
|
-
autoload :GroupSAML, 'gitlab/qa/scenario/test/integration/group_saml'
|
|
70
|
-
autoload :InstanceSAML, 'gitlab/qa/scenario/test/integration/instance_saml'
|
|
71
|
-
autoload :Mattermost, 'gitlab/qa/scenario/test/integration/mattermost'
|
|
72
|
-
autoload :Kubernetes, 'gitlab/qa/scenario/test/integration/kubernetes'
|
|
73
|
-
autoload :Praefect, 'gitlab/qa/scenario/test/integration/praefect'
|
|
74
|
-
autoload :Elasticsearch, 'gitlab/qa/scenario/test/integration/elasticsearch'
|
|
75
|
-
autoload :SMTP, 'gitlab/qa/scenario/test/integration/smtp'
|
|
76
|
-
autoload :GitalyCluster, 'gitlab/qa/scenario/test/integration/gitaly_cluster'
|
|
77
|
-
autoload :Jira, 'gitlab/qa/scenario/test/integration/jira'
|
|
78
|
-
autoload :SSHTunnel, 'gitlab/qa/scenario/test/integration/ssh_tunnel'
|
|
79
|
-
autoload :MTLS, 'gitlab/qa/scenario/test/integration/mtls'
|
|
80
|
-
autoload :ClientSSL, 'gitlab/qa/scenario/test/integration/client_ssl'
|
|
81
|
-
autoload :Registry, 'gitlab/qa/scenario/test/integration/registry'
|
|
82
|
-
autoload :RegistryTLS, 'gitlab/qa/scenario/test/integration/registry_tls'
|
|
83
|
-
autoload :ServicePingDisabled, 'gitlab/qa/scenario/test/integration/service_ping_disabled'
|
|
84
|
-
autoload :Integrations, 'gitlab/qa/scenario/test/integration/integrations'
|
|
85
|
-
autoload :RegistryWithCDN, 'gitlab/qa/scenario/test/integration/registry_with_cdn'
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
module Sanity
|
|
89
|
-
autoload :Version, 'gitlab/qa/scenario/test/sanity/version'
|
|
90
|
-
end
|
|
91
|
-
end
|
|
92
|
-
end
|
|
93
|
-
|
|
94
|
-
module Component
|
|
95
|
-
autoload :Base, 'gitlab/qa/component/base'
|
|
96
|
-
autoload :Gitlab, 'gitlab/qa/component/gitlab'
|
|
97
|
-
autoload :InternetTunnel, 'gitlab/qa/component/internet_tunnel'
|
|
98
|
-
autoload :LDAP, 'gitlab/qa/component/ldap'
|
|
99
|
-
autoload :SAML, 'gitlab/qa/component/saml'
|
|
100
|
-
autoload :Specs, 'gitlab/qa/component/specs'
|
|
101
|
-
autoload :Staging, 'gitlab/qa/component/staging'
|
|
102
|
-
autoload :StagingRef, 'gitlab/qa/component/staging_ref'
|
|
103
|
-
autoload :Production, 'gitlab/qa/component/production'
|
|
104
|
-
autoload :Minio, 'gitlab/qa/component/minio'
|
|
105
|
-
autoload :Preprod, 'gitlab/qa/component/preprod'
|
|
106
|
-
autoload :Release, 'gitlab/qa/component/release'
|
|
107
|
-
autoload :Elasticsearch, 'gitlab/qa/component/elasticsearch'
|
|
108
|
-
autoload :MailHog, 'gitlab/qa/component/mail_hog'
|
|
109
|
-
autoload :Jira, 'gitlab/qa/component/jira'
|
|
110
|
-
autoload :PostgreSQL, 'gitlab/qa/component/postgresql'
|
|
111
|
-
autoload :Telegraf, 'gitlab/qa/component/telegraf'
|
|
112
|
-
end
|
|
113
|
-
|
|
114
|
-
module Support
|
|
115
|
-
autoload :GetRequest, 'gitlab/qa/support/get_request'
|
|
116
|
-
autoload :HttpRequest, 'gitlab/qa/support/http_request'
|
|
117
|
-
autoload :DevEEQAImage, 'gitlab/qa/support/dev_ee_qa_image'
|
|
118
|
-
autoload :InvalidResponseError, 'gitlab/qa/support/invalid_response_error'
|
|
119
|
-
end
|
|
120
|
-
|
|
121
|
-
module Docker
|
|
122
|
-
autoload :Command, 'gitlab/qa/docker/command'
|
|
123
|
-
autoload :Engine, 'gitlab/qa/docker/engine'
|
|
124
|
-
autoload :Shellout, 'gitlab/qa/docker/shellout'
|
|
125
|
-
autoload :Volumes, 'gitlab/qa/docker/volumes'
|
|
126
|
-
end
|
|
127
|
-
|
|
128
|
-
module Report
|
|
129
|
-
autoload :GitlabIssueClient, 'gitlab/qa/report/gitlab_issue_client'
|
|
130
|
-
autoload :GitlabIssueDryClient, 'gitlab/qa/report/gitlab_issue_dry_client'
|
|
131
|
-
autoload :BaseTestResults, 'gitlab/qa/report/base_test_results'
|
|
132
|
-
autoload :RelateFailureIssue, 'gitlab/qa/report/relate_failure_issue'
|
|
133
|
-
autoload :JsonTestResults, 'gitlab/qa/report/json_test_results'
|
|
134
|
-
autoload :JUnitTestResults, 'gitlab/qa/report/junit_test_results'
|
|
135
|
-
autoload :PrepareStageReports, 'gitlab/qa/report/prepare_stage_reports'
|
|
136
|
-
autoload :ReportAsIssue, 'gitlab/qa/report/report_as_issue'
|
|
137
|
-
autoload :ReportResults, 'gitlab/qa/report/report_results'
|
|
138
|
-
autoload :ResultsInIssues, 'gitlab/qa/report/results_in_issues'
|
|
139
|
-
autoload :ResultsInTestCases, 'gitlab/qa/report/results_in_testcases'
|
|
140
|
-
autoload :ResultsReporterShared, 'gitlab/qa/report/results_reporter_shared'
|
|
141
|
-
autoload :GenerateTestSession, 'gitlab/qa/report/generate_test_session'
|
|
142
|
-
autoload :SummaryTable, 'gitlab/qa/report/summary_table'
|
|
143
|
-
autoload :TestResult, 'gitlab/qa/report/test_result'
|
|
144
|
-
autoload :UpdateScreenshotPath, 'gitlab/qa/report/update_screenshot_path'
|
|
145
|
-
end
|
|
146
|
-
|
|
147
|
-
module Slack
|
|
148
|
-
autoload :PostToSlack, 'gitlab/qa/slack/post_to_slack'
|
|
149
|
-
end
|
|
8
|
+
loader = Zeitwerk::Loader.new
|
|
9
|
+
loader.push_dir("#{__dir__}/qa", namespace: Gitlab::QA)
|
|
10
|
+
|
|
11
|
+
loader.inflector.inflect(
|
|
12
|
+
'dev_ee_qa_image' => 'DevEEQAImage',
|
|
13
|
+
'results_in_testcases' => 'ResultsInTestCases',
|
|
14
|
+
'postgresql' => 'PostgreSQL',
|
|
15
|
+
'registry_with_cdn' => 'RegistryWithCDN',
|
|
16
|
+
'smtp' => 'SMTP',
|
|
17
|
+
'mtls' => 'MTLS',
|
|
18
|
+
'saml' => 'SAML',
|
|
19
|
+
'ce' => 'CE',
|
|
20
|
+
'ee' => 'EE',
|
|
21
|
+
'api' => 'API',
|
|
22
|
+
'ssh' => 'SSH',
|
|
23
|
+
'ssh_key' => 'SSHKey',
|
|
24
|
+
'ssh_keys' => 'SSHKeys',
|
|
25
|
+
'ecdsa' => 'ECDSA',
|
|
26
|
+
'ed25519' => 'ED25519',
|
|
27
|
+
'rsa' => 'RSA',
|
|
28
|
+
'ldap' => 'LDAP',
|
|
29
|
+
'ldap_tls' => 'LDAPTLS',
|
|
30
|
+
'ldap_no_tls' => 'LDAPNoTLS',
|
|
31
|
+
'ldap_no_server' => 'LDAPNoServer',
|
|
32
|
+
'rspec' => 'RSpec',
|
|
33
|
+
'web_ide' => 'WebIDE',
|
|
34
|
+
'ci_cd' => 'CiCd',
|
|
35
|
+
'project_imported_from_url' => 'ProjectImportedFromURL',
|
|
36
|
+
'repo_by_url' => 'RepoByURL',
|
|
37
|
+
'oauth' => 'OAuth',
|
|
38
|
+
'saml_sso_sign_in' => 'SamlSSOSignIn',
|
|
39
|
+
'saml_sso_sign_up' => 'SamlSSOSignUp',
|
|
40
|
+
'group_saml' => 'GroupSAML',
|
|
41
|
+
'instance_saml' => 'InstanceSAML',
|
|
42
|
+
'saml_sso' => 'SamlSSO',
|
|
43
|
+
'ldap_sync' => 'LDAPSync',
|
|
44
|
+
'ip_address' => 'IPAddress',
|
|
45
|
+
'gpg' => 'GPG',
|
|
46
|
+
'user_gpg' => 'UserGPG',
|
|
47
|
+
'otp' => 'OTP',
|
|
48
|
+
'jira_api' => 'JiraAPI',
|
|
49
|
+
'registry_tls' => 'RegistryTLS',
|
|
50
|
+
'jetbrains' => 'JetBrains',
|
|
51
|
+
'vscode' => 'VSCode',
|
|
52
|
+
'cli_commands' => 'CLICommands'
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
loader.setup
|
|
150
56
|
end
|
|
151
57
|
end
|
data/scripts/generate-qa-jobs.rb
CHANGED
|
@@ -37,6 +37,7 @@ class GenerateQAJobs
|
|
|
37
37
|
jobs.merge!(load_yml_contents('registry', should_automatically_run?('test_integration_registry')))
|
|
38
38
|
jobs.merge!(load_yml_contents('packages', should_automatically_run?('test_instance_all_packages')))
|
|
39
39
|
jobs.merge!(load_yml_contents('elasticsearch', should_automatically_run?('test_integration_elasticsearch')))
|
|
40
|
+
jobs.merge!(load_yml_contents('opensearch', should_automatically_run?('test_integration_opensearch')))
|
|
40
41
|
jobs.merge!(load_yml_contents('praefect', should_automatically_run?('test_instance_all')))
|
|
41
42
|
jobs.merge!(load_yml_contents('gitaly_cluster', should_automatically_run?('test_instance_all')))
|
|
42
43
|
jobs.merge!(load_yml_contents('mtls', should_automatically_run?('test_instance_all_mtls')))
|
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:
|
|
4
|
+
version: 8.1.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: 2022-
|
|
11
|
+
date: 2022-07-27 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: climate_control
|
|
@@ -206,6 +206,20 @@ dependencies:
|
|
|
206
206
|
- - '='
|
|
207
207
|
- !ruby/object:Gem::Version
|
|
208
208
|
version: 1.5.7
|
|
209
|
+
- !ruby/object:Gem::Dependency
|
|
210
|
+
name: zeitwerk
|
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
|
212
|
+
requirements:
|
|
213
|
+
- - "~>"
|
|
214
|
+
- !ruby/object:Gem::Version
|
|
215
|
+
version: '2.4'
|
|
216
|
+
type: :runtime
|
|
217
|
+
prerelease: false
|
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
219
|
+
requirements:
|
|
220
|
+
- - "~>"
|
|
221
|
+
- !ruby/object:Gem::Version
|
|
222
|
+
version: '2.4'
|
|
209
223
|
description:
|
|
210
224
|
email:
|
|
211
225
|
- gitlab-qa@gmail.com
|
|
@@ -244,6 +258,7 @@ files:
|
|
|
244
258
|
- ".gitlab/ci/jobs/object_storage_registry_tls.gitlab-ci.yml"
|
|
245
259
|
- ".gitlab/ci/jobs/omnibus_image.gitlab-ci.yml"
|
|
246
260
|
- ".gitlab/ci/jobs/omnibus_upgrade.gitlab-ci.yml"
|
|
261
|
+
- ".gitlab/ci/jobs/opensearch.gitlab-ci.yml"
|
|
247
262
|
- ".gitlab/ci/jobs/packages.gitlab-ci.yml"
|
|
248
263
|
- ".gitlab/ci/jobs/praefect.gitlab-ci.yml"
|
|
249
264
|
- ".gitlab/ci/jobs/registry.gitlab-ci.yml"
|
|
@@ -302,6 +317,7 @@ files:
|
|
|
302
317
|
- lib/gitlab/qa/component/ldap.rb
|
|
303
318
|
- lib/gitlab/qa/component/mail_hog.rb
|
|
304
319
|
- lib/gitlab/qa/component/minio.rb
|
|
320
|
+
- lib/gitlab/qa/component/opensearch.rb
|
|
305
321
|
- lib/gitlab/qa/component/postgresql.rb
|
|
306
322
|
- lib/gitlab/qa/component/preprod.rb
|
|
307
323
|
- lib/gitlab/qa/component/production.rb
|
|
@@ -320,8 +336,8 @@ files:
|
|
|
320
336
|
- lib/gitlab/qa/report/generate_test_session.rb
|
|
321
337
|
- lib/gitlab/qa/report/gitlab_issue_client.rb
|
|
322
338
|
- lib/gitlab/qa/report/gitlab_issue_dry_client.rb
|
|
339
|
+
- lib/gitlab/qa/report/j_unit_test_results.rb
|
|
323
340
|
- lib/gitlab/qa/report/json_test_results.rb
|
|
324
|
-
- lib/gitlab/qa/report/junit_test_results.rb
|
|
325
341
|
- lib/gitlab/qa/report/prepare_stage_reports.rb
|
|
326
342
|
- lib/gitlab/qa/report/relate_failure_issue.rb
|
|
327
343
|
- lib/gitlab/qa/report/report_as_issue.rb
|
|
@@ -381,6 +397,7 @@ files:
|
|
|
381
397
|
- lib/gitlab/qa/scenario/test/integration/ldap_tls.rb
|
|
382
398
|
- lib/gitlab/qa/scenario/test/integration/mattermost.rb
|
|
383
399
|
- lib/gitlab/qa/scenario/test/integration/mtls.rb
|
|
400
|
+
- lib/gitlab/qa/scenario/test/integration/opensearch.rb
|
|
384
401
|
- lib/gitlab/qa/scenario/test/integration/praefect.rb
|
|
385
402
|
- lib/gitlab/qa/scenario/test/integration/registry.rb
|
|
386
403
|
- lib/gitlab/qa/scenario/test/integration/registry_tls.rb
|