gitlab-qa 8.3.1 → 8.4.1
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/mtls.gitlab-ci.yml +2 -0
- data/Gemfile.lock +1 -1
- data/lib/gitlab/qa/component/specs.rb +14 -6
- data/lib/gitlab/qa/release.rb +19 -10
- data/lib/gitlab/qa/report/report_as_issue.rb +3 -3
- data/lib/gitlab/qa/runtime/env.rb +2 -1
- data/lib/gitlab/qa/scenario/test/instance/deployment_base.rb +0 -5
- data/lib/gitlab/qa/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a758eb621a80dc1dffc3abca040003057fdb20fc75c246c1ffdac09808c0a379
|
|
4
|
+
data.tar.gz: 0b753ad126a428621c735d2277cf2d21132de0969078255afce15affe4e8d7e6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: db2058be2ccfb34ac72bb7a14cb453142a06d7a88c9084fe575d62425faac0ebda7beace5d45568a7945a3d3cad19939e0a8e60fa0b621b20c39424e01ef2dc9
|
|
7
|
+
data.tar.gz: 84fcf64c8afe5075d761f0f8116a8fbfb8944c3f801c145c003e13485110815bcbacda5c3ddf01d92e3353f280bdb2cf6cce4862519557912d0894d434f1cd77
|
|
@@ -2,6 +2,7 @@ ce:mtls:
|
|
|
2
2
|
extends:
|
|
3
3
|
- .rules:ce-never-when-triggered-by-feature-flag-definition-change
|
|
4
4
|
- .test
|
|
5
|
+
- .high-capacity
|
|
5
6
|
- .ce-variables
|
|
6
7
|
- .rspec-report-opts
|
|
7
8
|
variables:
|
|
@@ -11,6 +12,7 @@ ee:mtls:
|
|
|
11
12
|
extends:
|
|
12
13
|
- .rules:ee-never-when-triggered-by-feature-flag-definition-change
|
|
13
14
|
- .test
|
|
15
|
+
- .high-capacity
|
|
14
16
|
- .ee-variables
|
|
15
17
|
- .rspec-report-opts
|
|
16
18
|
variables:
|
data/Gemfile.lock
CHANGED
|
@@ -14,8 +14,14 @@ module Gitlab
|
|
|
14
14
|
|
|
15
15
|
def initialize
|
|
16
16
|
@docker = Docker::Engine.new(stream_output: true) # stream test output directly instead of through logger
|
|
17
|
-
@volumes = {}
|
|
18
17
|
@env = {}
|
|
18
|
+
@volumes = {}
|
|
19
|
+
@default_volumes = { '/var/run/docker.sock' => '/var/run/docker.sock' }
|
|
20
|
+
return if Runtime::Env.qa_knapsack_report_path.blank?
|
|
21
|
+
|
|
22
|
+
@default_volumes[Runtime::Env.qa_knapsack_report_path] = File.join(
|
|
23
|
+
Docker::Volumes::QA_CONTAINER_WORKDIR, 'knapsack'
|
|
24
|
+
)
|
|
19
25
|
end
|
|
20
26
|
|
|
21
27
|
def perform
|
|
@@ -59,12 +65,12 @@ module Gitlab
|
|
|
59
65
|
command.env(key, value)
|
|
60
66
|
end
|
|
61
67
|
|
|
62
|
-
command.volume(
|
|
63
|
-
|
|
68
|
+
command.volume(
|
|
69
|
+
File.join(Runtime::Env.host_artifacts_dir, name),
|
|
70
|
+
File.join(Docker::Volumes::QA_CONTAINER_WORKDIR, 'tmp')
|
|
71
|
+
)
|
|
64
72
|
|
|
65
|
-
|
|
66
|
-
command.volume(to, from)
|
|
67
|
-
end
|
|
73
|
+
volumes.to_h.merge(default_volumes).each { |to, from| command.volume(to, from) }
|
|
68
74
|
|
|
69
75
|
command.name(name)
|
|
70
76
|
end
|
|
@@ -73,6 +79,8 @@ module Gitlab
|
|
|
73
79
|
|
|
74
80
|
private
|
|
75
81
|
|
|
82
|
+
attr_reader :default_volumes
|
|
83
|
+
|
|
76
84
|
def docker_pull_qa_image_if_needed
|
|
77
85
|
@docker.login(**release.login_params) if release.login_params
|
|
78
86
|
|
data/lib/gitlab/qa/release.rb
CHANGED
|
@@ -9,19 +9,19 @@ module Gitlab
|
|
|
9
9
|
(-qa)?
|
|
10
10
|
(:(?<tag>.+))?
|
|
11
11
|
\z
|
|
12
|
-
/xi
|
|
12
|
+
/xi.freeze
|
|
13
13
|
CUSTOM_GITLAB_IMAGE_REGEX = %r{
|
|
14
14
|
\A
|
|
15
15
|
(?<image_without_tag>
|
|
16
|
-
(?<registry>[
|
|
17
|
-
|
|
16
|
+
(?<registry>[^/:]+(:(?<port>\d+))?)
|
|
17
|
+
(?<project>.+)
|
|
18
18
|
gitlab-
|
|
19
19
|
(?<edition>ce|ee)
|
|
20
20
|
)
|
|
21
21
|
(-qa)?
|
|
22
22
|
(:(?<tag>.+))?
|
|
23
23
|
\z
|
|
24
|
-
}xi
|
|
24
|
+
}xi.freeze
|
|
25
25
|
|
|
26
26
|
# Official dev tag example:
|
|
27
27
|
# 12.5.4(-rc42)-ee
|
|
@@ -35,7 +35,7 @@ module Gitlab
|
|
|
35
35
|
\A
|
|
36
36
|
(?<version>\d+\.\d+.\d+(?:-rc\d+)?)-(?<edition>ce|ee)
|
|
37
37
|
\z
|
|
38
|
-
/xi
|
|
38
|
+
/xi.freeze
|
|
39
39
|
|
|
40
40
|
# Dev tag example:
|
|
41
41
|
# 12.1.201906121026-325a6632895.b340d0bd35d
|
|
@@ -47,9 +47,9 @@ module Gitlab
|
|
|
47
47
|
# version
|
|
48
48
|
DEV_TAG_REGEX = /
|
|
49
49
|
\A
|
|
50
|
-
(?<version>\d+\.\d+(.\d+)?)\.(?<timestamp>\d+)
|
|
50
|
+
(?<version>\d+\.\d+(.\d+)?)\.(?<timestamp>\d+)-(?<gitlab_ref>[A-Za-z0-9]+)\.(?<omnibus_ref>[A-Za-z0-9]+)
|
|
51
51
|
\z
|
|
52
|
-
/xi
|
|
52
|
+
/xi.freeze
|
|
53
53
|
|
|
54
54
|
DEFAULT_TAG = 'latest'
|
|
55
55
|
DEFAULT_CANONICAL_TAG = 'nightly'
|
|
@@ -63,8 +63,9 @@ module Gitlab
|
|
|
63
63
|
|
|
64
64
|
def initialize(release)
|
|
65
65
|
@release = release.to_s.downcase
|
|
66
|
+
return if valid?
|
|
66
67
|
|
|
67
|
-
raise InvalidImageNameError, "The release image name '#{@release}' does not have the expected format."
|
|
68
|
+
raise InvalidImageNameError, "The release image name '#{@release}' does not have the expected format."
|
|
68
69
|
end
|
|
69
70
|
|
|
70
71
|
def to_s
|
|
@@ -106,7 +107,14 @@ module Gitlab
|
|
|
106
107
|
end
|
|
107
108
|
|
|
108
109
|
def qa_image
|
|
109
|
-
|
|
110
|
+
@qa_image ||= if omnibus_mirror?
|
|
111
|
+
omnibus_project = image.match(CUSTOM_GITLAB_IMAGE_REGEX)[:project]
|
|
112
|
+
gitlab_project = "/gitlab-org/gitlab/"
|
|
113
|
+
|
|
114
|
+
"#{image.gsub(omnibus_project, gitlab_project)}-qa"
|
|
115
|
+
else
|
|
116
|
+
"#{image}-qa"
|
|
117
|
+
end
|
|
110
118
|
end
|
|
111
119
|
|
|
112
120
|
def project_name
|
|
@@ -133,7 +141,7 @@ module Gitlab
|
|
|
133
141
|
if dev_gitlab_org? && (match_data = tag.match(DEV_TAG_REGEX))
|
|
134
142
|
"#{match_data[:version]}-#{match_data[:gitlab_ref]}"
|
|
135
143
|
else
|
|
136
|
-
tag.sub(/[
|
|
144
|
+
tag.sub(/[-.]([ce]e)(\.(\d+))?\z/, '-\1')
|
|
137
145
|
end
|
|
138
146
|
end
|
|
139
147
|
|
|
@@ -158,6 +166,7 @@ module Gitlab
|
|
|
158
166
|
|
|
159
167
|
[Runtime::Env.gitlab_username, Runtime::Env.qa_access_token]
|
|
160
168
|
end
|
|
169
|
+
|
|
161
170
|
{
|
|
162
171
|
username: username,
|
|
163
172
|
password: password,
|
|
@@ -159,14 +159,14 @@ module Gitlab
|
|
|
159
159
|
# Gets the name of the pipeline the test was run in, to be used as the key of a scoped label
|
|
160
160
|
#
|
|
161
161
|
# Tests can be run in several pipelines:
|
|
162
|
-
# gitlab
|
|
162
|
+
# gitlab, nightly, staging, canary, production, preprod, MRs, and the default branch (master/main)
|
|
163
163
|
#
|
|
164
164
|
# Some of those run in their own project, so CI_PROJECT_NAME is the name we need. Those are:
|
|
165
165
|
# nightly, staging, canary, production, and preprod
|
|
166
166
|
#
|
|
167
|
-
# MR, master/main, and gitlab
|
|
167
|
+
# MR, master/main, and gitlab tests run in gitlab-qa, but we only want to report tests run on
|
|
168
168
|
# master/main because the other pipelines will be monitored by the author of the MR that triggered them.
|
|
169
|
-
# So we assume that we're reporting a master/main pipeline if the project name is 'gitlab
|
|
169
|
+
# So we assume that we're reporting a master/main pipeline if the project name is 'gitlab'.
|
|
170
170
|
|
|
171
171
|
@pipeline ||= Runtime::Env.pipeline_from_project_name
|
|
172
172
|
end
|
|
@@ -81,6 +81,7 @@ module Gitlab
|
|
|
81
81
|
'KNAPSACK_TEST_FILE_PATTERN' => :knapsack_test_file_pattern,
|
|
82
82
|
'KNAPSACK_TEST_DIR' => :knapsack_test_dir,
|
|
83
83
|
'QA_KNAPSACK_REPORT_GCS_CREDENTIALS' => :qa_knapsack_report_gcs_credentials,
|
|
84
|
+
'QA_KNAPSACK_REPORT_PATH' => :qa_knapsack_report_path,
|
|
84
85
|
'CI' => :ci,
|
|
85
86
|
'CI_COMMIT_REF_NAME' => :ci_commit_ref_name,
|
|
86
87
|
'CI_JOB_NAME' => :ci_job_name,
|
|
@@ -198,7 +199,7 @@ module Gitlab
|
|
|
198
199
|
end
|
|
199
200
|
|
|
200
201
|
def pipeline_from_project_name
|
|
201
|
-
ci_project_name.to_s.start_with?('gitlab
|
|
202
|
+
ci_project_name.to_s.start_with?('gitlab') ? QA::Runtime::Env.default_branch : ci_project_name
|
|
202
203
|
end
|
|
203
204
|
|
|
204
205
|
def run_id
|
|
@@ -29,7 +29,6 @@ module Gitlab
|
|
|
29
29
|
specs.suite = @suite
|
|
30
30
|
specs.release = release
|
|
31
31
|
specs.args = non_rspec_args.push(*args)
|
|
32
|
-
specs.volumes[host_knapsack_report_path] = "/home/gitlab/qa/knapsack" if host_knapsack_report_path
|
|
33
32
|
end
|
|
34
33
|
end
|
|
35
34
|
|
|
@@ -40,10 +39,6 @@ module Gitlab
|
|
|
40
39
|
def deployment_component
|
|
41
40
|
raise NotImplementedError, 'Please define the Component for the deployment environment associated with this scenario.'
|
|
42
41
|
end
|
|
43
|
-
|
|
44
|
-
def host_knapsack_report_path
|
|
45
|
-
ENV["QA_KNAPSACK_REPORT_PATH"]
|
|
46
|
-
end
|
|
47
42
|
end
|
|
48
43
|
end
|
|
49
44
|
end
|
data/lib/gitlab/qa/version.rb
CHANGED
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: 8.
|
|
4
|
+
version: 8.4.1
|
|
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-09-01 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: climate_control
|