gitlab-qa 7.22.1 → 7.24.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/merge_request_templates/Release.md +1 -1
- data/.gitlab-ci.yml +2 -2
- data/gitlab-qa.gemspec +1 -1
- data/lib/gitlab/qa/component/minio.rb +1 -1
- data/lib/gitlab/qa/report/generate_test_session.rb +12 -0
- data/lib/gitlab/qa/report/relate_failure_issue.rb +17 -12
- data/lib/gitlab/qa/runtime/env.rb +7 -1
- data/lib/gitlab/qa/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 667197342275f6df37533b1873c6d0cfc7ae66d43bc600af2baa1eca89dc3891
|
4
|
+
data.tar.gz: 0fa801cb8ba230a40864cc6106edcbaaf1a5190b5e24bf1f2e89a36c2bcf99a3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0a02f18c341ce5fa7f3435b890db6c2d6b9afba8c501fe818b15f75640840b6cb1bc4af29802007fce8af76390aed2cfa53328ab9861307cda87773add8b730f
|
7
|
+
data.tar.gz: 85fec2a1eb1184e5b519c7af38853759a78bc54366b8b164d8de133833e9a1cf9c35b4670c24c7bca5a4872704f64f940e652fc246998dd933d2984f5208d47c
|
@@ -32,4 +32,4 @@ with the latest commit from https://gitlab.com/gitlab-org/gitlab-qa/commits/mast
|
|
32
32
|
- Checklist after merging:
|
33
33
|
- [ ] [Update the release notes for the newly created tag](docs/release_process.md#how-to).
|
34
34
|
|
35
|
-
/label ~Quality ~"
|
35
|
+
/label ~Quality ~"type::maintenance"
|
data/.gitlab-ci.yml
CHANGED
@@ -328,7 +328,7 @@ ce:repository_storage-quarantine:
|
|
328
328
|
|
329
329
|
ee:repository_storage:
|
330
330
|
extends:
|
331
|
-
- .rules:
|
331
|
+
- .rules:ee-never-when-triggered-by-feature-flag-definition-change
|
332
332
|
- .test
|
333
333
|
- .high-capacity
|
334
334
|
- .ee-variables
|
@@ -360,7 +360,7 @@ ee:image:
|
|
360
360
|
script:
|
361
361
|
- bundle exec exe/gitlab-qa Test::Omnibus::Image ${RELEASE:=EE}
|
362
362
|
extends:
|
363
|
-
- .rules:
|
363
|
+
- .rules:ee-never-when-triggered-by-feature-flag-definition-change
|
364
364
|
- .test
|
365
365
|
- .ee-variables
|
366
366
|
|
data/gitlab-qa.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
21
21
|
spec.require_paths = ['lib']
|
22
22
|
|
23
|
-
spec.add_development_dependency 'climate_control', '~> 0.
|
23
|
+
spec.add_development_dependency 'climate_control', '~> 1.0.1'
|
24
24
|
spec.add_development_dependency 'gitlab-styles', '~> 6.2.1'
|
25
25
|
spec.add_development_dependency 'pry', '~> 0.11'
|
26
26
|
spec.add_development_dependency 'rake', '~> 13.0'
|
@@ -9,7 +9,7 @@ module Gitlab
|
|
9
9
|
module Component
|
10
10
|
class Minio < Base
|
11
11
|
DOCKER_IMAGE = 'minio/minio'.freeze
|
12
|
-
DOCKER_IMAGE_TAG = '
|
12
|
+
DOCKER_IMAGE_TAG = 'latest'.freeze
|
13
13
|
# These are secrets used in a local Minio container, they're not used for any online S3 server.
|
14
14
|
AWS_ACCESS_KEY = 'AKIAIOSFODNN7EXAMPLE'.freeze
|
15
15
|
AWS_SECRET_KEY = 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY'.freeze
|
@@ -55,6 +55,8 @@ module Gitlab
|
|
55
55
|
#{generate_stages_listing(tests)}
|
56
56
|
|
57
57
|
#{generate_qa_issue_relation}
|
58
|
+
|
59
|
+
#{generate_link_to_dashboard}
|
58
60
|
MARKDOWN
|
59
61
|
end
|
60
62
|
|
@@ -257,6 +259,16 @@ module Gitlab
|
|
257
259
|
/relate #{Runtime::Env.qa_issue_url}
|
258
260
|
MARKDOWN
|
259
261
|
end
|
262
|
+
|
263
|
+
def generate_link_to_dashboard
|
264
|
+
return unless Runtime::Env.qa_run_type
|
265
|
+
|
266
|
+
<<~MARKDOWN.chomp
|
267
|
+
## Link to Grafana dashboard for run-type of #{Runtime::Env.qa_run_type}
|
268
|
+
|
269
|
+
* https://dashboards.quality.gitlab.net/d/kuNYMgDnz/test-run-metrics?orgId=1&refresh=1m&var-run_type=#{Runtime::Env.qa_run_type}
|
270
|
+
MARKDOWN
|
271
|
+
end
|
260
272
|
end
|
261
273
|
end
|
262
274
|
end
|
@@ -12,7 +12,7 @@ module Gitlab
|
|
12
12
|
DEFAULT_MAX_DIFF_RATIO_FOR_DETECTION = 0.15
|
13
13
|
FAILURE_STACKTRACE_REGEX = %r{((.*Failure\/Error:(?<stacktrace>.+))|(?<stacktrace>.+))}m.freeze
|
14
14
|
ISSUE_STACKTRACE_REGEX = /### Stack trace\s*(```)#{FAILURE_STACKTRACE_REGEX}(```)/m.freeze
|
15
|
-
NEW_ISSUE_LABELS = Set.new(%w[QA Quality test failure::
|
15
|
+
NEW_ISSUE_LABELS = Set.new(%w[QA Quality test failure::new priority::2]).freeze
|
16
16
|
|
17
17
|
MultipleIssuesFound = Class.new(StandardError)
|
18
18
|
|
@@ -35,41 +35,44 @@ module Gitlab
|
|
35
35
|
test_results.each do |test|
|
36
36
|
next if test.failures.empty?
|
37
37
|
|
38
|
-
|
38
|
+
relate_failure_to_issue(test)
|
39
39
|
end
|
40
40
|
|
41
41
|
test_results.write
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
45
|
-
def
|
45
|
+
def relate_failure_to_issue(test)
|
46
46
|
puts " => Searching issues for test '#{test.name}'..."
|
47
47
|
|
48
48
|
begin
|
49
|
-
issue =
|
49
|
+
issue = find_and_link_issue(test) || create_issue(test)
|
50
50
|
return unless issue
|
51
51
|
|
52
52
|
update_labels(issue, test)
|
53
|
-
post_failed_job_note(issue, test)
|
54
|
-
puts " => Marked #{issue.web_url} as related to #{test.testcase}."
|
55
53
|
rescue MultipleIssuesFound => e
|
56
54
|
warn(e.message)
|
57
55
|
end
|
58
56
|
end
|
59
57
|
|
60
|
-
def
|
58
|
+
def find_and_link_issue(test)
|
61
59
|
issue, diff_ratio = find_failure_issue(test)
|
62
60
|
|
63
61
|
if issue
|
64
62
|
puts " => Found issue #{issue.web_url} for test '#{test.name}' with a diff ratio of #{(diff_ratio * 100).round(2)}%."
|
65
|
-
|
66
|
-
issue = create_issue(test)
|
67
|
-
puts "for test '#{test.name}'."
|
63
|
+
post_failed_job_note(issue, test)
|
68
64
|
end
|
69
65
|
|
70
66
|
issue
|
71
67
|
end
|
72
68
|
|
69
|
+
def create_issue(test)
|
70
|
+
issue = super
|
71
|
+
puts "for test '#{test.name}'."
|
72
|
+
|
73
|
+
issue
|
74
|
+
end
|
75
|
+
|
73
76
|
def failure_issues(test)
|
74
77
|
gitlab.find_issues(options: { state: 'opened', labels: 'QA' }).select do |issue|
|
75
78
|
issue_title = issue.title.strip
|
@@ -146,7 +149,8 @@ module Gitlab
|
|
146
149
|
super + [
|
147
150
|
"\n\n### Stack trace",
|
148
151
|
"```\n#{test.failures.first['message_lines'].join("\n")}\n```",
|
149
|
-
"First happened in #{test.ci_job_url}."
|
152
|
+
"First happened in #{test.ci_job_url}.",
|
153
|
+
"Related test case: #{test.testcase}."
|
150
154
|
].join("\n\n")
|
151
155
|
end
|
152
156
|
|
@@ -159,7 +163,8 @@ module Gitlab
|
|
159
163
|
end
|
160
164
|
|
161
165
|
def post_failed_job_note(issue, test)
|
162
|
-
gitlab.create_issue_note(iid: issue.iid, note: "
|
166
|
+
gitlab.create_issue_note(iid: issue.iid, note: "Failure occurred in #{pipeline} pipeline: #{test.ci_job_url}")
|
167
|
+
puts " => Linked #{test.ci_job_url} to #{issue.web_url}."
|
163
168
|
end
|
164
169
|
|
165
170
|
def new_issue_title(test)
|
@@ -143,12 +143,18 @@ module Gitlab
|
|
143
143
|
end
|
144
144
|
|
145
145
|
def variables
|
146
|
-
ENV_VARIABLES.each_with_object({}) do |(name, attribute), vars|
|
146
|
+
defined_variables = ENV_VARIABLES.each_with_object({}) do |(name, attribute), vars|
|
147
147
|
# Variables that are overridden in the environment take precedence
|
148
148
|
# over the defaults specified by the QA runtime.
|
149
149
|
value = env_var_name_if_defined(name) || send(attribute) # rubocop:disable GitlabSecurity/PublicSend
|
150
150
|
vars[name] = value if value
|
151
151
|
end
|
152
|
+
qa_variables = ENV.select { |k, _v| k.start_with?('QA_') }
|
153
|
+
|
154
|
+
{
|
155
|
+
**qa_variables,
|
156
|
+
**defined_variables
|
157
|
+
}
|
152
158
|
end
|
153
159
|
|
154
160
|
def debug?
|
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: 7.
|
4
|
+
version: 7.24.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-03-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: climate_control
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 1.0.1
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 1.0.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: gitlab-styles
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|