allure-report-publisher 1.6.2 → 1.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8a1b01fffd526add66fad90f0b9361fbb267cbe0245f466b2593a0dd763491f9
4
- data.tar.gz: c906896082cb17fc3bc79b2cfcf5725d01694a927dcd5b882403777c9d14d809
3
+ metadata.gz: 5cb9687cfe5fe4cacc4b499e4db1837f336013d2636af2d25e332c31d2ebd43c
4
+ data.tar.gz: 3f095d105ba5380a7be579a0497c3759e0eacc5097df618f5c7e891626c12b52
5
5
  SHA512:
6
- metadata.gz: de9f9cb4037366f792d9a82c4390f4f749c212a740a515c2352ea10fecc1c566af47af6968d0717e9a1fd07281c9a6263bbd45be37b034367c3d5fa3b84b6172
7
- data.tar.gz: 3731415da0b98f0de6667dbea3ae80898b3b68e9b49d521132605b8dece4126c15ce754495d117fe26e3d72a04f3f95a886824d0af9314859db4f29b74f16751
6
+ metadata.gz: ea513f8420524a5e4da5fcd1a1045d9111b64ad40ccf7d6d42e079855fbfa108ae97896159b8cff71d82a582b904122f7d9d74458707ada1ce21f982debc8607
7
+ data.tar.gz: f353025f1f65daa48427001d5126ad7aa8e2f5ed4a14293d2fc3a002d6565a1be6fb4244d462cd243b0718cc48123fa7c3fc15d4f63c46f45c915ef5e8555759
@@ -123,7 +123,7 @@ module Publisher
123
123
 
124
124
  unless status.success?
125
125
  err_msg = "Command '#{loggable_command}' failed!\n#{output}"
126
- err_msg = mask ? err_msg.gsub(mask, "***") : err_msg
126
+ err_msg = err_msg.gsub(mask, "***") if mask
127
127
  raise(ShellCommandFailure, err_msg)
128
128
  end
129
129
 
@@ -3,8 +3,8 @@ module Publisher
3
3
  # Urls section builder
4
4
  #
5
5
  class UrlSectionBuilder
6
- DESCRIPTION_PATTERN = /<!-- allure -->[\s\S]+<!-- allurestop -->/.freeze
7
- JOBS_PATTERN = /<!-- jobs -->\n([\s\S]+)\n<!-- jobs -->/.freeze
6
+ DESCRIPTION_PATTERN = /<!-- allure -->[\s\S]+<!-- allurestop -->/
7
+ JOBS_PATTERN = /<!-- jobs -->\n([\s\S]+)\n<!-- jobs -->/
8
8
 
9
9
  # Url section builder
10
10
  #
@@ -7,7 +7,8 @@ module Publisher
7
7
  # @return [Publisher::Providers::Base]
8
8
  def self.provider
9
9
  return Github if ENV["GITHUB_WORKFLOW"]
10
- return Gitlab if ENV["GITLAB_CI"]
10
+
11
+ Gitlab if ENV["GITLAB_CI"]
11
12
  end
12
13
 
13
14
  # Base class for CI executor info
@@ -52,9 +52,25 @@ module Publisher
52
52
  log_debug("Generating allure report")
53
53
  cmd = "allure generate --clean --output #{report_path} #{common_info_path} #{result_paths}"
54
54
  out = execute_shell(cmd)
55
- log_debug("Generated allure report. #{out}")
55
+ log_debug("Generated allure report. #{out}".strip)
56
+
57
+ deduplicate_executors
56
58
  rescue StandardError => e
57
59
  raise(AllureError, e.message)
58
60
  end
61
+
62
+ # Remove duplicate entries from executors widget
63
+ # This is a workaround for making history work with multiple result paths
64
+ # allure-report requires executors.json in every results folder but it will create duplicate entries
65
+ # in executors widget of the final report
66
+ #
67
+ # @return [void]
68
+ def deduplicate_executors
69
+ executors_file = File.join(report_path, "widgets", "executors.json")
70
+ executors_json = JSON.parse(File.read(executors_file)).uniq
71
+
72
+ log_debug("Removing duplicate entries in '#{executors_file}'")
73
+ File.write(executors_file, JSON.generate(executors_json))
74
+ end
59
75
  end
60
76
  end
@@ -238,11 +238,16 @@ module Publisher
238
238
  def add_executor_info
239
239
  return unless ci_provider
240
240
 
241
- json_path = "#{common_info_path}/#{EXECUTOR_JSON}"
242
241
  json = ci_provider.executor_info.to_json
243
- log_debug("Saving ci executor info")
244
- File.write(json_path, json)
245
- log_debug("Saved '#{EXECUTOR_JSON}' as '#{json_path}'\n#{JSON.pretty_generate(ci_provider.executor_info)}")
242
+ log_debug("Saving ci executor info:\n#{JSON.pretty_generate(ci_provider.executor_info)}")
243
+ # allure-report will fail to pick up reportUrl in history tab if executor.json is not present alongside results
244
+ [common_info_path, *result_paths].each do |path|
245
+ file = File.join(path, EXECUTOR_JSON)
246
+ next log_debug("Skipping '#{file}', executor info already exists") if File.exist?(file)
247
+
248
+ File.write(File.join(path, EXECUTOR_JSON), json)
249
+ log_debug("Saved ci executor info to '#{file}'")
250
+ end
246
251
  end
247
252
 
248
253
  # Fetch allure report history
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Publisher
4
- VERSION = "1.6.2"
4
+ VERSION = "1.7.0"
5
5
  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: 1.6.2
4
+ version: 1.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: 2023-06-06 00:00:00.000000000 Z
11
+ date: 2023-10-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-s3
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: 1.93.1
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: 1.124.0
22
+ version: 1.137.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: 1.93.1
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: 1.124.0
32
+ version: 1.137.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: dry-cli
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -121,7 +121,7 @@ dependencies:
121
121
  version: '4.21'
122
122
  - - "<"
123
123
  - !ruby/object:Gem::Version
124
- version: '7.0'
124
+ version: '8.0'
125
125
  type: :runtime
126
126
  prerelease: false
127
127
  version_requirements: !ruby/object:Gem::Requirement
@@ -131,7 +131,7 @@ dependencies:
131
131
  version: '4.21'
132
132
  - - "<"
133
133
  - !ruby/object:Gem::Version
134
- version: '7.0'
134
+ version: '8.0'
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: parallel
137
137
  requirement: !ruby/object:Gem::Requirement
@@ -245,7 +245,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
245
245
  requirements:
246
246
  - - ">="
247
247
  - !ruby/object:Gem::Version
248
- version: 2.7.0
248
+ version: '3.0'
249
249
  required_rubygems_version: !ruby/object:Gem::Requirement
250
250
  requirements:
251
251
  - - ">="