gitlab_quality-test_tooling 1.26.1 → 1.27.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: e3ee730d9233005716cead9875a8a94b79db857b68ef7dcc16715e8f1ac3f281
4
- data.tar.gz: 74d20185fa73cb46cdc998786267d79946c5f96e29966b4c5d57eac40b26c14e
3
+ metadata.gz: a5b3317b1df5c3f923259fb0dbb71e9cfdf9b4e32f9338b2189758538aaacb30
4
+ data.tar.gz: 60fda58d2a830e1849c8175347050cb81f62658a20e1ee4c9bdde2cb3049d965
5
5
  SHA512:
6
- metadata.gz: 7909fce13b1b085bef53aa1843029cda34199bd11757ec50a3175a933b3e2805d432a489e9fe157926c14c7f6819466b6a45970cd8b0d62f483df0b0ea422856
7
- data.tar.gz: 2e28b30086187f268911b15c359bd5635958c6061dfddc0213e3176e686cbf27fdc96c5fd72594a608cd0ebf21ac3870ac9f0330a148a5112e252cb97d32a8fc
6
+ metadata.gz: 0c70f1860b051ccd633aae6cb58298a90edecdd8a93a598e76f90ac8b2a337f755d77e30fa8b1dd6bcd3df7473c9af31c8a6e46509b59a5047d1be03a4bb2910
7
+ data.tar.gz: 1ae2fbf63375f49d43ef28cb5a5ec44af6940a5ffd46b43a07c07855085449994858bc49b4ca61c0cd73737c7d4960de9f5f092019681668ad339326f069c741
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- gitlab_quality-test_tooling (1.26.1)
4
+ gitlab_quality-test_tooling (1.27.0)
5
5
  activesupport (~> 7.1)
6
6
  amatch (~> 0.4.1)
7
7
  gitlab (~> 4.19)
@@ -330,4 +330,4 @@ DEPENDENCIES
330
330
  webmock (= 3.7.0)
331
331
 
332
332
  BUNDLED WITH
333
- 2.5.6
333
+ 2.5.4
@@ -29,15 +29,10 @@ module GitlabQuality
29
29
  MultipleNotesFound = Class.new(StandardError)
30
30
 
31
31
  def initialize(
32
- token:,
33
- input_files:,
34
32
  base_issue_labels: nil,
35
- dry_run: false,
36
- related_issues_file: nil,
37
- project: nil,
38
33
  max_diff_ratio: DEFAULT_MAX_DIFF_RATIO_FOR_DETECTION,
39
- **_kwargs)
40
- super(token: token, input_files: input_files, related_issues_file: related_issues_file, project: project, dry_run: dry_run)
34
+ **kwargs)
35
+ super(**kwargs)
41
36
 
42
37
  @base_issue_labels = Set.new(base_issue_labels)
43
38
  @max_diff_ratio = max_diff_ratio.to_f
@@ -64,7 +59,13 @@ module GitlabQuality
64
59
  puts " => Reporting failure for test '#{test.name}'..."
65
60
 
66
61
  issues = find_issues_by_hash(test_hash(test), state: 'opened', labels: SEARCH_LABELS)
67
- issues << create_issue(test) if issues.empty?
62
+
63
+ if issues.empty?
64
+ issues << create_issue(test)
65
+ else
66
+ # Keep issues description up-to-date
67
+ update_issues(issues, test)
68
+ end
68
69
 
69
70
  update_reports(issues, test)
70
71
  collect_issues(test, issues)
@@ -27,14 +27,9 @@ module GitlabQuality
27
27
  DOC
28
28
 
29
29
  def initialize(
30
- token:,
31
- input_files:,
32
30
  base_issue_labels: nil,
33
- confidential: false,
34
- dry_run: false,
35
- project: nil,
36
- **_kwargs)
37
- super(token: token, input_files: input_files, project: project, confidential: confidential, dry_run: dry_run)
31
+ **kwargs)
32
+ super(**kwargs)
38
33
 
39
34
  @base_issue_labels = Set.new(base_issue_labels)
40
35
  end
