class Publisher::Providers::UrlSectionBuilder
Urls section builder
Constants
- DESCRIPTION_PATTERN
- JOBS_PATTERN
Attributes
build_name[R]
report_url[R]
sha_url[R]
Public Class Methods
match?(urls_block)
click to toggle source
Matches url section pattern
@param [String] urls_block @return [Boolean]
# File lib/allure_report_publisher/lib/providers/url_section_builder.rb, line 19 def self.match?(urls_block) urls_block.match?(DESCRIPTION_PATTERN) end
new(report_url:, build_name:, sha_url:)
click to toggle source
# File lib/allure_report_publisher/lib/providers/url_section_builder.rb, line 9 def initialize(report_url:, build_name:, sha_url:) @report_url = report_url @build_name = build_name @sha_url = sha_url end
Public Instance Methods
comment_body(pr_comment = nil)
click to toggle source
Allure report url comment
@return [String]
# File lib/allure_report_publisher/lib/providers/url_section_builder.rb, line 37 def comment_body(pr_comment = nil) return body.gsub("---\n", "") unless pr_comment job_entries = jobs_section(pr_comment) body(job_entries).gsub("---\n", "") end
updated_pr_description(pr_description)
click to toggle source
Get urls for PR update
@param [String] pr @return [String]
# File lib/allure_report_publisher/lib/providers/url_section_builder.rb, line 27 def updated_pr_description(pr_description) return "#{pr_description}\n\n#{body}" unless pr_description.match?(DESCRIPTION_PATTERN) job_entries = jobs_section(pr_description) pr_description.gsub(DESCRIPTION_PATTERN, body(job_entries)) end
Private Instance Methods
body(job_entries = job_entry)
click to toggle source
Allure report url pr description
@return [String]
# File lib/allure_report_publisher/lib/providers/url_section_builder.rb, line 51 def body(job_entries = job_entry) @body ||= <<~BODY.strip <!-- allure --> --- #{heading} <!-- jobs --> #{job_entries} <!-- jobs --> <!-- allurestop --> BODY end
heading()
click to toggle source
Url section heading
@return [String]
# File lib/allure_report_publisher/lib/providers/url_section_builder.rb, line 67 def heading @heading ||= "# Allure report\n`allure-report-publisher` generated test report for #{sha_url}!" end
job_entry()
click to toggle source
Single job report URL entry
@return [String]
# File lib/allure_report_publisher/lib/providers/url_section_builder.rb, line 85 def job_entry @job_entry ||= "**#{build_name}**: 📝 [test report](#{report_url})<br />" end
job_entry_pattern()
click to toggle source
Job entry pattern
@return [RegExp]
# File lib/allure_report_publisher/lib/providers/url_section_builder.rb, line 92 def job_entry_pattern @job_entry_pattern ||= %r{^\*\*#{build_name}\*\*:.*\[test report\]\(.*\)<br />$} end
jobs_section(urls_block)
click to toggle source
Return updated jobs section
@param [String] urls @return [String]
# File lib/allure_report_publisher/lib/providers/url_section_builder.rb, line 75 def jobs_section(urls_block) jobs = urls_block.match(JOBS_PATTERN)[1] return jobs.gsub(job_entry_pattern, job_entry) if jobs.match?(job_entry_pattern) "#{jobs}\n#{job_entry}" end