allure-report-publisher 0.0.1
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 +7 -0
- data/README.md +55 -0
- data/bin/allure-report-publisher +7 -0
- data/lib/allure_report_publisher.rb +22 -0
- data/lib/allure_report_publisher/commands/upload_s3.rb +41 -0
- data/lib/allure_report_publisher/commands/version.rb +13 -0
- data/lib/allure_report_publisher/helpers.rb +76 -0
- data/lib/allure_report_publisher/lib/report_generator.rb +54 -0
- data/lib/allure_report_publisher/lib/uploaders/_uploader.rb +98 -0
- data/lib/allure_report_publisher/lib/uploaders/s3_uploader.rb +96 -0
- data/lib/allure_report_publisher/version.rb +5 -0
- metadata +143 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 1362930b746c980e6cc2130d5a304c1be870a6e79658df5143bda833035773a8
|
4
|
+
data.tar.gz: e23baf8887d7acee4dd919e0e4b71282c6e462476cf0ddd037a6c82d7248a290
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 2574999aa80c7d2eb499da7f65e8bc42c3f917331d4c10d014d49f04d75f77e0d0c6d4ada2944eb988bb3f70dc7ebac199200e76bc4be86a723381b4624d23a3
|
7
|
+
data.tar.gz: 28dd428d4fe4d9e52ab381f039772293317d0c667f9580388dd74886dddfaf3fda11b55bd59fcf65e1d6040805bdadeb2ed9118c96e252e7875f2259e7984e90
|
data/README.md
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
[](https://codeclimate.com/github/andrcuns/allure-report-publisher/maintainability)
|
2
|
+
[](https://codeclimate.com/github/andrcuns/allure-report-publisher/test_coverage)
|
3
|
+
|
4
|
+
# allure-report-uploader
|
5
|
+
|
6
|
+
Upload your report to a file storage of your choice.
|
7
|
+
|
8
|
+
## Installation
|
9
|
+
|
10
|
+
```bash
|
11
|
+
gem install allure-report-uploader
|
12
|
+
```
|
13
|
+
|
14
|
+
## Usage
|
15
|
+
|
16
|
+
### AWS S3
|
17
|
+
|
18
|
+
```shell
|
19
|
+
$ allure-report-publisher upload s3 --help
|
20
|
+
Command:
|
21
|
+
allure-report-publisher upload s3
|
22
|
+
|
23
|
+
Usage:
|
24
|
+
allure-report-publisher upload s3
|
25
|
+
|
26
|
+
Description:
|
27
|
+
Generate and upload allure report
|
28
|
+
|
29
|
+
Options:
|
30
|
+
--result-files-glob=VALUE # Allure results files glob. Required: true
|
31
|
+
--bucket=VALUE # Bucket name. Required: true
|
32
|
+
--project=VALUE # Project name for multiple reports inside single bucket. Required: false
|
33
|
+
--help, -h # Print this help
|
34
|
+
|
35
|
+
Examples:
|
36
|
+
allure-report-publisher upload s3 --result-files-glob='path/to/allure-result/**/*' --bucket=my-bucket
|
37
|
+
```
|
38
|
+
|
39
|
+
## Development
|
40
|
+
|
41
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
42
|
+
|
43
|
+
To install this gem onto your local machine, run `bundle exec rake install`.
|
44
|
+
|
45
|
+
## Contributing
|
46
|
+
|
47
|
+
Bug reports and pull requests are welcome on GitHub at <https://github.com/andrcuns/allure-report-uploader>. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/[USERNAME]/allure-report-uploader/blob/main/CODE_OF_CONDUCT.md).
|
48
|
+
|
49
|
+
## License
|
50
|
+
|
51
|
+
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
52
|
+
|
53
|
+
## Code of Conduct
|
54
|
+
|
55
|
+
Everyone interacting in the Allure::Report::Uploader project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/allure-report-uploader/blob/main/CODE_OF_CONDUCT.md).
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "require_all"
|
4
|
+
require "parallel"
|
5
|
+
require "dry/cli"
|
6
|
+
|
7
|
+
require_rel "allure_report_publisher/helpers"
|
8
|
+
require_rel "allure_report_publisher/**/*.rb"
|
9
|
+
|
10
|
+
module Publisher
|
11
|
+
# CLI commands
|
12
|
+
#
|
13
|
+
module Commands
|
14
|
+
extend Dry::CLI::Registry
|
15
|
+
|
16
|
+
register "version", Version, aliases: ["-v", "--version"]
|
17
|
+
|
18
|
+
register "upload" do |prefix|
|
19
|
+
prefix.register "s3", UploadS3
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Publisher
|
2
|
+
module Commands
|
3
|
+
# Upload allure report
|
4
|
+
#
|
5
|
+
class UploadS3 < Dry::CLI::Command
|
6
|
+
include Helpers
|
7
|
+
|
8
|
+
desc "Generate and upload allure report"
|
9
|
+
|
10
|
+
option :result_files_glob, desc: "Allure results files glob. Required: true"
|
11
|
+
option :bucket, desc: "Bucket name. Required: true"
|
12
|
+
option :project, desc: "Project name for multiple reports inside single bucket. Required: false"
|
13
|
+
|
14
|
+
example [
|
15
|
+
"--result-files-glob='path/to/allure-result/**/*' --bucket=my-bucket",
|
16
|
+
"--result-files-glob='path/to/allure-result/**/*' --bucket=my-bucket --project=my-project"
|
17
|
+
]
|
18
|
+
|
19
|
+
def call(**args)
|
20
|
+
validate_args(args)
|
21
|
+
|
22
|
+
Uploaders::S3.new(
|
23
|
+
args[:result_files_glob],
|
24
|
+
args[:bucket],
|
25
|
+
args[:project]
|
26
|
+
).execute
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
# Validate required args
|
32
|
+
#
|
33
|
+
# @param [Hash] args
|
34
|
+
# @return [void]
|
35
|
+
def validate_args(args)
|
36
|
+
error("Missing argument --result-files-glob!") unless args[:result_files_glob]
|
37
|
+
error("Missing argument --bucket!") unless args[:bucket]
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
require "tty-spinner"
|
2
|
+
require "pastel"
|
3
|
+
require "open3"
|
4
|
+
|
5
|
+
module Publisher
|
6
|
+
# General helpers
|
7
|
+
#
|
8
|
+
module Helpers
|
9
|
+
# Colorize string
|
10
|
+
#
|
11
|
+
# @param [String] message
|
12
|
+
# @param [Symbol] color
|
13
|
+
# @return [String]
|
14
|
+
def colorize(message, color)
|
15
|
+
Pastel.new.decorate(message, color)
|
16
|
+
end
|
17
|
+
|
18
|
+
# Log message to stdout
|
19
|
+
#
|
20
|
+
# @param [String] message
|
21
|
+
# @param [String] color
|
22
|
+
# @return [void]
|
23
|
+
def log(message, color = :magenta)
|
24
|
+
puts colorize(message, color)
|
25
|
+
end
|
26
|
+
|
27
|
+
# Print error message and exit
|
28
|
+
#
|
29
|
+
# @param [String] message
|
30
|
+
# @return [void]
|
31
|
+
def error(message)
|
32
|
+
puts colorize(message, :red)
|
33
|
+
exit(1)
|
34
|
+
end
|
35
|
+
|
36
|
+
# Safe join path
|
37
|
+
#
|
38
|
+
# @param [Array<String>] *args
|
39
|
+
# @return [String]
|
40
|
+
def path(*args)
|
41
|
+
File.join(args).to_s
|
42
|
+
end
|
43
|
+
|
44
|
+
# Execute code inside spinner
|
45
|
+
#
|
46
|
+
# @param [String] message
|
47
|
+
# @param [Boolean] auto_debrief
|
48
|
+
# @param [String] done_message
|
49
|
+
# @return [Boolean]
|
50
|
+
def spin(message, done_message: "done")
|
51
|
+
spinner = TTY::Spinner.new(
|
52
|
+
"[:spinner] #{message} ...",
|
53
|
+
format: :dots,
|
54
|
+
success_mark: colorize(TTY::Spinner::TICK, :green),
|
55
|
+
error_mark: colorize(TTY::Spinner::CROSS, :red)
|
56
|
+
)
|
57
|
+
spinner.auto_spin
|
58
|
+
yield
|
59
|
+
spinner.success(done_message)
|
60
|
+
rescue StandardError => e
|
61
|
+
spinner.error(colorize(e.message, :red))
|
62
|
+
exit(1)
|
63
|
+
end
|
64
|
+
|
65
|
+
# Execute shell command
|
66
|
+
#
|
67
|
+
# @param [String] command
|
68
|
+
# @return [String] output
|
69
|
+
def execute_shell(command)
|
70
|
+
out, err, status = Open3.capture3(command)
|
71
|
+
raise("Out:\n#{out}\n\nErr:\n#{err}") unless status.success?
|
72
|
+
|
73
|
+
out
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require "open3"
|
2
|
+
|
3
|
+
module Publisher
|
4
|
+
class AllureError < StandardError; end
|
5
|
+
|
6
|
+
class NoAllureResultsError < StandardError; end
|
7
|
+
|
8
|
+
# Allure report generator
|
9
|
+
#
|
10
|
+
class ReportGenerator
|
11
|
+
include Helpers
|
12
|
+
|
13
|
+
def initialize(results_glob, results_dir, report_dir)
|
14
|
+
@results_glob = results_glob
|
15
|
+
@results_dir = results_dir
|
16
|
+
@report_dir = report_dir
|
17
|
+
end
|
18
|
+
|
19
|
+
# Generate allure report
|
20
|
+
#
|
21
|
+
# @return [void]
|
22
|
+
def generate
|
23
|
+
log("\nGenerating allure report")
|
24
|
+
spin("generating report") do
|
25
|
+
aggregate_results
|
26
|
+
generate_report
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
attr_reader :results_glob, :results_dir, :report_dir
|
33
|
+
|
34
|
+
# Copy all results files to results directory
|
35
|
+
#
|
36
|
+
# @return [void]
|
37
|
+
def aggregate_results
|
38
|
+
results = Dir.glob(results_glob)
|
39
|
+
error("Missing allure results") if results.empty?
|
40
|
+
|
41
|
+
FileUtils.cp(results, results_dir)
|
42
|
+
end
|
43
|
+
|
44
|
+
# Generate allure report
|
45
|
+
#
|
46
|
+
# @return [void]
|
47
|
+
def generate_report
|
48
|
+
out, _err, status = Open3.capture3(
|
49
|
+
"allure generate --clean --output #{report_dir} #{results_dir}"
|
50
|
+
)
|
51
|
+
error(out) unless status.success?
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,98 @@
|
|
1
|
+
module Publisher
|
2
|
+
module Uploaders
|
3
|
+
# Uploader implementation
|
4
|
+
#
|
5
|
+
class Uploader
|
6
|
+
include Helpers
|
7
|
+
|
8
|
+
HISTORY = [
|
9
|
+
"categories-trend.json",
|
10
|
+
"duration-trend.json",
|
11
|
+
"history-trend.json",
|
12
|
+
"history.json",
|
13
|
+
"retry-trend.json"
|
14
|
+
].freeze
|
15
|
+
|
16
|
+
def initialize(results_glob, bucket, project = nil)
|
17
|
+
@results_glob = results_glob
|
18
|
+
@bucket = bucket
|
19
|
+
@project = project
|
20
|
+
end
|
21
|
+
|
22
|
+
# Execute allure report generation and upload
|
23
|
+
#
|
24
|
+
# @return [void]
|
25
|
+
def execute
|
26
|
+
raise(StandardError, "Not Implemented!")
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
attr_reader :results_glob, :bucket, :project
|
32
|
+
|
33
|
+
# Report url
|
34
|
+
#
|
35
|
+
# @return [String]
|
36
|
+
def report_url
|
37
|
+
raise(StandardError, "Not Implemented!")
|
38
|
+
end
|
39
|
+
|
40
|
+
# Fetch allure report history
|
41
|
+
#
|
42
|
+
# @return [void]
|
43
|
+
def create_history_dir
|
44
|
+
FileUtils.mkdir_p(path(results_dir, "history"))
|
45
|
+
end
|
46
|
+
|
47
|
+
# Report path prefix
|
48
|
+
#
|
49
|
+
# @return [String]
|
50
|
+
def prefix
|
51
|
+
@prefix ||= [project, run_id].compact.yield_self do |pre|
|
52
|
+
break if pre.empty?
|
53
|
+
|
54
|
+
pre.join("/")
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
# Run ID
|
59
|
+
#
|
60
|
+
# @return [String]
|
61
|
+
def run_id
|
62
|
+
@run_id ||= ENV["RUN_ID"]
|
63
|
+
end
|
64
|
+
|
65
|
+
# Aggregated results directory
|
66
|
+
#
|
67
|
+
# @return [String]
|
68
|
+
def results_dir
|
69
|
+
@results_dir ||= Dir.mktmpdir("allure-results")
|
70
|
+
end
|
71
|
+
|
72
|
+
# Allure report directory
|
73
|
+
#
|
74
|
+
# @return [String]
|
75
|
+
def report_dir
|
76
|
+
@report_dir ||= Dir.mktmpdir("allure-report")
|
77
|
+
end
|
78
|
+
|
79
|
+
# Report files
|
80
|
+
#
|
81
|
+
# @return [Array<Pathname>]
|
82
|
+
def report_files
|
83
|
+
@report_files ||= Pathname
|
84
|
+
.glob("#{report_dir}/**/*")
|
85
|
+
.reject(&:directory?)
|
86
|
+
end
|
87
|
+
|
88
|
+
# Generate allure report
|
89
|
+
#
|
90
|
+
# @return [void]
|
91
|
+
def generate_report
|
92
|
+
fetch_history if run_id
|
93
|
+
|
94
|
+
ReportGenerator.new(results_glob, results_dir, report_dir).generate
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
@@ -0,0 +1,96 @@
|
|
1
|
+
require "aws-sdk-s3"
|
2
|
+
|
3
|
+
module Publisher
|
4
|
+
module Uploaders
|
5
|
+
# Report upload to AWS S3 bucket
|
6
|
+
#
|
7
|
+
class S3 < Uploader
|
8
|
+
def execute
|
9
|
+
generate_report
|
10
|
+
upload_history_and_report
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
# S3 client
|
16
|
+
#
|
17
|
+
# @return [Aws::S3::Client]
|
18
|
+
def s3
|
19
|
+
@s3 ||= Aws::S3::Client.new
|
20
|
+
end
|
21
|
+
|
22
|
+
# Report url
|
23
|
+
#
|
24
|
+
# @return [String]
|
25
|
+
def report_url
|
26
|
+
@report_url ||= ["http://#{bucket}.s3.amazonaws.com", prefix, "index.html"].compact.join("/")
|
27
|
+
end
|
28
|
+
|
29
|
+
# Fetch allure history
|
30
|
+
#
|
31
|
+
# @return [void]
|
32
|
+
def fetch_history
|
33
|
+
log("Fetching allure history")
|
34
|
+
spin("fetching history") do
|
35
|
+
create_history_dir
|
36
|
+
HISTORY.each do |file|
|
37
|
+
s3.get_object(
|
38
|
+
response_target: path(results_dir, "history", file),
|
39
|
+
key: key(project, "history", file),
|
40
|
+
bucket: bucket
|
41
|
+
)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
# Upload report to s3
|
47
|
+
#
|
48
|
+
# @return [void]
|
49
|
+
def upload_history_and_report
|
50
|
+
log("\nUploading report to s3")
|
51
|
+
spin("uploading report", done_message: "done. #{report_url}") do
|
52
|
+
upload_history
|
53
|
+
upload_report
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
# Upload allure history
|
58
|
+
#
|
59
|
+
# @return [void]
|
60
|
+
def upload_history
|
61
|
+
return unless run_id
|
62
|
+
|
63
|
+
upload_to_s3(report_files.select { |file| file.fnmatch?("*/history/*") }, project)
|
64
|
+
end
|
65
|
+
|
66
|
+
def upload_report
|
67
|
+
upload_to_s3(report_files)
|
68
|
+
end
|
69
|
+
|
70
|
+
# Upload files to s3
|
71
|
+
#
|
72
|
+
# @param [Array<Pathname>] files
|
73
|
+
# @param [String] key_prefix
|
74
|
+
# @return [Array<Hash>]
|
75
|
+
def upload_to_s3(files, key_prefix = prefix)
|
76
|
+
args = files.map do |file|
|
77
|
+
{
|
78
|
+
body: File.new(file),
|
79
|
+
bucket: bucket,
|
80
|
+
key: key(key_prefix, file.relative_path_from(report_dir))
|
81
|
+
}
|
82
|
+
end
|
83
|
+
|
84
|
+
Parallel.each(args, in_threads: 8) { |obj| s3.put_object(obj) }
|
85
|
+
end
|
86
|
+
|
87
|
+
# Fabricate key for s3 object
|
88
|
+
#
|
89
|
+
# @param [String] *args
|
90
|
+
# @return [String]
|
91
|
+
def key(*args)
|
92
|
+
args.compact.join("/")
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
metadata
ADDED
@@ -0,0 +1,143 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: allure-report-publisher
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Andrejs Cunskis
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2021-04-25 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: aws-sdk-s3
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 1.93.1
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.93.1
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: dry-cli
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.6.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.6.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: parallel
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.20'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.20'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: pastel
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.8.0
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.8.0
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: require_all
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 3.0.0
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 3.0.0
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: tty-spinner
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 0.9.3
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 0.9.3
|
97
|
+
description: Upload allure reports to different file storage providers
|
98
|
+
email:
|
99
|
+
- andrejs.cunskis@gmail.com
|
100
|
+
executables:
|
101
|
+
- allure-report-publisher
|
102
|
+
extensions: []
|
103
|
+
extra_rdoc_files: []
|
104
|
+
files:
|
105
|
+
- README.md
|
106
|
+
- bin/allure-report-publisher
|
107
|
+
- lib/allure_report_publisher.rb
|
108
|
+
- lib/allure_report_publisher/commands/upload_s3.rb
|
109
|
+
- lib/allure_report_publisher/commands/version.rb
|
110
|
+
- lib/allure_report_publisher/helpers.rb
|
111
|
+
- lib/allure_report_publisher/lib/report_generator.rb
|
112
|
+
- lib/allure_report_publisher/lib/uploaders/_uploader.rb
|
113
|
+
- lib/allure_report_publisher/lib/uploaders/s3_uploader.rb
|
114
|
+
- lib/allure_report_publisher/version.rb
|
115
|
+
homepage: https://github.com/andrcuns/allure-report-uploader
|
116
|
+
licenses:
|
117
|
+
- MIT
|
118
|
+
metadata:
|
119
|
+
homepage_uri: https://github.com/andrcuns/allure-report-uploader
|
120
|
+
source_code_uri: https://github.com/andrcuns/allure-report-uploader
|
121
|
+
changelog_uri: https://github.com/andrcuns/allure-report-uploader/releases
|
122
|
+
documentation_uri: https://github.com/andrcuns/allure-report-uploader/blob/master/README.md
|
123
|
+
bug_tracker_uri: https://github.com/andrcuns/allure-report-uploader/issues
|
124
|
+
post_install_message:
|
125
|
+
rdoc_options: []
|
126
|
+
require_paths:
|
127
|
+
- lib
|
128
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - ">="
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: 2.5.0
|
133
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - ">="
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: '0'
|
138
|
+
requirements: []
|
139
|
+
rubygems_version: 3.2.15
|
140
|
+
signing_key:
|
141
|
+
specification_version: 4
|
142
|
+
summary: Allure report uploader
|
143
|
+
test_files: []
|