@@ -60,7 +55,13 @@ module GitlabQuality
60
55
  puts " => Reporting flakiness for test '#{test.name}'..."
61
56
 
62
57
  issues = find_issues_by_hash(test_hash(test), state: 'opened', labels: SEARCH_LABELS)
63
- issues << create_issue(test) if issues.empty?
58
+
59
+ if issues.empty?
60
+ issues << create_issue(test)
61
+ else
62
+ # Keep issues description up-to-date
63
+ update_issues(issues, test)
64
+ end
64
65
 
65
66
  update_reports(issues, test)
66
67
  collect_issues(test, issues)
@@ -51,17 +51,19 @@ module GitlabQuality
51
51
 
52
52
  def new_issue_description(test)
53
53
  <<~DESCRIPTION
54
- ### Test metadata (don't modify)
54
+ ### Test metadata
55
55
 
56
+ <!-- Don't modify this section as it's auto-generated -->
56
57
  | Field | Value |
57
58
  | ------ | ------ |
58
59
  | File URL | #{test.test_file_link} |
59
60
  | Filename | `#{test.file}` |
60
61
  | Description | `#{test.name}` |
61
- | Test level | #{test.level} |
62
+ | Test level | `#{test.level}` |
62
63
  | Hash | `#{test_hash(test)}` |
63
- | Expected duration | < #{test.max_duration_for_test} seconds |
64
+ | Max expected duration | < #{test.max_duration_for_test} seconds |
64
65
  #{"| Test case | #{test.testcase} |" if test.testcase}
66
+ <!-- Don't modify this section as it's auto-generated -->
65
67
  DESCRIPTION
66
68
  end
67
69
 
@@ -111,6 +113,21 @@ module GitlabQuality
111
113
  end
112
114
  end
113
115
 
116
+ def update_issues(issues, test)
117
+ issues.each do |issue|
118
+ update_issue(issue, test)
119
+ end
120
+ end
121
+
122
+ def update_issue(issue, test)
123
+ issue_attrs = {
124
+ description: new_issue_description(test)
125
+ }
126
+ return if issue.description == issue_attrs[:description]
127
+
128
+ gitlab.edit_issue(iid: issue.iid, options: issue_attrs)
129
+ end
130
+
114
131
  def issue_labels(issue)
115
132
  issue&.labels&.to_set || Set.new
116
133
  end
@@ -45,7 +45,13 @@ module GitlabQuality
45
45
  puts " => Reporting slowness for test '#{test.name}'..."
46
46
 
47
47
  issues = find_issues_by_hash(test_hash(test), state: 'opened', labels: SEARCH_LABELS)
48
- issues << create_issue(test) if issues.empty?
48
+
49
+ if issues.empty?
50
+ issues << create_issue(test)
51
+ else
52
+ # Keep issues description up-to-date
53
+ update_issues(issues, test)
54
+ end
49
55
 
50
56
  update_reports(issues, test)
51
57
  collect_issues(test, issues)
@@ -81,9 +81,7 @@ module GitlabQuality
81
81
  live_envs = %w[staging staging-canary staging-ref canary preprod production]
82
82
  return unless live_envs.include?(ci_project_name)
83
83
 
84
- test_subset = if env_var_value_if_defined('NO_ADMIN') == 'true'
85
- 'sanity-no-admin'
86
- elsif env_var_value_if_defined('SMOKE_ONLY') == 'true'
84
+ test_subset = if env_var_value_if_defined('SMOKE_ONLY') == 'true'
87
85
  'sanity'
88
86
  else
89
87
  'full'
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'influxdb-client'
4
+
3
5
  module GitlabQuality
4
6
  module TestTooling
5
7
  module TestMetricsExporter
@@ -2,6 +2,6 @@
2
2
 
3
3
  module GitlabQuality
4
4
  module TestTooling
5
- VERSION = "1.26.1"
5
+ VERSION = "1.27.0"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitlab_quality-test_tooling
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.26.1
4
+ version: 1.27.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: 2024-05-22 00:00:00.000000000 Z
11
+ date: 2024-05-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: climate_control