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 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