gitlab-qa 14.8.1 → 14.10.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +13 -13
- data/docs/what_tests_can_be_run.md +1 -1
- data/gitlab-qa.gemspec +1 -1
- data/lib/gitlab/qa/component/base.rb +20 -10
- data/lib/gitlab/qa/component/gitaly.rb +2 -1
- data/lib/gitlab/qa/component/specs.rb +24 -4
- data/lib/gitlab/qa/runtime/env.rb +6 -2
- data/lib/gitlab/qa/scenario/test/instance/airgapped.rb +1 -1
- data/lib/gitlab/qa/scenario/test/instance/repository_storage.rb +1 -1
- data/lib/gitlab/qa/scenario/test/integration/integrations.rb +1 -1
- data/lib/gitlab/qa/scenario/test/integration/jira.rb +1 -1
- data/lib/gitlab/qa/version.rb +1 -1
- data/rubocop/cop/gitlab/dangerous_interpolation.rb +0 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a6f7bd80ea293183e6498166dfff6ed48a13ae11c6075fbb4a6b8da659486f0c
|
4
|
+
data.tar.gz: 1fb02c24469c15088ebaa23607df22dac8237c98afdf3e641bb21c9544d2a6f8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f3f8343857638e8ed1c2b1b496bf9f09094fddd9d14f477d7277bd71c37d967e7ecce22eb369e6a105df956a48b7ce92831812aa82356f82578bfaa6b847f1ca
|
7
|
+
data.tar.gz: 5ca6e86b327ad376cbae3d58184c8f0ce348f8c6830078b4fd202a16c4ec523ced8ee5e68adf89aa2c79e6a71d40f57955f43271c5fef967661b45078b214e7b
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
gitlab-qa (14.
|
4
|
+
gitlab-qa (14.10.0)
|
5
5
|
activesupport (>= 6.1, < 7.2)
|
6
6
|
gitlab (~> 4.19)
|
7
7
|
http (~> 5.0)
|
@@ -175,19 +175,19 @@ GEM
|
|
175
175
|
reverse_markdown (2.1.1)
|
176
176
|
nokogiri
|
177
177
|
rexml (3.2.5)
|
178
|
-
rspec (3.
|
179
|
-
rspec-core (~> 3.
|
180
|
-
rspec-expectations (~> 3.
|
181
|
-
rspec-mocks (~> 3.
|
182
|
-
rspec-core (3.
|
183
|
-
rspec-support (~> 3.
|
184
|
-
rspec-expectations (3.
|
178
|
+
rspec (3.13.0)
|
179
|
+
rspec-core (~> 3.13.0)
|
180
|
+
rspec-expectations (~> 3.13.0)
|
181
|
+
rspec-mocks (~> 3.13.0)
|
182
|
+
rspec-core (3.13.0)
|
183
|
+
rspec-support (~> 3.13.0)
|
184
|
+
rspec-expectations (3.13.0)
|
185
185
|
diff-lcs (>= 1.2.0, < 2.0)
|
186
|
-
rspec-support (~> 3.
|
187
|
-
rspec-mocks (3.
|
186
|
+
rspec-support (~> 3.13.0)
|
187
|
+
rspec-mocks (3.13.1)
|
188
188
|
diff-lcs (>= 1.2.0, < 2.0)
|
189
|
-
rspec-support (~> 3.
|
190
|
-
rspec-support (3.
|
189
|
+
rspec-support (~> 3.13.0)
|
190
|
+
rspec-support (3.13.1)
|
191
191
|
rubocop (1.43.0)
|
192
192
|
json (~> 2.3)
|
193
193
|
parallel (~> 1.10)
|
@@ -280,7 +280,7 @@ DEPENDENCIES
|
|
280
280
|
pry (~> 0.11)
|
281
281
|
pry-byebug (~> 3.10.1)
|
282
282
|
rake (~> 13.0)
|
283
|
-
rspec (~> 3.
|
283
|
+
rspec (~> 3.13)
|
284
284
|
simplecov (~> 0.22)
|
285
285
|
simplecov-cobertura (~> 2.1)
|
286
286
|
solargraph (~> 0.41)
|
@@ -74,7 +74,7 @@ All environment variables used by GitLab QA should be defined in [`lib/gitlab/qa
|
|
74
74
|
| `QA_CAN_TEST_GIT_PROTOCOL_V2` | `true` | Set to `false` to skip tests that require Git protocol v2 if your environment doesn't support it. | No|
|
75
75
|
| `QA_CAN_TEST_ADMIN_FEATURES` | `true` | Set to `false` to skip tests that require admin access. | No|
|
76
76
|
| `QA_CAN_TEST_PRAEFECT` | `true` | Set to `false` to skip tests that require Praefect to be running. | No|
|
77
|
-
| `
|
77
|
+
| `QA_RETRY_FAILED_SPECS` |- | Set to `true` to retry failed specs after initial run finishes. | No|
|
78
78
|
| `QA_SIMULATE_SLOW_CONNECTION` |- | Set to `true` to configure Chrome's network settings to simulate a slow connection. | No|
|
79
79
|
| `QA_SLOW_CONNECTION_LATENCY_MS` | `2000` | The additional latency (in ms) of the simulated slow connection. | No|
|
80
80
|
| `QA_SLOW_CONNECTION_THROUGHPUT_KBPS` | `32` | The maximum throughput (in kbps) of the simulated slow connection. | No|
|
data/gitlab-qa.gemspec
CHANGED
@@ -29,7 +29,7 @@ Gem::Specification.new do |spec|
|
|
29
29
|
spec.add_development_dependency 'pry', '~> 0.11'
|
30
30
|
spec.add_development_dependency 'pry-byebug', '~> 3.10.1'
|
31
31
|
spec.add_development_dependency 'rake', '~> 13.0'
|
32
|
-
spec.add_development_dependency 'rspec', '~> 3.
|
32
|
+
spec.add_development_dependency 'rspec', '~> 3.13'
|
33
33
|
spec.add_development_dependency 'simplecov', '~> 0.22'
|
34
34
|
spec.add_development_dependency 'simplecov-cobertura', '~> 2.1'
|
35
35
|
spec.add_development_dependency 'solargraph', '~> 0.41'
|
@@ -189,7 +189,7 @@ module Gitlab
|
|
189
189
|
raise 'Invalid instance name!' unless name
|
190
190
|
end
|
191
191
|
|
192
|
-
def instance_no_teardown
|
192
|
+
def instance_no_teardown # rubocop:disable Metrics/AbcSize
|
193
193
|
begin
|
194
194
|
retries ||= 0
|
195
195
|
prepare
|
@@ -201,12 +201,17 @@ module Gitlab
|
|
201
201
|
reconfigure_log_file = get_reconfigure_log_file_from_artefact
|
202
202
|
# for scenarios where a service fails during startup, attempt to retry to avoid flaky failures
|
203
203
|
if (retries += 1) < 3
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
204
|
+
unless reconfigure_log_file.nil?
|
205
|
+
Runtime::Logger.info(
|
206
|
+
"Follow the document " \
|
207
|
+
"https://gitlab.com/gitlab-org/quality/runbooks/-/blob/main/debug_orchestrated_test_locally/ " \
|
208
|
+
"for debugging the test failure locally.")
|
209
|
+
|
210
|
+
# Tailing the reconfigure logs after retries are over and before raising exception
|
211
|
+
Runtime::Logger.info("Tail of the reconfigure log file, see artifacts for full log: #{reconfigure_log_file}")
|
212
|
+
Support::ShellCommand.new("tail -n 100 #{reconfigure_log_file}", stream_output: true).execute!
|
213
|
+
end
|
214
|
+
|
210
215
|
Runtime::Logger.warn(
|
211
216
|
"Retry instance_no_teardown due to Support::ShellCommand::StatusError -- attempt #{retries}"
|
212
217
|
)
|
@@ -214,9 +219,14 @@ module Gitlab
|
|
214
219
|
retry
|
215
220
|
end
|
216
221
|
|
217
|
-
#
|
218
|
-
|
219
|
-
|
222
|
+
# Printing logs to stdout for last retry failure
|
223
|
+
|
224
|
+
if !reconfigure_log_file.nil? && retries == 3
|
225
|
+
# Tailing the reconfigure logs after retries are over and before raising exception
|
226
|
+
Runtime::Logger.info("Tail of the reconfigure log file, see artifacts for full log: #{reconfigure_log_file}")
|
227
|
+
Support::ShellCommand.new("tail -n 100 #{reconfigure_log_file}", stream_output: true).execute!
|
228
|
+
end
|
229
|
+
|
220
230
|
raise e
|
221
231
|
end
|
222
232
|
|
@@ -67,7 +67,8 @@ module Gitlab
|
|
67
67
|
gitaly['configuration'] = {
|
68
68
|
'listen_addr': '0.0.0.0:#{gitaly_port}',
|
69
69
|
'prometheus_listen_addr': '0.0.0.0:9236',
|
70
|
-
'auth_token': 'PRAEFECT_INTERNAL_TOKEN'
|
70
|
+
'auth_token': 'PRAEFECT_INTERNAL_TOKEN',
|
71
|
+
'transactions': {'enabled': #{Runtime::Env.qa_gitaly_transactions_enabled?}}
|
71
72
|
}
|
72
73
|
gitlab_shell['secret_token'] = 'GITLAB_SHELL_SECRET_TOKEN';
|
73
74
|
gitlab_rails['internal_api_url'] = 'http://#{cluster_config.gitlab_name}.#{cluster_config.network}';
|
@@ -68,10 +68,11 @@ module Gitlab
|
|
68
68
|
rescue Support::ShellCommand::StatusError => e
|
69
69
|
raise e unless retry_failed_specs
|
70
70
|
|
71
|
+
Runtime::Logger.warn("Initial test run failed, attempting to retry failed specs in new process!")
|
71
72
|
results_file = File.join(host_artifacts_dir(name), LAST_RUN_FILE)
|
72
|
-
raise
|
73
|
+
raise e unless valid_last_run_file?(results_file)
|
73
74
|
|
74
|
-
Runtime::Logger.
|
75
|
+
Runtime::Logger.debug("Found initial run results file '#{results_file}', retrying failed specs!")
|
75
76
|
run_specs(name, retry_process: true, initial_run_results_host_path: results_file)
|
76
77
|
end
|
77
78
|
|
@@ -116,8 +117,6 @@ module Gitlab
|
|
116
117
|
end
|
117
118
|
|
118
119
|
env_vars["RSPEC_LAST_RUN_RESULTS_FILE"] = last_run_results_file
|
119
|
-
# TODO: remove once rspec-retry gem is removed
|
120
|
-
env_vars["QA_DISABLE_RSPEC_RETRY"] = "true" if retry_failed_specs
|
121
120
|
|
122
121
|
run_volumes = volumes.to_h.merge({ host_artifacts_dir(container_name) => tmp_dir })
|
123
122
|
run_volumes[initial_run_results_host_path] = last_run_results_file if retry_process
|
@@ -221,6 +220,27 @@ module Gitlab
|
|
221
220
|
def last_run_results_file
|
222
221
|
File.join(tmp_dir, LAST_RUN_FILE)
|
223
222
|
end
|
223
|
+
|
224
|
+
# Validate rspec last run file
|
225
|
+
#
|
226
|
+
# @param [String] results_file
|
227
|
+
# @return [Boolean]
|
228
|
+
def valid_last_run_file?(results_file)
|
229
|
+
unless File.exist?(results_file)
|
230
|
+
Runtime::Logger.error("Failed to find initial run results file '#{results_file}', aborting retry!")
|
231
|
+
return false
|
232
|
+
end
|
233
|
+
|
234
|
+
unless File.read(results_file).include?("failed")
|
235
|
+
Runtime::Logger.error(
|
236
|
+
"Initial run results file '#{results_file}' does not contain any failed tests, aborting retry!"
|
237
|
+
)
|
238
|
+
|
239
|
+
return false
|
240
|
+
end
|
241
|
+
|
242
|
+
true
|
243
|
+
end
|
224
244
|
end
|
225
245
|
end
|
226
246
|
end
|
@@ -39,7 +39,6 @@ module Gitlab
|
|
39
39
|
'QA_CAN_TEST_ADMIN_FEATURES' => :qa_can_test_admin_features,
|
40
40
|
'QA_CAN_TEST_GIT_PROTOCOL_V2' => :qa_can_test_git_protocol_v2,
|
41
41
|
'QA_CAN_TEST_PRAEFECT' => :qa_can_test_praefect,
|
42
|
-
'QA_DISABLE_RSPEC_RETRY' => :qa_disable_rspec_retry,
|
43
42
|
'QA_SIMULATE_SLOW_CONNECTION' => :qa_simulate_slow_connection,
|
44
43
|
'QA_SLOW_CONNECTION_LATENCY_MS' => :qa_slow_connection_latency_ms,
|
45
44
|
'QA_SLOW_CONNECTION_THROUGHPUT_KBPS' => :qa_slow_connection_throughput_kbps,
|
@@ -371,7 +370,8 @@ module Gitlab
|
|
371
370
|
end
|
372
371
|
|
373
372
|
def video_recorder_image
|
374
|
-
env_var_value_if_defined('QA_VIDEO_RECORDER_IMAGE') ||
|
373
|
+
env_var_value_if_defined('QA_VIDEO_RECORDER_IMAGE') ||
|
374
|
+
'registry.gitlab.com/gitlab-org/gitlab-qa/selenoid-manual-video-recorder'
|
375
375
|
end
|
376
376
|
|
377
377
|
def video_recorder_version
|
@@ -471,6 +471,10 @@ module Gitlab
|
|
471
471
|
enabled?(env_var_value_if_defined('QA_RETRY_FAILED_SPECS'), default: false)
|
472
472
|
end
|
473
473
|
|
474
|
+
def self.qa_gitaly_transactions_enabled?
|
475
|
+
enabled?(env_var_value_if_defined('QA_GITALY_TRANSACTIONS_ENABLED'), default: false)
|
476
|
+
end
|
477
|
+
|
474
478
|
private
|
475
479
|
|
476
480
|
def enabled?(value, default: true)
|
@@ -37,7 +37,7 @@ module Gitlab
|
|
37
37
|
gitlab.skip_availability_check = true
|
38
38
|
gitlab.omnibus_configuration << gitlab_omnibus_configuration
|
39
39
|
rspec_args << "--" unless rspec_args.include?('--')
|
40
|
-
rspec_args <<
|
40
|
+
rspec_args << "--tag ~orchestrated"
|
41
41
|
gitlab.instance do
|
42
42
|
Component::Specs.perform do |specs|
|
43
43
|
specs.suite = 'Test::Instance::Airgapped'
|
@@ -14,7 +14,7 @@ module Gitlab
|
|
14
14
|
gitlab.instance do
|
15
15
|
Component::Specs.perform do |specs|
|
16
16
|
rspec_args << '--' unless rspec_args.include?('--')
|
17
|
-
rspec_args <<
|
17
|
+
rspec_args << "--tag integrations"
|
18
18
|
specs.suite = 'Test::Instance::All'
|
19
19
|
specs.hostname = "qa-e2e-specs.#{gitlab.network}"
|
20
20
|
specs.release = gitlab.release
|
@@ -21,7 +21,7 @@ module Gitlab
|
|
21
21
|
Runtime::Logger.info('Running Jira specs!')
|
22
22
|
|
23
23
|
rspec_args << "--" unless rspec_args.include?('--')
|
24
|
-
rspec_args <<
|
24
|
+
rspec_args << "--tag jira"
|
25
25
|
|
26
26
|
Component::Specs.perform do |specs|
|
27
27
|
specs.suite = 'Test::Instance::All'
|
data/lib/gitlab/qa/version.rb
CHANGED
@@ -42,7 +42,6 @@ module RuboCop
|
|
42
42
|
'QA_CAN_TEST_ADMIN_FEATURES' => :qa_can_test_admin_features,
|
43
43
|
'QA_CAN_TEST_GIT_PROTOCOL_V2' => :qa_can_test_git_protocol_v2,
|
44
44
|
'QA_CAN_TEST_PRAEFECT' => :qa_can_test_praefect,
|
45
|
-
'QA_DISABLE_RSPEC_RETRY' => :qa_disable_rspec_retry,
|
46
45
|
'QA_SIMULATE_SLOW_CONNECTION' => :qa_simulate_slow_connection,
|
47
46
|
'QA_SLOW_CONNECTION_LATENCY_MS' => :qa_slow_connection_latency_ms,
|
48
47
|
'QA_SLOW_CONNECTION_THROUGHPUT_KBPS' => :qa_slow_connection_throughput_kbps,
|
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: 14.
|
4
|
+
version: 14.10.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: 2024-
|
11
|
+
date: 2024-05-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: climate_control
|
@@ -114,14 +114,14 @@ dependencies:
|
|
114
114
|
requirements:
|
115
115
|
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: '3.
|
117
|
+
version: '3.13'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: '3.
|
124
|
+
version: '3.13'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: simplecov
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -536,7 +536,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
536
536
|
- !ruby/object:Gem::Version
|
537
537
|
version: '0'
|
538
538
|
requirements: []
|
539
|
-
rubygems_version: 3.3.
|
539
|
+
rubygems_version: 3.3.27
|
540
540
|
signing_key:
|
541
541
|
specification_version: 4
|
542
542
|
summary: Integration tests for GitLab
|