gitlab-qa 7.34.0 → 8.0.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/registry_with_cdn.gitlab-ci.yml +12 -0
- data/.rubocop_todo.yml +15 -30
- data/Dangerfile +2 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +3 -2
- data/Rakefile +2 -0
- data/docs/run_qa_against_gdk.md +5 -0
- data/exe/gitlab-qa +1 -0
- data/exe/gitlab-qa-report +1 -0
- data/gitlab-qa.gemspec +1 -0
- data/lib/gitlab/qa/component/base.rb +3 -1
- data/lib/gitlab/qa/component/elasticsearch.rb +3 -1
- data/lib/gitlab/qa/component/gitlab.rb +42 -24
- data/lib/gitlab/qa/component/internet_tunnel.rb +4 -2
- data/lib/gitlab/qa/component/jira.rb +4 -2
- data/lib/gitlab/qa/component/mail_hog.rb +3 -2
- data/lib/gitlab/qa/component/minio.rb +7 -5
- data/lib/gitlab/qa/component/postgresql.rb +4 -2
- data/lib/gitlab/qa/component/preprod.rb +3 -1
- data/lib/gitlab/qa/component/production.rb +3 -1
- data/lib/gitlab/qa/component/release.rb +3 -1
- data/lib/gitlab/qa/component/saml.rb +4 -2
- data/lib/gitlab/qa/component/specs.rb +2 -0
- data/lib/gitlab/qa/component/staging.rb +4 -2
- data/lib/gitlab/qa/component/staging_ref.rb +4 -2
- data/lib/gitlab/qa/docker/command.rb +7 -1
- data/lib/gitlab/qa/docker/engine.rb +10 -0
- data/lib/gitlab/qa/docker/shellout.rb +24 -14
- data/lib/gitlab/qa/docker/volumes.rb +3 -1
- data/lib/gitlab/qa/release.rb +6 -4
- data/lib/gitlab/qa/report/{junit_test_results.rb → j_unit_test_results.rb} +0 -0
- data/lib/gitlab/qa/report/prepare_stage_reports.rb +2 -0
- data/lib/gitlab/qa/report/summary_table.rb +2 -0
- data/lib/gitlab/qa/report/update_screenshot_path.rb +2 -0
- data/lib/gitlab/qa/reporter.rb +2 -0
- data/lib/gitlab/qa/runtime/env.rb +9 -4
- data/lib/gitlab/qa/scenario/actable.rb +2 -0
- data/lib/gitlab/qa/scenario/cli_commands.rb +3 -1
- data/lib/gitlab/qa/scenario/template.rb +2 -0
- data/lib/gitlab/qa/scenario/test/instance/airgapped.rb +2 -0
- data/lib/gitlab/qa/scenario/test/instance/any.rb +2 -0
- data/lib/gitlab/qa/scenario/test/instance/deployment_base.rb +2 -0
- data/lib/gitlab/qa/scenario/test/instance/geo.rb +2 -0
- data/lib/gitlab/qa/scenario/test/instance/image.rb +2 -0
- data/lib/gitlab/qa/scenario/test/instance/preprod.rb +2 -0
- data/lib/gitlab/qa/scenario/test/instance/production.rb +2 -0
- data/lib/gitlab/qa/scenario/test/instance/relative_url.rb +2 -0
- data/lib/gitlab/qa/scenario/test/instance/release.rb +2 -0
- data/lib/gitlab/qa/scenario/test/instance/repository_storage.rb +2 -0
- data/lib/gitlab/qa/scenario/test/instance/smoke.rb +2 -0
- data/lib/gitlab/qa/scenario/test/instance/staging.rb +2 -0
- data/lib/gitlab/qa/scenario/test/instance/staging_geo.rb +2 -0
- data/lib/gitlab/qa/scenario/test/instance/staging_ref.rb +2 -0
- data/lib/gitlab/qa/scenario/test/instance/staging_ref_geo.rb +2 -0
- data/lib/gitlab/qa/scenario/test/integration/client_ssl.rb +2 -0
- data/lib/gitlab/qa/scenario/test/integration/elasticsearch.rb +2 -0
- data/lib/gitlab/qa/scenario/test/integration/geo.rb +2 -0
- data/lib/gitlab/qa/scenario/test/integration/gitaly_cluster.rb +2 -0
- data/lib/gitlab/qa/scenario/test/integration/group_saml.rb +2 -0
- data/lib/gitlab/qa/scenario/test/integration/instance_saml.rb +2 -0
- data/lib/gitlab/qa/scenario/test/integration/jira.rb +2 -0
- data/lib/gitlab/qa/scenario/test/integration/kubernetes.rb +2 -0
- data/lib/gitlab/qa/scenario/test/integration/ldap.rb +8 -6
- data/lib/gitlab/qa/scenario/test/integration/ldap_no_server.rb +2 -0
- data/lib/gitlab/qa/scenario/test/integration/ldap_no_tls.rb +2 -0
- data/lib/gitlab/qa/scenario/test/integration/ldap_tls.rb +2 -0
- data/lib/gitlab/qa/scenario/test/integration/mattermost.rb +2 -0
- data/lib/gitlab/qa/scenario/test/integration/mtls.rb +2 -0
- data/lib/gitlab/qa/scenario/test/integration/praefect.rb +2 -0
- data/lib/gitlab/qa/scenario/test/integration/saml.rb +2 -0
- data/lib/gitlab/qa/scenario/test/integration/smtp.rb +2 -0
- data/lib/gitlab/qa/scenario/test/omnibus/image.rb +2 -0
- data/lib/gitlab/qa/scenario/test/omnibus/update.rb +2 -0
- data/lib/gitlab/qa/scenario/test/omnibus/upgrade.rb +2 -0
- data/lib/gitlab/qa/scenario/test/sanity/version.rb +2 -0
- data/lib/gitlab/qa/slack/post_to_slack.rb +2 -0
- data/lib/gitlab/qa/support/dev_ee_qa_image.rb +3 -1
- data/lib/gitlab/qa/support/get_request.rb +2 -0
- data/lib/gitlab/qa/support/http_request.rb +2 -0
- data/lib/gitlab/qa/support/invalid_response_error.rb +2 -0
- data/lib/gitlab/qa/test_logger.rb +1 -1
- data/lib/gitlab/qa/version.rb +1 -1
- data/lib/gitlab/qa.rb +53 -143
- data/scripts/generate-qa-jobs.rb +1 -0
- data/support/data/admin_access_token_seed.rb +1 -1
- data/support/data/license_usage_seed.rb +2 -1
- metadata +17 -3
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require 'open3'
|
|
4
|
-
require '
|
|
4
|
+
require 'active_support/core_ext/string/filters'
|
|
5
5
|
|
|
6
6
|
module Gitlab
|
|
7
7
|
module QA
|
|
@@ -17,16 +17,16 @@ module Gitlab
|
|
|
17
17
|
@logger = Runtime::Logger.logger
|
|
18
18
|
end
|
|
19
19
|
|
|
20
|
-
attr_reader :command, :
|
|
20
|
+
attr_reader :command, :output
|
|
21
21
|
|
|
22
22
|
def execute! # rubocop:disable Metrics/AbcSize
|
|
23
|
-
raise StatusError, 'Command already executed' if
|
|
23
|
+
raise StatusError, 'Command already executed' if output.any?
|
|
24
24
|
|
|
25
|
-
logger.info("Docker shell command: `#{
|
|
25
|
+
logger.info("Docker shell command: `#{command.mask_secrets.cyan}`")
|
|
26
26
|
|
|
27
27
|
Open3.popen2e(@command.to_s) do |_in, out, wait|
|
|
28
28
|
out.each do |line|
|
|
29
|
-
|
|
29
|
+
output.push(line)
|
|
30
30
|
|
|
31
31
|
if stream_progress
|
|
32
32
|
print "."
|
|
@@ -36,21 +36,28 @@ module Gitlab
|
|
|
36
36
|
|
|
37
37
|
yield line, wait if block_given?
|
|
38
38
|
end
|
|
39
|
-
puts if stream_progress
|
|
39
|
+
puts if stream_progress && !output.empty?
|
|
40
40
|
|
|
41
|
-
if wait.value.exited? && wait.value.exitstatus.nonzero?
|
|
42
|
-
logger.error("Docker shell command output:\n#{output}") unless command.stream_output
|
|
43
|
-
raise StatusError, "Docker command `#{@command.mask_secrets[0..100]}` failed! ✘"
|
|
44
|
-
end
|
|
41
|
+
fail! if wait.value.exited? && wait.value.exitstatus.nonzero?
|
|
45
42
|
|
|
46
|
-
logger.debug("Docker shell command output:\n#{
|
|
43
|
+
logger.debug("Docker shell command output:\n#{string_output}") unless command.stream_output || output.empty?
|
|
47
44
|
end
|
|
48
45
|
|
|
49
|
-
|
|
46
|
+
string_output
|
|
50
47
|
end
|
|
51
48
|
|
|
52
49
|
private
|
|
53
50
|
|
|
51
|
+
attr_reader :logger
|
|
52
|
+
|
|
53
|
+
# Raise error and print output to error log level
|
|
54
|
+
#
|
|
55
|
+
# @return [void]
|
|
56
|
+
def fail!
|
|
57
|
+
logger.error("Docker shell command output:\n#{string_output}") unless command.stream_output
|
|
58
|
+
raise StatusError, "Docker command `#{command.mask_secrets.truncate(100)}` failed! " + "✘".red
|
|
59
|
+
end
|
|
60
|
+
|
|
54
61
|
# Stream only command execution progress and log output when command finished
|
|
55
62
|
#
|
|
56
63
|
# @return [Boolean]
|
|
@@ -58,8 +65,11 @@ module Gitlab
|
|
|
58
65
|
!(Runtime::Env.ci || command.stream_output)
|
|
59
66
|
end
|
|
60
67
|
|
|
61
|
-
|
|
62
|
-
|
|
68
|
+
# Stringified command output
|
|
69
|
+
#
|
|
70
|
+
# @return [String]
|
|
71
|
+
def string_output
|
|
72
|
+
output.join.chomp
|
|
63
73
|
end
|
|
64
74
|
end
|
|
65
75
|
end
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'tmpdir'
|
|
2
4
|
|
|
3
5
|
module Gitlab
|
|
@@ -7,7 +9,7 @@ module Gitlab
|
|
|
7
9
|
VOLUMES = { 'config' => '/etc/gitlab',
|
|
8
10
|
'data' => '/var/opt/gitlab' }.freeze
|
|
9
11
|
|
|
10
|
-
QA_CONTAINER_WORKDIR = '/home/gitlab/qa'
|
|
12
|
+
QA_CONTAINER_WORKDIR = '/home/gitlab/qa'
|
|
11
13
|
|
|
12
14
|
def initialize(volumes = VOLUMES)
|
|
13
15
|
@volumes = volumes
|
data/lib/gitlab/qa/release.rb
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Gitlab
|
|
2
4
|
module QA
|
|
3
5
|
class Release
|
|
@@ -49,10 +51,10 @@ module Gitlab
|
|
|
49
51
|
\z
|
|
50
52
|
/xi
|
|
51
53
|
|
|
52
|
-
DEFAULT_TAG = 'latest'
|
|
53
|
-
DEFAULT_CANONICAL_TAG = 'nightly'
|
|
54
|
-
DEV_REGISTRY = 'dev.gitlab.org:5005'
|
|
55
|
-
COM_REGISTRY = 'registry.gitlab.com'
|
|
54
|
+
DEFAULT_TAG = 'latest'
|
|
55
|
+
DEFAULT_CANONICAL_TAG = 'nightly'
|
|
56
|
+
DEV_REGISTRY = 'dev.gitlab.org:5005'
|
|
57
|
+
COM_REGISTRY = 'registry.gitlab.com'
|
|
56
58
|
|
|
57
59
|
InvalidImageNameError = Class.new(RuntimeError)
|
|
58
60
|
|
|
File without changes
|
data/lib/gitlab/qa/reporter.rb
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'active_support/core_ext/object/blank'
|
|
2
4
|
require 'securerandom'
|
|
3
|
-
require 'rainbow/refinement'
|
|
4
5
|
|
|
5
6
|
module Gitlab
|
|
6
7
|
module QA
|
|
@@ -142,7 +143,9 @@ module Gitlab
|
|
|
142
143
|
attr_writer(method_name)
|
|
143
144
|
|
|
144
145
|
define_method(method_name) do
|
|
145
|
-
env_var_value_if_defined(env_name) || (
|
|
146
|
+
env_var_value_if_defined(env_name) || (if instance_variable_defined?("@#{method_name}")
|
|
147
|
+
instance_variable_get("@#{method_name}")
|
|
148
|
+
end)
|
|
146
149
|
end
|
|
147
150
|
end
|
|
148
151
|
|
|
@@ -220,11 +223,13 @@ module Gitlab
|
|
|
220
223
|
end
|
|
221
224
|
|
|
222
225
|
def host_artifacts_dir
|
|
223
|
-
@host_artifacts_dir ||= File.join(
|
|
226
|
+
@host_artifacts_dir ||= File.join(
|
|
227
|
+
env_var_value_if_defined('QA_ARTIFACTS_DIR') || '/tmp/gitlab-qa', Runtime::Env.run_id
|
|
228
|
+
)
|
|
224
229
|
end
|
|
225
230
|
|
|
226
231
|
def elastic_version
|
|
227
|
-
env_var_value_if_defined('ELASTIC_VERSION') || '
|
|
232
|
+
env_var_value_if_defined('ELASTIC_VERSION') || '8.2.0'
|
|
228
233
|
end
|
|
229
234
|
|
|
230
235
|
def require_license!
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'yaml'
|
|
2
4
|
|
|
3
5
|
module Gitlab
|
|
@@ -8,12 +10,12 @@ module Gitlab
|
|
|
8
10
|
class LDAP < Scenario::Template
|
|
9
11
|
LDAP_PORT = 389
|
|
10
12
|
LDAP_TLS_PORT = 636
|
|
11
|
-
BASE_DN = 'dc=example,dc=org'
|
|
12
|
-
BIND_DN = 'cn=admin,dc=example,dc=org'
|
|
13
|
-
GROUP_BASE = 'ou=Global Groups,dc=example,dc=org'
|
|
14
|
-
ADMIN_GROUP = 'AdminGroup'
|
|
15
|
-
ADMIN_USER = 'admin'
|
|
16
|
-
ADMIN_PASSWORD = 'admin'
|
|
13
|
+
BASE_DN = 'dc=example,dc=org'
|
|
14
|
+
BIND_DN = 'cn=admin,dc=example,dc=org'
|
|
15
|
+
GROUP_BASE = 'ou=Global Groups,dc=example,dc=org'
|
|
16
|
+
ADMIN_GROUP = 'AdminGroup'
|
|
17
|
+
ADMIN_USER = 'admin'
|
|
18
|
+
ADMIN_PASSWORD = 'admin'
|
|
17
19
|
|
|
18
20
|
attr_reader :gitlab_name, :spec_suite, :tls, :ldap_name, :network, :orchestrate_ldap_server
|
|
19
21
|
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'json'
|
|
2
4
|
require 'uri'
|
|
3
5
|
|
|
@@ -7,7 +9,7 @@ module Gitlab
|
|
|
7
9
|
class DevEEQAImage
|
|
8
10
|
attr_reader :base_url
|
|
9
11
|
|
|
10
|
-
DEV_ADDRESS = 'https://dev.gitlab.org'
|
|
12
|
+
DEV_ADDRESS = 'https://dev.gitlab.org'
|
|
11
13
|
GITLAB_EE_QA_REPOSITORY_ID = 55
|
|
12
14
|
QAImageNotFoundError = Class.new(StandardError)
|
|
13
15
|
|