class Publisher::Commands::Upload
Upload
allure report
Public Instance Methods
call(**args)
click to toggle source
# File lib/allure_report_publisher/commands/upload.rb, line 44 def call(**args) Helpers.pastel(force_color: args[:color] || nil) validate_args(args) validate_result_files(args[:results_glob], args[:ignore_missing_results]) uploader = uploaders(args[:type]).new(**args.slice(:results_glob, :bucket, :prefix, :copy_latest, :update_pr)) log("Generating allure report") Spinner.spin("generating") { uploader.generate_report } log("Uploading allure report to #{args[:type]}") Spinner.spin("uploading") { uploader.upload } uploader.report_urls.each { |k, v| log("#{k}: #{v}", :green) } return unless args[:update_pr] && uploader.pr? log("Adding reports urls") Spinner.spin("updating", exit_on_error: false) { uploader.add_url_to_pr } end
Private Instance Methods
uploaders(uploader)
click to toggle source
Uploader class
@param [String] uploader @return [Publisher::Uploaders::Uploader]
# File lib/allure_report_publisher/commands/upload.rb, line 70 def uploaders(uploader) { "s3" => Uploaders::S3, "gcs" => Uploaders::GCS }[uploader] end
validate_args(args)
click to toggle source
Validate required args
@param [Hash] args @return [void]
# File lib/allure_report_publisher/commands/upload.rb, line 81 def validate_args(args) error("Missing argument --results-glob!") unless args[:results_glob] error("Missing argument --bucket!") unless args[:bucket] end
validate_result_files(results_glob, ignore)
click to toggle source
Check if allure results present
@param [String] results_glob @return [void]
# File lib/allure_report_publisher/commands/upload.rb, line 90 def validate_result_files(results_glob, ignore) return unless Dir.glob(results_glob).empty? log("Glob '#{results_glob}' did not match any files!", ignore ? :yellow : :red) exit(ignore ? 0 : 1) end