gitlab_quality-test_tooling 1.8.0 → 1.8.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +8 -6
- data/lib/gitlab_quality/test_tooling/report/relate_failure_issue.rb +2 -3
- data/lib/gitlab_quality/test_tooling/report/report_as_issue.rb +9 -0
- data/lib/gitlab_quality/test_tooling/report/slow_test_issue.rb +9 -1
- data/lib/gitlab_quality/test_tooling/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4c8eda4a61584293cfb2f20a4ece0c5afd8963be75c56c5c3a1f71cbbf04a2ed
|
4
|
+
data.tar.gz: 72ea08e5a2fac3b5d9f0d5dada3bb71c7b655acbd7c03f4533e0bbe951be954e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fe64d9f93ff1343c36d1d478f63e9a4614587897b6414ec3a1f4c28fdd90ee1d245134e9350f546373350acf1f1355dd50d31da162a899d096ceb1114029767e
|
7
|
+
data.tar.gz: d4dd2ba2714e54c766592734481f7ba373692375f4c2011578f1b22da36fae3b8d58e721677e47ba214805d3798737c5ad6dec7711d586a46727029e555fb72e
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -130,11 +130,13 @@ Usage: exe/update-screenshot-paths [options]
|
|
130
130
|
|
131
131
|
```shell
|
132
132
|
Purpose: Create slow test issues from JSON RSpec report files
|
133
|
-
Usage: exe/slow-test-
|
133
|
+
Usage: exe/slow-test-issues [options]
|
134
134
|
-i, --input-files INPUT_FILES JSON RSpec report files JSON
|
135
135
|
-p, --project PROJECT Can be an integer or a group/project string
|
136
136
|
-t, --token TOKEN A valid access token with `api` scope and Maintainer permission in PROJECT
|
137
|
-
|
137
|
+
-r RELATED_ISSUES_FILE, The file path for the related issues
|
138
|
+
--related-issues-file
|
139
|
+
--dry-run Perform a dry-run (don't create issues)
|
138
140
|
-v, --version Show the version
|
139
141
|
-h, --help Show the usage
|
140
142
|
```
|
@@ -143,13 +145,13 @@ Usage: exe/slow-test-issue [options]
|
|
143
145
|
|
144
146
|
```shell
|
145
147
|
Purpose: Purpose: Create flaky test issues for any passed test coming from rspec-retry JSON report files
|
146
|
-
Usage: exe/flaky-test-
|
148
|
+
Usage: exe/flaky-test-issues [options]
|
147
149
|
-i, --input-files INPUT_FILES JSON rspec-retry report files
|
148
150
|
-p, --project PROJECT Can be an integer or a group/project string
|
149
151
|
-m MERGE_REQUEST_IID, An integer merge request IID
|
150
152
|
--merge_request_iid
|
151
153
|
-t, --token TOKEN A valid access token with `api` scope and Maintainer permission in PROJECT
|
152
|
-
--dry-run Perform a dry-run (don't create
|
154
|
+
--dry-run Perform a dry-run (don't create issues)
|
153
155
|
-v, --version Show the version
|
154
156
|
-h, --help Show the usage
|
155
157
|
```
|
@@ -160,11 +162,11 @@ Usage: exe/flaky-test-issue [options]
|
|
160
162
|
Purpose: Create slow test note on merge requests from JSON RSpec report files
|
161
163
|
Usage: exe/slow-test-merge-request-report-note [options]
|
162
164
|
-i, --input-files INPUT_FILES JSON RSpec report files JSON
|
163
|
-
|
165
|
+
-p, --project PROJECT Can be an integer or a group/project string
|
164
166
|
-m MERGE_REQUEST_IID, An integer merge request IID
|
165
167
|
--merge_request_iid
|
166
168
|
-t, --token TOKEN A valid access token with `api` scope and Maintainer permission in PROJECT
|
167
|
-
--dry-run Perform a dry-run (don't create
|
169
|
+
--dry-run Perform a dry-run (don't create note)
|
168
170
|
-v, --version Show the version
|
169
171
|
-h, --help Show the usage
|
170
172
|
```
|
@@ -167,9 +167,7 @@ module GitlabQuality
|
|
167
167
|
def pipeline_issues_with_similar_stacktrace(test)
|
168
168
|
search_labels = (base_issue_labels + Set.new(%w[test failure::new])).to_a
|
169
169
|
not_labels = exclude_labels_for_search.to_a
|
170
|
-
|
171
|
-
not: { labels: not_labels },
|
172
|
-
created_after: past_timestamp(2) }).select do |issue|
|
170
|
+
find_issues_created_after(past_timestamp(2), state: 'opened', labels: search_labels, not_labels: not_labels).select do |issue|
|
173
171
|
job_url_from_issue = failed_issue_job_url(issue)
|
174
172
|
|
175
173
|
next if pipeline != pipeline_env_from_job_url(job_url_from_issue)
|
@@ -196,6 +194,7 @@ module GitlabQuality
|
|
196
194
|
def failure_issues(test)
|
197
195
|
find_issues_for_test(
|
198
196
|
test,
|
197
|
+
state: 'opened',
|
199
198
|
labels: base_issue_labels + Set.new(%w[test]),
|
200
199
|
not_labels: exclude_labels_for_search
|
201
200
|
)
|
@@ -145,10 +145,19 @@ module GitlabQuality
|
|
145
145
|
def find_issues_for_test(test, labels:, not_labels: Set.new, state: nil)
|
146
146
|
search_options = { labels: labels.to_a, not: { labels: not_labels.to_a } }
|
147
147
|
search_options[:state] = state if state
|
148
|
+
search_options[:search] = test.file.to_s.empty? ? test.name : partial_file_path(test.file)
|
149
|
+
search_options[:in] = 'title'
|
148
150
|
|
149
151
|
gitlab.find_issues(options: search_options).find_all { |issue| issue_match_test?(issue, test) }
|
150
152
|
end
|
151
153
|
|
154
|
+
def find_issues_created_after(timestamp, labels:, not_labels: Set.new, state: nil)
|
155
|
+
search_options = { labels: labels.to_a, not: { labels: not_labels.to_a }, created_after: timestamp }
|
156
|
+
search_options[:state] = state if state
|
157
|
+
|
158
|
+
gitlab.find_issues(options: search_options)
|
159
|
+
end
|
160
|
+
|
152
161
|
def issue_match_test?(issue, test)
|
153
162
|
issue_title = issue.title.strip
|
154
163
|
test_file_path_found = !test.file.to_s.empty? && issue_title.include?(partial_file_path(test.file))
|
@@ -65,10 +65,18 @@ module GitlabQuality
|
|
65
65
|
"1. #{Time.new.utc.strftime('%F')}: #{test.ci_job_url} (#{ENV.fetch('CI_PIPELINE_URL', 'pipeline url is missing')})"
|
66
66
|
end
|
67
67
|
|
68
|
+
def slow_test_issues(test)
|
69
|
+
find_issues_for_test(
|
70
|
+
test,
|
71
|
+
state: 'opened',
|
72
|
+
labels: SEARCH_LABELS
|
73
|
+
)
|
74
|
+
end
|
75
|
+
|
68
76
|
def create_slow_issue(test)
|
69
77
|
puts " => Finding existing issues for slow test '#{test.name}' (run time: #{test.run_time} seconds)..."
|
70
78
|
|
71
|
-
issues =
|
79
|
+
issues = slow_test_issues(test)
|
72
80
|
|
73
81
|
if issues.blank?
|
74
82
|
issues << create_issue(test)
|
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.8.
|
4
|
+
version: 1.8.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: 2023-
|
11
|
+
date: 2023-12-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: climate_control
|