gitlab_quality-test_tooling 1.38.0 → 1.39.0
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/lib/gitlab_quality/test_tooling/report/failed_test_issue.rb +1 -1
- data/lib/gitlab_quality/test_tooling/report/flaky_test_issue.rb +1 -1
- data/lib/gitlab_quality/test_tooling/report/generate_test_session.rb +1 -1
- data/lib/gitlab_quality/test_tooling/report/knapsack_report_issue.rb +4 -1
- data/lib/gitlab_quality/test_tooling/report/relate_failure_issue.rb +1 -1
- data/lib/gitlab_quality/test_tooling/report/slow_test_issue.rb +2 -2
- data/lib/gitlab_quality/test_tooling/test_meta/processor/add_to_blocking_processor.rb +12 -0
- data/lib/gitlab_quality/test_tooling/test_meta/test_meta_updater.rb +1 -1
- data/lib/gitlab_quality/test_tooling/test_result/base_test_result.rb +7 -2
- 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: e87f64ae21e1503086674e077ee9c65072bbb34b6d5c90a97473aa771c949998
|
4
|
+
data.tar.gz: c01d95a8ffc05fb31c58e552c73ba76f60e847dca360bf45f3e5d60a6ebb59f8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 12ce0cf0811d94f50244de3f61247ba992096a8801130f7801d0901f7edfa67861c166e76366d75cf5d3ecbb62112c632b1bac6aa49bda33eeb162c8b36ea146
|
7
|
+
data.tar.gz: ed223adb0e1729db0637a49de34e337a1fbfd8b684eadc7272010317008ddaf1503e63b68a7a8caccbc2331b8553c24e7b4bf7e345d6a4b4d1038a6142e31c6f
|
data/Gemfile.lock
CHANGED
@@ -11,7 +11,7 @@ module GitlabQuality
|
|
11
11
|
# - Find issue by test hash or create a new issue if no issue was found
|
12
12
|
# - Add a failure report in the "Failure reports" note
|
13
13
|
class FailedTestIssue < HealthProblemReporter
|
14
|
-
IDENTITY_LABELS = ['test', 'automation:bot-authored'].freeze
|
14
|
+
IDENTITY_LABELS = ['test', 'test-health:failures', 'automation:bot-authored'].freeze
|
15
15
|
NEW_ISSUE_LABELS = Set.new(['type::maintenance', 'failure::new', 'priority::3', 'severity::3', *IDENTITY_LABELS]).freeze
|
16
16
|
REPORT_SECTION_HEADER = '#### Failure reports'
|
17
17
|
|
@@ -12,7 +12,7 @@ module GitlabQuality
|
|
12
12
|
# - Find issue by test hash or create a new issue if no issue was found
|
13
13
|
# - Add a flakiness report in the "Flakiness reports" note
|
14
14
|
class FlakyTestIssue < HealthProblemReporter
|
15
|
-
IDENTITY_LABELS = ['test', 'failure::flaky-test', 'automation:bot-authored'].freeze
|
15
|
+
IDENTITY_LABELS = ['test', 'failure::flaky-test', 'test-health:pass-after-retry', 'automation:bot-authored'].freeze
|
16
16
|
NEW_ISSUE_LABELS = Set.new(['type::maintenance', 'priority::3', 'severity::3', *IDENTITY_LABELS]).freeze
|
17
17
|
REPORT_SECTION_HEADER = '### Flakiness reports'
|
18
18
|
REPORTS_DOCUMENTATION = <<~DOC
|
@@ -33,7 +33,7 @@ module GitlabQuality
|
|
33
33
|
issue = gitlab.create_issue(
|
34
34
|
title: "#{Time.now.strftime('%Y-%m-%d')} Test session report | #{Runtime::Env.qa_run_type}",
|
35
35
|
description: generate_description(tests),
|
36
|
-
labels: ['Quality', 'QA', 'triage report', pipeline_name_label],
|
36
|
+
labels: ['automation:bot-authored', 'Quality', 'QA', 'triage report', pipeline_name_label],
|
37
37
|
confidential: confidential
|
38
38
|
)
|
39
39
|
|
@@ -16,7 +16,10 @@ module GitlabQuality
|
|
16
16
|
class KnapsackReportIssue < ReportAsIssue
|
17
17
|
include Concerns::GroupAndCategoryLabels
|
18
18
|
|
19
|
-
NEW_ISSUE_LABELS = Set.new([
|
19
|
+
NEW_ISSUE_LABELS = Set.new([
|
20
|
+
'test', 'automation::bot-authored', 'type::maintenance', 'maintenance::performance',
|
21
|
+
'priority::3', 'severity::3', 'knapsack_report'
|
22
|
+
]).freeze
|
20
23
|
SEARCH_LABELS = %w[test maintenance::performance knapsack_report].freeze
|
21
24
|
JOB_TIMEOUT_EPIC_URL = 'https://gitlab.com/groups/gitlab-org/quality/engineering-productivity/-/epics/19'
|
22
25
|
|
@@ -23,7 +23,7 @@ module GitlabQuality
|
|
23
23
|
FAILURE_STACKTRACE_REGEX = %r{(?:(?:.*Failure/Error:(?<stacktrace>.+))|(?<stacktrace>.+))}m
|
24
24
|
ISSUE_STACKTRACE_REGEX = /### Stack trace\s*(```)#{FAILURE_STACKTRACE_REGEX}(```)\n*\n###/m
|
25
25
|
|
26
|
-
NEW_ISSUE_LABELS = Set.new(%w[test failure::new priority::2]).freeze
|
26
|
+
NEW_ISSUE_LABELS = Set.new(%w[test failure::new priority::2 automation:bot-authored]).freeze
|
27
27
|
SCREENSHOT_IGNORED_ERRORS = ['500 Internal Server Error', 'fabricate_via_api!', 'Error Code 500'].freeze
|
28
28
|
|
29
29
|
MultipleIssuesFound = Class.new(StandardError)
|
@@ -10,8 +10,8 @@ module GitlabQuality
|
|
10
10
|
# - Find issue by title (with test description or test file)
|
11
11
|
# - Add test metadata, duration to the issue with group and category labels
|
12
12
|
class SlowTestIssue < HealthProblemReporter
|
13
|
-
IDENTITY_LABELS = ['test', 'rspec:slow test', 'rspec profiling', 'automation:bot-authored'].freeze
|
14
|
-
NEW_ISSUE_LABELS = Set.new(['test', 'type::maintenance', 'maintenance::performance', 'priority::3', 'severity::3']).freeze
|
13
|
+
IDENTITY_LABELS = ['test', 'rspec:slow test', 'test-health:slow', 'rspec profiling', 'automation:bot-authored'].freeze
|
14
|
+
NEW_ISSUE_LABELS = Set.new(['test', 'type::maintenance', 'maintenance::performance', 'priority::3', 'severity::3', *IDENTITY_LABELS]).freeze
|
15
15
|
REPORT_SECTION_HEADER = '### Slowness reports'
|
16
16
|
REPORTS_DOCUMENTATION = <<~DOC
|
17
17
|
Slow tests were detected, please see the [test speed best practices guide](https://docs.gitlab.com/ee/development/testing_guide/best_practices.html#test-speed)
|
@@ -8,6 +8,7 @@ module GitlabQuality
|
|
8
8
|
BLOCKING_METADATA = ", :blocking%{suffix}"
|
9
9
|
BRANCH_PREFIX = 'blocking-promotion'
|
10
10
|
|
11
|
+
MAX_LINE_LENGTH = 120
|
11
12
|
class << self
|
12
13
|
# Creates the merge requests for promoting E2E tests to :blocking
|
13
14
|
#
|
@@ -137,6 +138,17 @@ module GitlabQuality
|
|
137
138
|
line[line.rindex(' ')] = format(BLOCKING_METADATA, suffix: ' ')
|
138
139
|
end
|
139
140
|
|
141
|
+
check_line_length(line)
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
# Add new line character and indentation if line length is greater than MAX_LINE_LENGTH
|
146
|
+
#
|
147
|
+
# @return [String]
|
148
|
+
def check_line_length(line)
|
149
|
+
if line.length > MAX_LINE_LENGTH
|
150
|
+
line.gsub(' :blocking', "\n#{context.indentation(line)}:blocking")
|
151
|
+
else
|
140
152
|
line
|
141
153
|
end
|
142
154
|
end
|
@@ -304,7 +304,7 @@ module GitlabQuality
|
|
304
304
|
(dry_run ? GitlabQuality::TestTooling::Slack::PostToSlackDry : GitlabQuality::TestTooling::Slack::PostToSlack).new(**slack_options).invoke!
|
305
305
|
end
|
306
306
|
|
307
|
-
# Provide
|
307
|
+
# Provide indentation based on the given line
|
308
308
|
#
|
309
309
|
# @param[String] line the line to use for indentation
|
310
310
|
# @return[String] indentation
|
@@ -5,8 +5,13 @@ module GitlabQuality
|
|
5
5
|
module TestResult
|
6
6
|
class BaseTestResult
|
7
7
|
IGNORED_FAILURES = [
|
8
|
-
|
9
|
-
|
8
|
+
"Net::ReadTimeout",
|
9
|
+
"403 Forbidden - Your account has been blocked",
|
10
|
+
"API failed (502) with `GitLab is not responding",
|
11
|
+
"unexpected token at 'GitLab is not responding'",
|
12
|
+
"GitLab: Internal API error (502).",
|
13
|
+
"could not be found (502)",
|
14
|
+
"Error reference number: 502"
|
10
15
|
].freeze
|
11
16
|
|
12
17
|
SHARED_EXAMPLES_CALLERS = %w[include_examples it_behaves_like].freeze
|
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.
|
4
|
+
version: 1.39.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-
|
11
|
+
date: 2024-10-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: climate_control
|