class Publisher::Uploaders::Uploader
Uploader
implementation
Constants
- EXECUTOR_JSON
- HISTORY
Attributes
Public Class Methods
# File lib/allure_report_publisher/lib/uploaders/_uploader.rb, line 19 def initialize(results_glob:, bucket:, update_pr: nil, prefix: nil, copy_latest: false) @results_glob = results_glob @bucket_name = bucket @prefix = prefix @update_pr = update_pr @copy_latest = !!(Providers.provider && copy_latest) # copy latest for ci only end
Public Instance Methods
Add allure report url to pull request description
@return [void]
# File lib/allure_report_publisher/lib/uploaders/_uploader.rb, line 56 def add_url_to_pr return unless update_pr && ci_provider ci_provider.add_report_url end
Execute allure report generation and upload
@return [void]
# File lib/allure_report_publisher/lib/uploaders/_uploader.rb, line 30 def execute generate_report upload add_url_to_pr end
Generate allure report
@return [void]
# File lib/allure_report_publisher/lib/uploaders/_uploader.rb, line 39 def generate_report add_history add_executor_info ReportGenerator.new(results_glob, results_path, report_path).generate end
Executed in PR pipeline
@return [Boolean]
# File lib/allure_report_publisher/lib/uploaders/_uploader.rb, line 75 def pr? ci_provider&.pr? end
Uploaded report urls
@return [Hash<String, String>] uploaded report urls
# File lib/allure_report_publisher/lib/uploaders/_uploader.rb, line 65 def report_urls urls = { "Report url" => report_url } urls["Latest report url"] = latest_report_url if copy_latest urls end
Upload report to storage provider
@return [void]
# File lib/allure_report_publisher/lib/uploaders/_uploader.rb, line 49 def upload run_uploads end
Private Instance Methods
Add CI executor info
@return [void]
# File lib/allure_report_publisher/lib/uploaders/_uploader.rb, line 148 def add_executor_info return unless ci_provider File.open("#{results_path}/#{EXECUTOR_JSON}", "w") do |file| file.write(ci_provider.executor_info.to_json) end end
Add allure history
@return [void]
# File lib/allure_report_publisher/lib/uploaders/_uploader.rb, line 138 def add_history create_history_dir download_history rescue HistoryNotFoundError nil end
Get CI provider
@return [Publisher::Providers::Base]
# File lib/allure_report_publisher/lib/uploaders/_uploader.rb, line 175 def ci_provider return @ci_provider if defined?(@ci_provider) @ci_provider = Providers.provider&.new(report_url: report_url, update_pr: update_pr) end
Cloud provider client
@return [Object]
# File lib/allure_report_publisher/lib/uploaders/_uploader.rb, line 88 def client raise("Not Implemented!") end
Fetch allure report history
@return [void]
# File lib/allure_report_publisher/lib/uploaders/_uploader.rb, line 184 def create_history_dir FileUtils.mkdir_p(path(results_path, "history")) end
Download allure history
@return [void]
# File lib/allure_report_publisher/lib/uploaders/_uploader.rb, line 109 def download_history raise("Not implemented!") end
Report path prefix
@return [String]
# File lib/allure_report_publisher/lib/uploaders/_uploader.rb, line 191 def full_prefix @full_prefix ||= [prefix, run_id].compact.yield_self do |pre| break if pre.empty? pre.join("/") end end
Latest report url
@return [String]
# File lib/allure_report_publisher/lib/uploaders/_uploader.rb, line 102 def latest_report_url raise("Not Implemented!") end
Report files
@return [Array<Pathname>]
# File lib/allure_report_publisher/lib/uploaders/_uploader.rb, line 216 def report_files @report_files ||= Pathname .glob("#{report_path}/**/*") .reject(&:directory?) end
Allure report directory
@return [String]
# File lib/allure_report_publisher/lib/uploaders/_uploader.rb, line 209 def report_path @report_path ||= Dir.mktmpdir("allure-report") end
Report url
@return [String]
# File lib/allure_report_publisher/lib/uploaders/_uploader.rb, line 95 def report_url raise("Not Implemented!") end
Aggregated results directory
@return [String]
# File lib/allure_report_publisher/lib/uploaders/_uploader.rb, line 202 def results_path @results_path ||= Dir.mktmpdir("allure-results") end
Get run id
@return [String]
# File lib/allure_report_publisher/lib/uploaders/_uploader.rb, line 168 def run_id @run_id ||= Providers.provider&.run_id end
Run upload commands
@return [void]
# File lib/allure_report_publisher/lib/uploaders/_uploader.rb, line 159 def run_uploads upload_history unless !run_id || copy_latest upload_report upload_latest_copy if copy_latest end
Upload history to s3
@return [void]
# File lib/allure_report_publisher/lib/uploaders/_uploader.rb, line 116 def upload_history raise("Not implemented!") end
Upload copy of latest run
@return [void]
# File lib/allure_report_publisher/lib/uploaders/_uploader.rb, line 130 def upload_latest_copy raise("Not implemented!") end
Upload report to s3
@return [void]
# File lib/allure_report_publisher/lib/uploaders/_uploader.rb, line 123 def upload_report raise("Not implemented!") end