gitlab-qa 7.22.1 → 7.24.0

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: 8b84d309cb564568e54d7247df7a6af8d8bc2290953e3b33c72531a153415cf4
4
- data.tar.gz: 9270ff23791f40e767cf05a59c08c07e6c6ee53b9f0a3b26a4c9017f3e6809ee
3
+ metadata.gz: 667197342275f6df37533b1873c6d0cfc7ae66d43bc600af2baa1eca89dc3891
4
+ data.tar.gz: 0fa801cb8ba230a40864cc6106edcbaaf1a5190b5e24bf1f2e89a36c2bcf99a3
5
5
  SHA512:
6
- metadata.gz: fc7d787a61d9608ab97e402c42a440acc9751022c5e323a572be6299742411d43470dfe9155207cc46dd18561fab53a1b81340f7c388efeb8fa1695dca623871
7
- data.tar.gz: '04599e2bfac686c3452093d8e356fabaaff705a31c11e8c934bafc8ece1df91cce1defe5b20f5cc1fba83ec3de2d4a52e4885634440946a4c60863dc067a37da'
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 ~"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
 
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.2'
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 = 'RELEASE.2021-09-15T04-54-25Z'.freeze
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::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
 
@@ -35,41 +35,44 @@ module Gitlab
35
35
  test_results.each do |test|
36
36
  next if test.failures.empty?
37
37
 
38
- relate_test_to_issue(test)
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 relate_test_to_issue(test)
45
+ def relate_failure_to_issue(test)
46
46
  puts " => Searching issues for test '#{test.name}'..."
47
47
 
48
48
  begin
49
- issue = find_or_create_issue(test)
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 find_or_create_issue(test)
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
- else
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: "/relate #{test.testcase}")
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?
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Gitlab
4
4
  module QA
5
- VERSION = '7.22.1'
5
+ VERSION = '7.24.0'
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.22.1
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-02-09 00:00:00.000000000 Z
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: '0.2'
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: '0.2'
26
+ version: 1.0.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: gitlab-styles
29
29
  requirement: !ruby/object:Gem::Requirement