module CodeClimate::TestReporter
def self.ci_service_data
def self.ci_service_data Ci.service_data end
def self.configuration
def self.configuration @@configuration || configure end
def self.configure
def self.configure @@configuration = Configuration.new if block_given? yield configuration end configuration end
def self.configured_branch
def self.configured_branch configuration.branch end
def self.current_branch
def self.current_branch Git.branch_from_git_or_ci end
def self.environment_variable_set?
def self.environment_variable_set? return @environment_variable_set if defined?(@environment_variable_set) @environment_variable_set = !!ENV["CODECLIMATE_REPO_TOKEN"] if @environment_variable_set logger.info("Reporting coverage data to Code Climate.") end @environment_variable_set end
def self.logger
def self.logger CodeClimate::TestReporter.configuration.logger end
def self.run(results)
def self.run(results) return unless CodeClimate::TestReporter.run? formatted_results = CodeClimate::TestReporter::Formatter.new.format(results) CodeClimate::TestReporter::PostResults.new(formatted_results).post end
def self.run?
def self.run? environment_variable_set? && run_on_current_branch? end
def self.run_on_current_branch?
def self.run_on_current_branch? return @run_on_current_branch if defined?(@run_on_current_branch) @run_on_current_branch = true if configured_branch.nil? @run_on_current_branch ||= !!(current_branch =~ /#{configured_branch}/i) unless @run_on_current_branch logger.info("Not reporting to Code Climate because #{configured_branch} is set as the reporting branch.") end @run_on_current_branch end
def self.start
def self.start logger.warn(WARNING_MESSAGE) exit(1) end
def self.tddium?
def self.tddium? ci_service_data && ci_service_data[:name] == "tddium" end