Class: CoverallsMulti::Config
- Inherits:
-
Object
- Object
- CoverallsMulti::Config
- Defined in:
- lib/coveralls-multi/config.rb
Overview
reads .coveralls.yml and sets module config options
Class Method Summary collapse
- .add_ci_env(config) ⇒ Object
- .add_service_params_for_appveyor(config) ⇒ Object
- .add_service_params_for_circleci(config) ⇒ Object
- .add_service_params_for_coveralls_local(config) ⇒ Object
- .add_service_params_for_gitlab(config) ⇒ Object
- .add_service_params_for_jenkins(config) ⇒ Object
- .add_service_params_for_semaphore(config) ⇒ Object
- .add_service_params_for_travis(config, service_name) ⇒ Object
- .add_standard_service_params_for_generic_ci(config) ⇒ Object
- .api_config ⇒ Object
- .api_domain ⇒ Object
- .api_endpoint ⇒ Object
- .configuration_path ⇒ Object
- .debug_mode ⇒ Object
- .files ⇒ Object
- .git_branch ⇒ Object
- .git_head ⇒ Object
- .git_info ⇒ Object
- .git_remotes ⇒ Object
- .root ⇒ Object
- .yaml_config ⇒ Object
Class Method Details
.add_ci_env(config) ⇒ Object
84 85 86 87 88 89 90 91 92 93 94 95 |
# 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) ⇒ Object
133 134 135 136 137 138 139 140 141 142 |
# 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) ⇒ Object
106 107 108 109 110 111 112 113 114 |
# 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) ⇒ Object
154 155 156 157 158 159 |
# 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) ⇒ Object
144 145 146 147 148 149 150 151 152 |
# 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) ⇒ Object
124 125 126 127 128 129 130 131 |
# 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) ⇒ Object
116 117 118 119 120 121 122 |
# 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) ⇒ Object
97 98 99 100 101 102 103 104 |
# 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) ⇒ Object
161 162 163 164 165 166 167 168 169 |
# 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 ⇒ Object
41 42 43 44 45 46 47 48 49 50 |
# 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 ⇒ Object
33 34 35 |
# File 'lib/coveralls-multi/config.rb', line 33 def api_domain ENV['COVERALLS_ENDPOINT'] || yaml_config['endpoint'] || 'https://coveralls.io' end |
.api_endpoint ⇒ Object
37 38 39 |
# File 'lib/coveralls-multi/config.rb', line 37 def api_endpoint "#{api_domain}/api/v1/jobs" end |
.configuration_path ⇒ Object
29 30 31 |
# File 'lib/coveralls-multi/config.rb', line 29 def configuration_path File.(File.join(root, '.coveralls.yml')) if root end |
.debug_mode ⇒ Object
21 22 23 |
# File 'lib/coveralls-multi/config.rb', line 21 def debug_mode yaml_config['debug_mode'] || ENV['COVERALLS_DEBUG'] end |
.files ⇒ Object
13 14 15 16 17 18 19 |
# 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 ⇒ Object
73 74 75 |
# File 'lib/coveralls-multi/config.rb', line 73 def git_branch ENV.fetch('GIT_BRANCH', `git rev-parse --abbrev-ref HEAD`) end |
.git_head ⇒ Object
62 63 64 65 66 67 68 69 70 71 |
# 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 ⇒ Object
52 53 54 55 56 57 58 59 60 |
# 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 ⇒ Object
77 78 79 80 81 82 |
# 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 ⇒ Object
25 26 27 |
# File 'lib/coveralls-multi/config.rb', line 25 def root Dir.pwd end |
.yaml_config ⇒ Object
7 8 9 10 11 |
# 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 |