module Slather::CoverageService::Hardcover
Public Instance Methods
post()
click to toggle source
# File lib/slather/coverage_service/hardcover.rb, line 33 def post f = File.open('hardcover_json_file', 'w+') begin f.write(hardcover_coverage_data) f.close `curl --form json_file=@#{f.path} #{hardcover_api_jobs_path}` rescue StandardError => e FileUtils.rm(f) raise e end FileUtils.rm(f) end
Private Instance Methods
coverage_file_class()
click to toggle source
# File lib/slather/coverage_service/hardcover.rb, line 5 def coverage_file_class Slather::CoverallsCoverageFile end
hardcover_api_jobs_path()
click to toggle source
# File lib/slather/coverage_service/hardcover.rb, line 46 def hardcover_api_jobs_path "#{hardcover_base_url}/v1/jobs" end
hardcover_base_url()
click to toggle source
# File lib/slather/coverage_service/hardcover.rb, line 51 def hardcover_base_url url = Project.yml["hardcover_base_url"] unless url raise "No `hardcover_base_url` configured. Please add it to your `.slather.yml`" end url end
hardcover_coverage_data()
click to toggle source
# File lib/slather/coverage_service/hardcover.rb, line 15 def hardcover_coverage_data if ci_service == :jenkins_ci if jenkins_job_id { :service_job_id => jenkins_job_id, :service_name => "jenkins-ci", :repo_token => Project.yml["hardcover_repo_token"], :source_files => coverage_files.map(&:as_json) }.to_json else raise StandardError, "Environment variables `BUILD_NUMBER` and `JOB_NAME` are not set. Is this running on a Jenkins build?" end else raise StandardError, "No support for ci named #{ci_service}" end end
jenkins_job_id()
click to toggle source
# File lib/slather/coverage_service/hardcover.rb, line 10 def jenkins_job_id "#{ENV['JOB_NAME']}/#{ENV['BUILD_NUMBER']}" end