class CoverallsMulti::Config
reads .coveralls.yml and sets module config options
Public Class Methods
add_ci_env(config)
click to toggle source
# File lib/coveralls-multi/config.rb, line 84 def add_ci_env(config) return add_service_params_for_travis(config, yaml_config['service_name'] || nil) if ENV['TRAVIS'] return add_service_params_for_circleci(config) if ENV['CIRCLECI'] return add_service_params_for_semaphore(config) if ENV['SEMAPHORE'] return add_service_params_for_jenkins(config) if ENV['JENKINS_URL'] || ENV['JENKINS_HOME'] return add_service_params_for_appveyor(config) if ENV['APPVEYOR'] return add_service_params_for_tddium(config) if ENV['TDDIUM'] return add_service_params_for_gitlab(config) if ENV['GITLAB_CI'] return add_service_params_for_coveralls_local(config) if ENV['COVERALLS_RUN_LOCALLY'] config end
add_service_params_for_appveyor(config)
click to toggle source
# File lib/coveralls-multi/config.rb, line 133 def add_service_params_for_appveyor(config) config[:service_name] = 'appveyor' config[:service_number] = ENV['APPVEYOR_BUILD_VERSION'] config[:service_branch] = ENV['APPVEYOR_REPO_BRANCH'] config[:git][:branch] = ENV['APPVEYOR_REPO_BRANCH'] config[:commit_sha] = ENV['APPVEYOR_REPO_COMMIT'] repo_name = ENV['APPVEYOR_REPO_NAME'] config[:service_build_url] = format('https://ci.appveyor.com/project/%s/build/%s', repo_name, config[:service_number]) config end
add_service_params_for_circleci(config)
click to toggle source
# File lib/coveralls-multi/config.rb, line 106 def add_service_params_for_circleci(config) config[:service_name] = 'circleci' config[:service_number] = ENV['CIRCLE_BUILD_NUM'] config[:service_pull_request] = (ENV['CI_PULL_REQUEST'] || '')[/(\d+)$/, 1] config[:parallel] = ENV['CIRCLE_NODE_TOTAL'].to_i > 1 config[:service_job_number] = ENV['CIRCLE_NODE_INDEX'] config[:git][:branch] = ENV['CIRCLE_BRANCH'] config end
add_service_params_for_coveralls_local(config)
click to toggle source
# File lib/coveralls-multi/config.rb, line 154 def add_service_params_for_coveralls_local(config) config[:service_job_id] = nil config[:service_name] = 'coveralls-multi' config[:service_event_type] = 'manual' config end
add_service_params_for_gitlab(config)
click to toggle source
# File lib/coveralls-multi/config.rb, line 144 def add_service_params_for_gitlab(config) config[:service_name] = 'gitlab-ci' config[:service_job_number] = ENV['CI_BUILD_NAME'] config[:service_job_id] = ENV['CI_BUILD_ID'] config[:service_branch] = ENV['CI_BUILD_REF_NAME'] config[:git][:branch] = ENV['CI_BUILD_REF_NAME'] config[:commit_sha] = ENV['CI_BUILD_REF'] config end
add_service_params_for_jenkins(config)
click to toggle source
# File lib/coveralls-multi/config.rb, line 124 def add_service_params_for_jenkins(config) config[:service_name] = 'jenkins' config[:service_number] = ENV['BUILD_NUMBER'] config[:service_branch] = ENV['BRANCH_NAME'] config[:service_pull_request] = ENV['ghprbPullId'] config[:git][:branch] = ENV['GIT_BRANCH'] || ENV['BRANCH_NAME'] config end
add_service_params_for_semaphore(config)
click to toggle source
# File lib/coveralls-multi/config.rb, line 116 def add_service_params_for_semaphore(config) config[:service_name] = 'semaphore' config[:service_number] = ENV['SEMAPHORE_BUILD_NUMBER'] config[:service_pull_request] = ENV['PULL_REQUEST_NUMBER'] config[:git][:branch] = ENV['BRANCH_NAME'] config end
add_service_params_for_travis(config, service_name)
click to toggle source
# File lib/coveralls-multi/config.rb, line 97 def add_service_params_for_travis(config, service_name) config[:service_job_id] = ENV['TRAVIS_JOB_ID'] config[:service_pull_request] = ENV['TRAVIS_PULL_REQUEST'] unless ENV['TRAVIS_PULL_REQUEST'] == 'false' config[:service_name] = service_name || 'travis-ci' config[:service_branch] = ENV['TRAVIS_BRANCH'] config[:git][:branch] = ENV['TRAVIS_BRANCH'] config end
add_standard_service_params_for_generic_ci(config)
click to toggle source
# File lib/coveralls-multi/config.rb, line 161 def add_standard_service_params_for_generic_ci(config) config[:service_name] ||= ENV['CI_NAME'] config[:service_number] ||= ENV['CI_BUILD_NUMBER'] config[:service_job_id] ||= ENV['CI_JOB_ID'] config[:service_build_url] ||= ENV['CI_BUILD_URL'] config[:service_branch] ||= ENV['CI_BRANCH'] config[:service_pull_request] ||= (ENV['CI_PULL_REQUEST'] || '')[/(\d+)$/, 1] config end
api_config()
click to toggle source
# File lib/coveralls-multi/config.rb, line 41 def api_config config = { git: git_info, repo_token: ENV['COVERALLS_REPO_TOKEN'] || yaml_config['repo_token'] || yaml_config['repo_secret_token'], } add_ci_env(config) add_standard_service_params_for_generic_ci(config) config end
api_domain()
click to toggle source
# File lib/coveralls-multi/config.rb, line 33 def api_domain ENV['COVERALLS_ENDPOINT'] || yaml_config['endpoint'] || 'https://coveralls.io' end
api_endpoint()
click to toggle source
# File lib/coveralls-multi/config.rb, line 37 def api_endpoint "#{api_domain}/api/v1/jobs" end
configuration_path()
click to toggle source
# File lib/coveralls-multi/config.rb, line 29 def configuration_path File.expand_path(File.join(root, '.coveralls.yml')) if root end
debug_mode()
click to toggle source
# File lib/coveralls-multi/config.rb, line 21 def debug_mode yaml_config['debug_mode'] || ENV['COVERALLS_DEBUG'] end
files()
click to toggle source
# File lib/coveralls-multi/config.rb, line 13 def files yml = yaml_config['multi'] raise "[CoverallsMulti] Couldn't find multi configuration in .coveralls.yml" unless yml yml end
git_branch()
click to toggle source
# File lib/coveralls-multi/config.rb, line 73 def git_branch ENV.fetch('GIT_BRANCH', `git rev-parse --abbrev-ref HEAD`) end
git_head()
click to toggle source
# File lib/coveralls-multi/config.rb, line 62 def git_head { id: ENV.fetch('GIT_ID', `git log -1 --pretty=format:'%H'`), author_name: ENV.fetch('GIT_AUTHOR_NAME', `git log -1 --pretty=format:'%aN'`), author_email: ENV.fetch('GIT_AUTHOR_EMAIL', `git log -1 --pretty=format:'%ae'`), committer_name: ENV.fetch('GIT_COMMITTER_NAME', `git log -1 --pretty=format:'%cN'`), committer_email: ENV.fetch('GIT_COMMITTER_EMAIL', `git log -1 --pretty=format:'%ce'`), message: ENV.fetch('GIT_MESSAGE', `git log -1 --pretty=format:'%s'`), } end
git_info()
click to toggle source
# File lib/coveralls-multi/config.rb, line 52 def git_info Dir.chdir(root) do { head: git_head, branch: git_branch, remotes: git_remotes, } end end
git_remotes()
click to toggle source
# File lib/coveralls-multi/config.rb, line 77 def git_remotes `git remote -v`.split(/\n/).map do |remote| split_line = remote.split(' ').compact { name: split_line[0], url: split_line[1] } end.uniq end
root()
click to toggle source
# File lib/coveralls-multi/config.rb, line 25 def root Dir.pwd end
yaml_config()
click to toggle source
# File lib/coveralls-multi/config.rb, line 7 def yaml_config raise "[CoverallsMulti] Couldn't find config file" unless configuration_path && File.exist?(configuration_path) YAML.load_file(configuration_path) end