gitlab-qa 7.23.0 → 7.24.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2f7604899a14fd7faaae2ee398b5b0769df8dde4badfd2123fa27993b1a0cbda
4
- data.tar.gz: c3fea270e1583201349b1c73c10aab49a5db9c969714ab842ab21436155c8d96
3
+ metadata.gz: 16d436d7dcc1ff54323d22b1ced1c4685c78b2ac4290e4deea6f4720b26c7bda
4
+ data.tar.gz: 8250c321d7130510768ea563bda98978f9ca53c6eac55344ad7475aa4c771324
5
5
  SHA512:
6
- metadata.gz: 404e72b88f829f186a99bf2302fa92161b5267494b6ac3e91209c19882da58f348814394a5c23f02edfa3462715bcc4b4b5e136d2bd13c1e5bfa6c475f164c6c
7
- data.tar.gz: f043de46cddd1b120fbd972224e4eef339b3b22acfd25e28e972e9407c93d38c65234d4c67049d517366b5bbf2b54177da5cc336615cdb1ee4af572c9ba9467c
6
+ metadata.gz: bc86efe53b8067cdf2bcf0788dc9c740bbdf32a8cb0be16d5c3dfee4e5b774f2c4f0ec4787169805d5ca04a075fd0ea3b35bca5b20ae5657906efc8be50eff80
7
+ data.tar.gz: 306ee5e2b20f62f50249a5741471a41904e071656b81168e11236398d3b9d3a933419055b84f7667dc23e642163a83ee66aee29c6f3cc0745251cbdcc5b3e696
@@ -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 ~"feature::maintenance"
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:ce-never-when-triggered-by-feature-flag-definition-change
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:ce-never-when-triggered-by-feature-flag-definition-change
363
+ - .rules:ee-never-when-triggered-by-feature-flag-definition-change
364
364
  - .test
365
365
  - .ee-variables
366
366
 
@@ -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::investigating priority::2]).freeze
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
 
@@ -20,6 +20,7 @@ module Gitlab
20
20
  super
21
21
  @max_diff_ratio = max_diff_ratio.to_f
22
22
  @issue_type = 'issue'
23
+ @commented_issue_list = Set.new
23
24
  end
24
25
 
25
26
  private
@@ -35,41 +36,45 @@ module Gitlab
35
36
  test_results.each do |test|
36
37
  next if test.failures.empty?
37
38
 
38
- relate_test_to_issue(test)
39
+ relate_failure_to_issue(test)
39
40
  end
40
41
 
41
42
  test_results.write
42
43
  end
43
44
  end
44
45
 
45
- def relate_test_to_issue(test)
46
+ def relate_failure_to_issue(test)
46
47
  puts " => Searching issues for test '#{test.name}'..."
47
48
 
48
49
  begin
49
- issue = find_or_create_issue(test)
50
+ issue = find_and_link_issue(test) || create_issue(test)
50
51
  return unless issue
51
52
 
52
53
  update_labels(issue, test)
53
- post_failed_job_note(issue, test)
54
- puts " => Marked #{issue.web_url} as related to #{test.testcase}."
55
54
  rescue MultipleIssuesFound => e
56
55
  warn(e.message)
57
56
  end
58
57
  end
59
58
 
60
- def find_or_create_issue(test)
59
+ def find_and_link_issue(test)
61
60
  issue, diff_ratio = find_failure_issue(test)
62
61
 
63
62
  if issue
64
63
  puts " => Found issue #{issue.web_url} for test '#{test.name}' with a diff ratio of #{(diff_ratio * 100).round(2)}%."
65
- else
66
- issue = create_issue(test)
67
- puts "for test '#{test.name}'."
64
+ @commented_issue_list.include?(issue.web_url) ? (puts " => Failure already commented on issue.") : post_failed_job_note(issue, test)
65
+ @commented_issue_list.add(issue.web_url)
68
66
  end
69
67
 
70
68
  issue
71
69
  end
72
70
 
71
+ def create_issue(test)
72
+ issue = super
73
+ puts "for test '#{test.name}'."
74
+
75
+ issue
76
+ end
77
+
73
78
  def failure_issues(test)
74
79
  gitlab.find_issues(options: { state: 'opened', labels: 'QA' }).select do |issue|
75
80
  issue_title = issue.title.strip
@@ -146,7 +151,8 @@ module Gitlab
146
151
  super + [
147
152
  "\n\n### Stack trace",
148
153
  "```\n#{test.failures.first['message_lines'].join("\n")}\n```",
149
- "First happened in #{test.ci_job_url}."
154
+ "First happened in #{test.ci_job_url}.",
155
+ "Related test case: #{test.testcase}."
150
156
  ].join("\n\n")
151
157
  end
152
158
 
@@ -159,7 +165,8 @@ module Gitlab
159
165
  end
160
166
 
161
167
  def post_failed_job_note(issue, test)
162
- gitlab.create_issue_note(iid: issue.iid, note: "/relate #{test.testcase}")
168
+ gitlab.create_issue_note(iid: issue.iid, note: "Failure occurred in #{pipeline} pipeline: #{test.ci_job_url}")
169
+ puts " => Linked #{test.ci_job_url} to #{issue.web_url}."
163
170
  end
164
171
 
165
172
  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?
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Gitlab
4
4
  module QA
5
- VERSION = '7.23.0'
5
+ VERSION = '7.24.1'
6
6
  end
7
7
  end
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.23.0
4
+ version: 7.24.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-02-15 00:00:00.000000000 Z
11
+ date: 2022-03-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: climate_control