allure-report-publisher 0.6.2 → 0.7.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 +4 -4
- data/README.md +5 -1
- data/lib/allure_report_publisher/commands/upload.rb +10 -1
- data/lib/allure_report_publisher/lib/helpers/summary.rb +42 -15
- data/lib/allure_report_publisher/lib/helpers/url_section_builder.rb +4 -2
- data/lib/allure_report_publisher/lib/providers/_provider.rb +17 -9
- data/lib/allure_report_publisher/lib/uploaders/_uploader.rb +5 -1
- data/lib/allure_report_publisher/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: 3d33ea0e4d124c07ae275376e075ab14d3bcfedc7b5d71fdd23b78882e436c09
|
4
|
+
data.tar.gz: 94d3d70c631aeb9b79aa71fbd18cc920f95cfbe29320c12166d81d1de913cc7a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e4ba711128088e03fdf2a0f77e9890d33b6eee5e5e1671b613203e2700fdbd715e690ddf4964bcc82762f144560e83333af7e46f22d82c6c96b408f931a33830
|
7
|
+
data.tar.gz: 2b263c7e7e48d244f30df4efec6358599f31f79f832888a6083b7d3c2dbdaa40458f0216e13142ac9004f20be3efc58c9d2b9f87f57a500da662791ef68151a9
|
data/README.md
CHANGED
@@ -49,6 +49,8 @@ Options:
|
|
49
49
|
--prefix=VALUE # Optional prefix for report path. Required: false
|
50
50
|
--update-pr=VALUE # Add report url to PR via comment or description update. Required: false: (comment/description)
|
51
51
|
--summary=VALUE # Additionally add summary table to PR comment or description. Required: false: (behaviors/suites/packages/total)
|
52
|
+
--summary-table-type=VALUE # Summary table type. Required: false: (ascii/markdown), default: :ascii
|
53
|
+
--[no-]collapse-summary # Create summary as a collapsable section, default: false
|
52
54
|
--[no-]copy-latest # Keep copy of latest report at base prefix path, default: false
|
53
55
|
--[no-]color # Force color output
|
54
56
|
--[no-]ignore-missing-results # Ignore missing allure results, default: false
|
@@ -108,7 +110,9 @@ Following CI providers are supported:
|
|
108
110
|
It is possible to update pull requests with urls to published reports and execution summary.
|
109
111
|
|
110
112
|
- `--update-pr=(comment|description)`: post report urls in pr description or as a comment
|
111
|
-
- `--summary=(behaviors
|
113
|
+
- `--summary=(behaviors|suites|packages|total)`: add execution summary table
|
114
|
+
- `--summary-table-type=(ascii|markdown)`: use markdown or ascii table formatting
|
115
|
+
- `--[no-]collapse-summary`: add summary in collapsable section
|
112
116
|
|
113
117
|
Example:
|
114
118
|
|
@@ -32,6 +32,14 @@ module Publisher
|
|
32
32
|
Publisher::Helpers::Summary::PACKAGES,
|
33
33
|
Publisher::Helpers::Summary::TOTAL
|
34
34
|
]
|
35
|
+
option :summary_table_type,
|
36
|
+
type: :string,
|
37
|
+
desc: "Summary table type. Required: false",
|
38
|
+
default: Publisher::Helpers::Summary::ASCII,
|
39
|
+
values: [
|
40
|
+
Publisher::Helpers::Summary::ASCII,
|
41
|
+
Publisher::Helpers::Summary::MARKDOWN
|
42
|
+
]
|
35
43
|
option :collapse_summary,
|
36
44
|
type: :boolean,
|
37
45
|
default: false,
|
@@ -88,7 +96,8 @@ module Publisher
|
|
88
96
|
:prefix,
|
89
97
|
:copy_latest,
|
90
98
|
:update_pr,
|
91
|
-
:collapse_summary
|
99
|
+
:collapse_summary,
|
100
|
+
:summary_table_type
|
92
101
|
)
|
93
102
|
)
|
94
103
|
end
|
@@ -9,27 +9,37 @@ module Publisher
|
|
9
9
|
PACKAGES = "packages".freeze
|
10
10
|
SUITES = "suites".freeze
|
11
11
|
TOTAL = "total".freeze
|
12
|
+
MARKDOWN = :markdown
|
13
|
+
ASCII = :ascii
|
12
14
|
|
13
15
|
# Summary table generator
|
14
16
|
#
|
15
17
|
# @param [String] report_path
|
16
18
|
# @param [String] summary_type
|
17
|
-
|
19
|
+
# @param [String] markdown
|
20
|
+
def initialize(report_path, summary_type, table_type = ASCII)
|
18
21
|
@report_path = report_path
|
19
22
|
@summary_type = summary_type || TOTAL
|
23
|
+
@table_type = table_type
|
20
24
|
end
|
21
25
|
|
22
26
|
# Summary table
|
23
27
|
#
|
24
|
-
# @return [
|
28
|
+
# @return [String]
|
25
29
|
def table
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
30
|
+
summary = if summary_type == TOTAL
|
31
|
+
terminal_table { |table| table << short_summary }
|
32
|
+
else
|
33
|
+
terminal_table do |table|
|
34
|
+
expanded_summary.each { |row| table << row }
|
35
|
+
table << :separator
|
36
|
+
table << short_summary
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
return summary.to_s if markdown?
|
41
|
+
|
42
|
+
"```markdown\n#{summary}\n```"
|
33
43
|
end
|
34
44
|
|
35
45
|
# Test run status emoji
|
@@ -41,28 +51,36 @@ module Publisher
|
|
41
51
|
|
42
52
|
private
|
43
53
|
|
44
|
-
attr_reader :report_path, :summary_type
|
54
|
+
attr_reader :report_path, :summary_type, :table_type
|
45
55
|
|
46
56
|
# Expanded summary table
|
47
57
|
#
|
48
58
|
# @return [Array<Array>]
|
49
59
|
def expanded_summary
|
50
60
|
@expanded_summary ||= summary_data.map do |name, summary|
|
51
|
-
[
|
61
|
+
[
|
62
|
+
name,
|
63
|
+
*summary.values,
|
64
|
+
summary[:passed] + summary[:failed] + summary[:skipped],
|
65
|
+
status_icon(summary[:passed], summary[:failed], summary[:flaky])
|
66
|
+
]
|
52
67
|
end
|
53
68
|
end
|
54
69
|
|
55
70
|
# Short summary table
|
56
71
|
#
|
57
72
|
# @return [Array<String>]
|
58
|
-
def short_summary
|
73
|
+
def short_summary # rubocop:disable Metrics/MethodLength
|
59
74
|
return @short_summary if defined?(@short_summary)
|
60
75
|
|
61
|
-
sum = summary_data.values.each_with_object({
|
76
|
+
sum = summary_data.values.each_with_object({
|
77
|
+
passed: 0, failed: 0, skipped: 0, flaky: 0, total: 0
|
78
|
+
}) do |entry, hsh|
|
62
79
|
hsh[:passed] += entry[:passed]
|
63
80
|
hsh[:failed] += entry[:failed]
|
64
81
|
hsh[:skipped] += entry[:skipped]
|
65
82
|
hsh[:flaky] += entry[:flaky]
|
83
|
+
hsh[:total] += (entry[:passed] + entry[:failed] + entry[:skipped])
|
66
84
|
end
|
67
85
|
|
68
86
|
@short_summary = [
|
@@ -71,6 +89,7 @@ module Publisher
|
|
71
89
|
sum[:failed],
|
72
90
|
sum[:skipped],
|
73
91
|
sum[:flaky],
|
92
|
+
sum[:total],
|
74
93
|
status_icon(sum[:passed], sum[:failed], sum[:flaky])
|
75
94
|
]
|
76
95
|
end
|
@@ -93,8 +112,9 @@ module Publisher
|
|
93
112
|
# @return [Terminal::Table]
|
94
113
|
def terminal_table
|
95
114
|
Terminal::Table.new do |table|
|
96
|
-
table.title = "#{summary_type} summary"
|
97
|
-
table.
|
115
|
+
table.title = "#{summary_type} summary" unless markdown?
|
116
|
+
table.style = { border: table_type }
|
117
|
+
table.headings = ["", "passed", "failed", "skipped", "flaky", "total", "result"]
|
98
118
|
yield(table)
|
99
119
|
end
|
100
120
|
end
|
@@ -133,6 +153,13 @@ module Publisher
|
|
133
153
|
|
134
154
|
summary
|
135
155
|
end
|
156
|
+
|
157
|
+
# Render markdown border tables
|
158
|
+
#
|
159
|
+
# @return [Boolean]
|
160
|
+
def markdown?
|
161
|
+
table_type == MARKDOWN
|
162
|
+
end
|
136
163
|
end
|
137
164
|
end
|
138
165
|
end
|
@@ -20,6 +20,7 @@ module Publisher
|
|
20
20
|
@build_name = args[:build_name]
|
21
21
|
@sha_url = args[:sha_url]
|
22
22
|
@summary_type = args[:summary_type]
|
23
|
+
@summary_table_type = args[:summary_table_type]
|
23
24
|
@collapse_summary = args[:collapse_summary]
|
24
25
|
end
|
25
26
|
|
@@ -62,6 +63,7 @@ module Publisher
|
|
62
63
|
:build_name,
|
63
64
|
:sha_url,
|
64
65
|
:summary_type,
|
66
|
+
:summary_table_type,
|
65
67
|
:collapse_summary
|
66
68
|
|
67
69
|
private
|
@@ -77,7 +79,7 @@ module Publisher
|
|
77
79
|
#
|
78
80
|
# @return [Helpers::Summary]
|
79
81
|
def summary
|
80
|
-
@summary ||= Helpers::Summary.new(report_path, summary_type)
|
82
|
+
@summary ||= Helpers::Summary.new(report_path, summary_type, summary_table_type)
|
81
83
|
end
|
82
84
|
|
83
85
|
# Single job report URL entry
|
@@ -89,7 +91,7 @@ module Publisher
|
|
89
91
|
entry << "**#{build_name}**: #{summary.status} [test report](#{report_url}) for #{sha_url}"
|
90
92
|
entry << "<details>" if collapse_summary
|
91
93
|
entry << "<summary>expand test summary</summary>\n" if collapse_summary
|
92
|
-
entry <<
|
94
|
+
entry << summary.table if summary_type
|
93
95
|
entry << "</details>" if collapse_summary
|
94
96
|
entry << "<!-- #{build_name} -->\n"
|
95
97
|
|
@@ -17,14 +17,20 @@ module Publisher
|
|
17
17
|
|
18
18
|
# CI provider base
|
19
19
|
#
|
20
|
-
# @param [
|
21
|
-
# @
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
20
|
+
# @param [Hash] args
|
21
|
+
# @option args [String] :report_url
|
22
|
+
# @option args [String] :report_path
|
23
|
+
# @option args [Boolean] :update_pr
|
24
|
+
# @option args [String] :summary_type
|
25
|
+
# @option args [Boolean] :collapse_summay
|
26
|
+
# @option args [Symbol] :summary_table_type
|
27
|
+
def initialize(**args)
|
28
|
+
@report_url = args[:report_url]
|
29
|
+
@report_path = args[:report_path]
|
30
|
+
@update_pr = args[:update_pr]
|
31
|
+
@summary_type = args[:summary_type]
|
32
|
+
@summary_table_type = args[:summary_table_type]
|
33
|
+
@collapse_summary = args[:collapse_summary]
|
28
34
|
end
|
29
35
|
|
30
36
|
# :nocov:
|
@@ -69,7 +75,8 @@ module Publisher
|
|
69
75
|
:report_path,
|
70
76
|
:update_pr,
|
71
77
|
:summary_type,
|
72
|
-
:collapse_summary
|
78
|
+
:collapse_summary,
|
79
|
+
:summary_table_type
|
73
80
|
|
74
81
|
# Current pull request description
|
75
82
|
#
|
@@ -131,6 +138,7 @@ module Publisher
|
|
131
138
|
build_name: build_name,
|
132
139
|
sha_url: sha_url,
|
133
140
|
summary_type: summary_type,
|
141
|
+
summary_table_type: summary_table_type,
|
134
142
|
collapse_summary: collapse_summary
|
135
143
|
)
|
136
144
|
end
|
@@ -27,6 +27,7 @@ module Publisher
|
|
27
27
|
# @option args [String] :prefix
|
28
28
|
# @option args [Boolean] :update_pr
|
29
29
|
# @option args [String] :summary_type
|
30
|
+
# @option args [Symbol] :summary_table_type
|
30
31
|
# @option args [Boolean] :collapse_summary
|
31
32
|
# @option args [String] :copy_latest
|
32
33
|
def initialize(**args)
|
@@ -35,6 +36,7 @@ module Publisher
|
|
35
36
|
@prefix = args[:prefix]
|
36
37
|
@update_pr = args[:update_pr]
|
37
38
|
@summary_type = args[:summary_type]
|
39
|
+
@summary_table_type = args[:summary_table_type]
|
38
40
|
@copy_latest = (Providers.provider && args[:copy_latest]) # copy latest for ci only
|
39
41
|
@collapse_summary = args[:collapse_summary]
|
40
42
|
end
|
@@ -99,7 +101,8 @@ module Publisher
|
|
99
101
|
:update_pr,
|
100
102
|
:copy_latest,
|
101
103
|
:summary_type,
|
102
|
-
:collapse_summary
|
104
|
+
:collapse_summary,
|
105
|
+
:summary_table_type
|
103
106
|
|
104
107
|
def_delegators :report_generator, :results_path, :report_path
|
105
108
|
|
@@ -200,6 +203,7 @@ module Publisher
|
|
200
203
|
report_path: report_path,
|
201
204
|
update_pr: update_pr,
|
202
205
|
summary_type: summary_type,
|
206
|
+
summary_table_type: summary_table_type,
|
203
207
|
collapse_summary: collapse_summary
|
204
208
|
)
|
205
209
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: allure-report-publisher
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrejs Cunskis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-04
|
11
|
+
date: 2022-05-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk-s3
|