allure-report-publisher 0.0.1 → 0.0.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1362930b746c980e6cc2130d5a304c1be870a6e79658df5143bda833035773a8
4
- data.tar.gz: e23baf8887d7acee4dd919e0e4b71282c6e462476cf0ddd037a6c82d7248a290
3
+ metadata.gz: f7267f00f39421165f5b1fb7c4e975cff6e856d7ff321bf5b90ac7ab629fff6a
4
+ data.tar.gz: 6189da5c7b8743ee4fb102b01f07e9e419996a249b90a8a43601658f2c1ef6cb
5
5
  SHA512:
6
- metadata.gz: 2574999aa80c7d2eb499da7f65e8bc42c3f917331d4c10d014d49f04d75f77e0d0c6d4ada2944eb988bb3f70dc7ebac199200e76bc4be86a723381b4624d23a3
7
- data.tar.gz: 28dd428d4fe4d9e52ab381f039772293317d0c667f9580388dd74886dddfaf3fda11b55bd59fcf65e1d6040805bdadeb2ed9118c96e252e7875f2259e7984e90
6
+ metadata.gz: 52e25db16ed4068c4556162fd4bfe917b138f2e814dd2d0bf6a019b8dd462014ba7af39cbc6ebe62f0d547bee4ca5ea0813e0719f138fb4cc0890ee2f501ea33
7
+ data.tar.gz: 6e1a0903f7923fd2abb0538819f24fce3530827280dd1e568be1dc16942f8bdbdca2c03fe4816e7d3bb00d3b631cfe8a7d4bea0f9af77f3e6c8a9afcfed4ab62
data/README.md CHANGED
@@ -1,22 +1,37 @@
1
+ [![Gem Version](https://img.shields.io/gem/v/allure-report-publisher?color=red)](https://rubygems.org/gems/allure-report-publisher)
2
+ [![Docker Image Version (latest semver)](https://img.shields.io/docker/v/andrcuns/allure-report-publisher?color=blue&label=docker&sort=semver)](https://hub.docker.com/r/andrcuns/allure-report-publisher)
3
+ ![Workflow status](https://github.com/andrcuns/allure-report-publisher/workflows/Test/badge.svg)
1
4
  [![Maintainability](https://api.codeclimate.com/v1/badges/210eaa4f74588fb08313/maintainability)](https://codeclimate.com/github/andrcuns/allure-report-publisher/maintainability)
2
5
  [![Test Coverage](https://api.codeclimate.com/v1/badges/210eaa4f74588fb08313/test_coverage)](https://codeclimate.com/github/andrcuns/allure-report-publisher/test_coverage)
3
6
 
4
- # allure-report-uploader
7
+ # allure-report-publisher
5
8
 
6
9
  Upload your report to a file storage of your choice.
7
10
 
11
+ ![Demo](demo.gif)
12
+
8
13
  ## Installation
9
14
 
10
- ```bash
15
+ ### Rubygems
16
+
17
+ ```shell
11
18
  gem install allure-report-uploader
12
19
  ```
13
20
 
21
+ ### Docker
22
+
23
+ ```shell
24
+ docker pull andrcuns/allure-report-publisher:latest
25
+ ```
26
+
14
27
  ## Usage
15
28
 
29
+ allure-report-publisher will automatically detect if used in CI environment and add relevant executor info and history
30
+
16
31
  ### AWS S3
17
32
 
18
33
  ```shell
19
- $ allure-report-publisher upload s3 --help
34
+ $ (allure-report-publisher|docker run --rm andrcuns/allure-report-publisher:latest) upload s3 --help
20
35
  Command:
21
36
  allure-report-publisher upload s3
22
37
 
@@ -27,13 +42,15 @@ Description:
27
42
  Generate and upload allure report
28
43
 
29
44
  Options:
45
+ --[no-]color # Toggle color output
30
46
  --result-files-glob=VALUE # Allure results files glob. Required: true
31
47
  --bucket=VALUE # Bucket name. Required: true
32
- --project=VALUE # Project name for multiple reports inside single bucket. Required: false
48
+ --prefix=VALUE # Optional prefix for report path. Required: false
33
49
  --help, -h # Print this help
34
50
 
35
51
  Examples:
36
52
  allure-report-publisher upload s3 --result-files-glob='path/to/allure-result/**/*' --bucket=my-bucket
53
+ allure-report-publisher upload s3 --result-files-glob='path/to/allure-result/**/*' --bucket=my-bucket --project=my-project/prs
37
54
  ```
38
55
 
39
56
  ## Development
@@ -44,7 +61,7 @@ To install this gem onto your local machine, run `bundle exec rake install`.
44
61
 
45
62
  ## Contributing
46
63
 
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).
64
+ Bug reports and pull requests are welcome on GitHub at <https://github.com/andrcuns/allure-report-publisher>. 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/andrcuns/allure-report-publisher/blob/main/CODE_OF_CONDUCT.md).
48
65
 
49
66
  ## License
50
67
 
@@ -52,4 +69,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
52
69
 
53
70
  ## Code of Conduct
54
71
 
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).
72
+ Everyone interacting in the allure-report-publisher project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/andrcuns/allure-report-publisher/blob/main/CODE_OF_CONDUCT.md).
@@ -4,7 +4,7 @@ require "require_all"
4
4
  require "parallel"
5
5
  require "dry/cli"
6
6
 
7
- require_rel "allure_report_publisher/helpers"
7
+ require_rel "allure_report_publisher/lib/helpers/*.rb"
8
8
  require_rel "allure_report_publisher/**/*.rb"
9
9
 
10
10
  module Publisher
@@ -20,3 +20,5 @@ module Publisher
20
20
  end
21
21
  end
22
22
  end
23
+
24
+ Publisher::Commands.before("upload s3") { Publisher::Helpers.validate_allure_cli_present }
@@ -0,0 +1,13 @@
1
+ module Publisher
2
+ module Commands
3
+ # Common arguments and options definition
4
+ #
5
+ module CommonOptions
6
+ def self.included(mod)
7
+ mod.instance_eval do
8
+ option :color, type: :boolean, desc: "Toggle color output"
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -3,26 +3,28 @@ module Publisher
3
3
  # Upload allure report
4
4
  #
5
5
  class UploadS3 < Dry::CLI::Command
6
+ include CommonOptions
6
7
  include Helpers
7
8
 
8
9
  desc "Generate and upload allure report"
9
10
 
10
11
  option :result_files_glob, desc: "Allure results files glob. Required: true"
11
12
  option :bucket, desc: "Bucket name. Required: true"
12
- option :project, desc: "Project name for multiple reports inside single bucket. Required: false"
13
+ option :prefix, desc: "Optional prefix for report path. Required: false"
13
14
 
14
15
  example [
15
16
  "--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
+ "--result-files-glob='path/to/allure-result/**/*' --bucket=my-bucket --project=my-project/prs"
17
18
  ]
18
19
 
19
20
  def call(**args)
20
21
  validate_args(args)
22
+ Helpers.pastel(force_color: args[:color])
21
23
 
22
24
  Uploaders::S3.new(
23
25
  args[:result_files_glob],
24
26
  args[:bucket],
25
- args[:project]
27
+ args[:prefix]
26
28
  ).execute
27
29
  end
28
30
 
@@ -0,0 +1,63 @@
1
+ module Publisher
2
+ # CI provider utilities
3
+ #
4
+ module CI
5
+ # Detect CI provider
6
+ #
7
+ # @return [Publisher::CI::Base]
8
+ def self.provider
9
+ return GithubActions if ENV["GITHUB_WORKFLOW"]
10
+ end
11
+
12
+ # Base class for CI executor info
13
+ #
14
+ class Base
15
+ EXECUTOR_JSON = "executor.json".freeze
16
+
17
+ def initialize(results_path, report_url)
18
+ @results_path = results_path
19
+ @report_url = report_url
20
+ end
21
+
22
+ # :nocov:
23
+
24
+ # Get ci run ID without creating instance of ci provider
25
+ #
26
+ # @return [String]
27
+ def self.run_id
28
+ raise("Not implemented!")
29
+ end
30
+ # :nocov:
31
+
32
+ # Write executor info file
33
+ #
34
+ # @return [void]
35
+ def write_executor_info
36
+ File.open("#{results_path}/#{EXECUTOR_JSON}", "w") do |file|
37
+ file.write(executor_info.to_json)
38
+ end
39
+ end
40
+
41
+ private
42
+
43
+ attr_reader :results_path, :report_url
44
+
45
+ # :nocov:
46
+
47
+ # Get executor info
48
+ #
49
+ # @return [Hash]
50
+ def executor_info
51
+ raise("Not implemented!")
52
+ end
53
+ # :nocov:
54
+
55
+ # CI run id
56
+ #
57
+ # @return [String]
58
+ def run_id
59
+ self.class.run_id
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,50 @@
1
+ module Publisher
2
+ module CI
3
+ # Github actions executor info
4
+ #
5
+ class GithubActions < Base
6
+ # Run id
7
+ #
8
+ # @return [String]
9
+ def self.run_id
10
+ @run_id ||= ENV["GITHUB_RUN_ID"]
11
+ end
12
+
13
+ private
14
+
15
+ # Executor info
16
+ #
17
+ # @return [Hash]
18
+ def executor_info
19
+ {
20
+ name: "Github",
21
+ type: "github",
22
+ reportName: "AllureReport",
23
+ url: server_url,
24
+ reportUrl: report_url,
25
+ buildUrl: build_url,
26
+ buildOrder: run_id,
27
+ buildName: build_name
28
+ }
29
+ end
30
+
31
+ # Server url
32
+ #
33
+ # @return [String]
34
+ def server_url
35
+ @server_url ||= ENV["GITHUB_SERVER_URL"]
36
+ end
37
+
38
+ # Build url
39
+ #
40
+ # @return [String]
41
+ def build_url
42
+ @build_url ||= "#{server_url}/#{ENV['GITHUB_REPOSITORY']}/actions/runs/#{run_id}"
43
+ end
44
+
45
+ def build_name
46
+ @build_name ||= ENV["GITHUB_JOB"]
47
+ end
48
+ end
49
+ end
50
+ end
@@ -1,18 +1,37 @@
1
- require "tty-spinner"
2
1
  require "pastel"
3
2
  require "open3"
4
3
 
5
4
  module Publisher
6
- # General helpers
5
+ # Helpers
7
6
  #
8
7
  module Helpers
8
+ # Global instance of pastel
9
+ #
10
+ # @param [Boolean] force_color
11
+ # @return [Pastel]
12
+ def self.pastel(force_color: nil)
13
+ @pastel ||= Pastel.new(enabled: force_color)
14
+ end
15
+
16
+ # Check allure cli is installed and executable
17
+ #
18
+ # @return [void]
19
+ def self.validate_allure_cli_present
20
+ _out, status = Open3.capture2("which allure")
21
+ return if status.success?
22
+
23
+ Helpers.error(
24
+ "Allure cli is missing! See https://docs.qameta.io/allure/#_installing_a_commandline on how to install it!"
25
+ )
26
+ end
27
+
9
28
  # Colorize string
10
29
  #
11
30
  # @param [String] message
12
31
  # @param [Symbol] color
13
32
  # @return [String]
14
33
  def colorize(message, color)
15
- Pastel.new.decorate(message, color)
34
+ Helpers.pastel.decorate(message, color)
16
35
  end
17
36
 
18
37
  # Log message to stdout
@@ -41,27 +60,6 @@ module Publisher
41
60
  File.join(args).to_s
42
61
  end
43
62
 
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
63
  # Execute shell command
66
64
  #
67
65
  # @param [String] command
@@ -72,5 +70,7 @@ module Publisher
72
70
 
73
71
  out
74
72
  end
73
+
74
+ module_function :colorize, :log, :error, :path, :execute_shell
75
75
  end
76
76
  end
@@ -0,0 +1,109 @@
1
+ require "tty-spinner"
2
+
3
+ module Publisher
4
+ # Helpers
5
+ #
6
+ module Helpers
7
+ # Spinner helper class
8
+ #
9
+ class Spinner
10
+ include Helpers
11
+
12
+ def initialize(spinner_message, exit_on_error: true)
13
+ @spinner_message = spinner_message
14
+ @exit_on_error = exit_on_error
15
+ end
16
+
17
+ # Run code block inside spinner
18
+ #
19
+ # @param [String] spinner_message
20
+ # @param [String] done_message
21
+ # @param [Boolean] exit_on_error
22
+ # @param [Proc] &block
23
+ # @return [void]
24
+ def self.spin(spinner_message, done_message: "done", exit_on_error: true, &block)
25
+ new(spinner_message, exit_on_error: exit_on_error).spin(done_message, &block)
26
+ end
27
+
28
+ # Run code block inside spinner
29
+ #
30
+ # @param [String] done_message
31
+ # @return [Boolean]
32
+ def spin(done_message = "done")
33
+ spinner.auto_spin
34
+ yield
35
+ spinner_success(done_message)
36
+ rescue StandardError => e
37
+ spinner_error(e.message)
38
+ exit(1) if exit_on_error
39
+ end
40
+ end
41
+
42
+ private
43
+
44
+ attr_reader :spinner_message, :exit_on_error
45
+
46
+ # Error message color
47
+ #
48
+ # @return [Symbol]
49
+ def error_color
50
+ @error_color ||= exit_on_error ? :red : :yellow
51
+ end
52
+
53
+ # Success mark
54
+ #
55
+ # @return [String]
56
+ def success_mark
57
+ @success_mark ||= colorize(TTY::Spinner::TICK, :green)
58
+ end
59
+
60
+ # Error mark
61
+ #
62
+ # @return [String]
63
+ def error_mark
64
+ colorize(TTY::Spinner::CROSS, error_color)
65
+ end
66
+
67
+ # Spinner instance
68
+ #
69
+ # @return [TTY::Spinner]
70
+ def spinner
71
+ @spinner ||= TTY::Spinner.new(
72
+ "[:spinner] #{spinner_message} ...",
73
+ format: :dots,
74
+ success_mark: success_mark,
75
+ error_mark: error_mark
76
+ )
77
+ end
78
+
79
+ # Check tty
80
+ #
81
+ # @return [Boolean]
82
+ def tty?
83
+ spinner.send(:tty?)
84
+ end
85
+
86
+ # Return spinner success
87
+ #
88
+ # @param [String] done_message
89
+ # @return [void]
90
+ def spinner_success(done_message)
91
+ return spinner.success(done_message) if tty?
92
+
93
+ spinner.stop
94
+ puts("[#{success_mark}] #{spinner_message} ... #{done_message}")
95
+ end
96
+
97
+ # Return spinner error
98
+ #
99
+ # @param [String] error_message
100
+ # @return [void]
101
+ def spinner_error(error_message)
102
+ colored_message = colorize(error_message, error_color)
103
+ return spinner.error(colored_message) if tty?
104
+
105
+ spinner.stop
106
+ puts("[#{error_mark}] #{spinner_message} ... #{colored_message}")
107
+ end
108
+ end
109
+ end
@@ -20,8 +20,8 @@ module Publisher
20
20
  #
21
21
  # @return [void]
22
22
  def generate
23
- log("\nGenerating allure report")
24
- spin("generating report") do
23
+ log("Generating allure report")
24
+ Helpers::Spinner.spin("generating report") do
25
25
  aggregate_results
26
26
  generate_report
27
27
  end
@@ -13,22 +13,27 @@ module Publisher
13
13
  "retry-trend.json"
14
14
  ].freeze
15
15
 
16
- def initialize(results_glob, bucket, project = nil)
16
+ def initialize(results_glob, bucket, prefix = nil)
17
17
  @results_glob = results_glob
18
18
  @bucket = bucket
19
- @project = project
19
+ @prefix = prefix
20
20
  end
21
21
 
22
+ # :nocov:
23
+
22
24
  # Execute allure report generation and upload
23
25
  #
24
26
  # @return [void]
25
27
  def execute
26
28
  raise(StandardError, "Not Implemented!")
27
29
  end
30
+ # :nocov:
28
31
 
29
32
  private
30
33
 
31
- attr_reader :results_glob, :bucket, :project
34
+ attr_reader :results_glob, :bucket, :prefix
35
+
36
+ # :nocov:
32
37
 
33
38
  # Report url
34
39
  #
@@ -36,6 +41,46 @@ module Publisher
36
41
  def report_url
37
42
  raise(StandardError, "Not Implemented!")
38
43
  end
44
+ # :nocov:
45
+
46
+ # Get run id
47
+ #
48
+ # @return [String]
49
+ def run_id
50
+ @run_id ||= CI.provider&.run_id
51
+ end
52
+
53
+ # Get CI provider
54
+ #
55
+ # @return [Publisher::CI::Base]
56
+ def ci_provider
57
+ return @ci_provider if defined?(@ci_provider)
58
+
59
+ @ci_provider = CI.provider&.new(results_dir, report_url)
60
+ end
61
+
62
+ # Add allure history
63
+ #
64
+ # @return [void]
65
+ def add_history
66
+ log("Adding allure history")
67
+ Helpers::Spinner.spin("adding history", exit_on_error: false) do
68
+ create_history_dir
69
+ yield
70
+ end
71
+ end
72
+
73
+ # Add CI executor info
74
+ #
75
+ # @return [void]
76
+ def add_executor_info
77
+ return unless ci_provider
78
+
79
+ log("Adding executor info")
80
+ Helpers::Spinner.spin("adding") do
81
+ ci_provider.write_executor_info
82
+ end
83
+ end
39
84
 
40
85
  # Fetch allure report history
41
86
  #
@@ -47,21 +92,14 @@ module Publisher
47
92
  # Report path prefix
48
93
  #
49
94
  # @return [String]
50
- def prefix
51
- @prefix ||= [project, run_id].compact.yield_self do |pre|
95
+ def full_prefix
96
+ @full_prefix ||= [prefix, run_id].compact.yield_self do |pre|
52
97
  break if pre.empty?
53
98
 
54
99
  pre.join("/")
55
100
  end
56
101
  end
57
102
 
58
- # Run ID
59
- #
60
- # @return [String]
61
- def run_id
62
- @run_id ||= ENV["RUN_ID"]
63
- end
64
-
65
103
  # Aggregated results directory
66
104
  #
67
105
  # @return [String]
@@ -89,7 +127,8 @@ module Publisher
89
127
  #
90
128
  # @return [void]
91
129
  def generate_report
92
- fetch_history if run_id
130
+ add_history
131
+ add_executor_info
93
132
 
94
133
  ReportGenerator.new(results_glob, results_dir, report_dir).generate
95
134
  end
@@ -16,30 +16,30 @@ module Publisher
16
16
  #
17
17
  # @return [Aws::S3::Client]
18
18
  def s3
19
- @s3 ||= Aws::S3::Client.new
19
+ @s3 ||= Aws::S3::Client.new(region: ENV["AWS_REGION"] || "us-east-1")
20
20
  end
21
21
 
22
22
  # Report url
23
23
  #
24
24
  # @return [String]
25
25
  def report_url
26
- @report_url ||= ["http://#{bucket}.s3.amazonaws.com", prefix, "index.html"].compact.join("/")
26
+ @report_url ||= ["http://#{bucket}.s3.amazonaws.com", full_prefix, "index.html"].compact.join("/")
27
27
  end
28
28
 
29
- # Fetch allure history
29
+ # Add allure history
30
30
  #
31
31
  # @return [void]
32
- def fetch_history
33
- log("Fetching allure history")
34
- spin("fetching history") do
35
- create_history_dir
32
+ def add_history
33
+ super do
36
34
  HISTORY.each do |file|
37
35
  s3.get_object(
38
36
  response_target: path(results_dir, "history", file),
39
- key: key(project, "history", file),
37
+ key: key(prefix, "history", file),
40
38
  bucket: bucket
41
39
  )
42
40
  end
41
+ rescue Aws::S3::Errors::NoSuchKey
42
+ raise("Allure history from previous runs not found!")
43
43
  end
44
44
  end
45
45
 
@@ -47,8 +47,8 @@ module Publisher
47
47
  #
48
48
  # @return [void]
49
49
  def upload_history_and_report
50
- log("\nUploading report to s3")
51
- spin("uploading report", done_message: "done. #{report_url}") do
50
+ log("Uploading report to s3")
51
+ Helpers::Spinner.spin("uploading report", done_message: "done. #{report_url}") do
52
52
  upload_history
53
53
  upload_report
54
54
  end
@@ -58,9 +58,7 @@ module Publisher
58
58
  #
59
59
  # @return [void]
60
60
  def upload_history
61
- return unless run_id
62
-
63
- upload_to_s3(report_files.select { |file| file.fnmatch?("*/history/*") }, project)
61
+ upload_to_s3(report_files.select { |file| file.fnmatch?("*/history/*") }, prefix)
64
62
  end
65
63
 
66
64
  def upload_report
@@ -72,7 +70,7 @@ module Publisher
72
70
  # @param [Array<Pathname>] files
73
71
  # @param [String] key_prefix
74
72
  # @return [Array<Hash>]
75
- def upload_to_s3(files, key_prefix = prefix)
73
+ def upload_to_s3(files, key_prefix = full_prefix)
76
74
  args = files.map do |file|
77
75
  {
78
76
  body: File.new(file),
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Publisher
4
- VERSION = "0.0.1"
4
+ VERSION = "0.0.2"
5
5
  end
metadata CHANGED
@@ -1,29 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: allure-report-publisher
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrejs Cunskis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-25 00:00:00.000000000 Z
11
+ date: 2021-04-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-s3
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: 1.93.1
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: 1.95.0
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: 1.93.1
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: 1.95.0
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: dry-cli
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -105,9 +111,13 @@ files:
105
111
  - README.md
106
112
  - bin/allure-report-publisher
107
113
  - lib/allure_report_publisher.rb
114
+ - lib/allure_report_publisher/commands/base.rb
108
115
  - lib/allure_report_publisher/commands/upload_s3.rb
109
116
  - lib/allure_report_publisher/commands/version.rb
110
- - lib/allure_report_publisher/helpers.rb
117
+ - lib/allure_report_publisher/lib/ci/_base.rb
118
+ - lib/allure_report_publisher/lib/ci/github_actions.rb
119
+ - lib/allure_report_publisher/lib/helpers/helpers.rb
120
+ - lib/allure_report_publisher/lib/helpers/spinner.rb
111
121
  - lib/allure_report_publisher/lib/report_generator.rb
112
122
  - lib/allure_report_publisher/lib/uploaders/_uploader.rb
113
123
  - lib/allure_report_publisher/lib/uploaders/s3_uploader.rb