diff options
Diffstat (limited to 'lib/getOptions.js')
| -rw-r--r-- | lib/getOptions.js | 108 |
1 files changed, 61 insertions, 47 deletions
diff --git a/lib/getOptions.js b/lib/getOptions.js index aa24f43..8a0305f 100644 --- a/lib/getOptions.js +++ b/lib/getOptions.js @@ -1,23 +1,28 @@ -var fs = require('fs'); -var path = require('path'); -var yaml = require('js-yaml'); -var index = require('../index'); -var logger = require('./logger')(); -var fetchGitData = require('./fetchGitData'); - -var getBaseOptions = function(cb){ - var options = {}; - var git_commit = process.env.COVERALLS_GIT_COMMIT; - var git_branch = process.env.COVERALLS_GIT_BRANCH; - var git_committer_name, git_committer_email, git_message; - - var match = (process.env.CI_PULL_REQUEST || "").match(/(\d+)$/); +'use strict'; + +const fs = require('fs'); +const path = require('path'); +const yaml = require('js-yaml'); +const logger = require('./logger')(); +const fetchGitData = require('./fetchGitData'); +const detectLocalGit = require('./detectLocalGit'); +const index = require('..'); + +const getBaseOptions = cb => { + const options = {}; + let git_commit = process.env.COVERALLS_GIT_COMMIT; + let git_branch = process.env.COVERALLS_GIT_BRANCH; + let git_committer_name; + let git_committer_email; + let git_message; + + const match = (process.env.CI_PULL_REQUEST || '').match(/(\d+)$/); if (match) { options.service_pull_request = match[1]; } - if (process.env.TRAVIS){ + if (process.env.TRAVIS) { options.service_name = 'travis-ci'; options.service_job_id = process.env.TRAVIS_JOB_ID; options.service_pull_request = process.env.TRAVIS_PULL_REQUEST; @@ -25,7 +30,7 @@ var getBaseOptions = function(cb){ git_branch = process.env.TRAVIS_BRANCH; } - if (process.env.DRONE){ + if (process.env.DRONE) { options.service_name = 'drone'; options.service_job_id = process.env.DRONE_BUILD_NUMBER; options.service_pull_request = process.env.DRONE_PULL_REQUEST; @@ -36,7 +41,7 @@ var getBaseOptions = function(cb){ git_message = process.env.DRONE_COMMIT_MESSAGE; } - if (process.env.JENKINS_URL || process.env.JENKINS_HOME){ + if (process.env.JENKINS_URL || process.env.JENKINS_HOME) { options.service_name = 'jenkins'; options.service_job_id = process.env.BUILD_ID; options.service_pull_request = process.env.CHANGE_ID || process.env.ghprbPullId; @@ -46,19 +51,20 @@ var getBaseOptions = function(cb){ git_branch = process.env.CHANGE_BRANCH || process.env.GIT_BRANCH || process.env.BRANCH_NAME; } - if (process.env.CIRCLECI){ + if (process.env.CIRCLECI) { options.service_name = 'circleci'; options.service_job_id = process.env.CIRCLE_BUILD_NUM; if (process.env.CI_PULL_REQUEST) { - var pr = process.env.CI_PULL_REQUEST.split('/pull/'); + const pr = process.env.CI_PULL_REQUEST.split('/pull/'); options.service_pull_request = pr[1]; } + git_commit = process.env.CIRCLE_SHA1; git_branch = process.env.CIRCLE_BRANCH; } - if (process.env.CI_NAME && process.env.CI_NAME === 'codeship'){ + if (process.env.CI_NAME && process.env.CI_NAME === 'codeship') { options.service_name = 'codeship'; options.service_job_id = process.env.CI_BUILD_NUMBER; git_commit = process.env.CI_COMMIT_ID; @@ -68,14 +74,14 @@ var getBaseOptions = function(cb){ git_message = process.env.CI_COMMIT_MESSAGE; } - if (process.env.WERCKER){ + if (process.env.WERCKER) { options.service_name = 'wercker'; options.service_job_id = process.env.WERCKER_BUILD_ID; git_commit = process.env.WERCKER_GIT_COMMIT; git_branch = process.env.WERCKER_GIT_BRANCH; } - if (process.env.GITLAB_CI){ + if (process.env.GITLAB_CI) { options.service_name = 'gitlab-ci'; options.service_job_number = process.env.CI_BUILD_NAME; options.service_job_id = process.env.CI_BUILD_ID; @@ -83,20 +89,22 @@ var getBaseOptions = function(cb){ git_commit = process.env.CI_BUILD_REF; git_branch = process.env.CI_BUILD_REF_NAME; } - if(process.env.APPVEYOR){ + + if (process.env.APPVEYOR) { options.service_name = 'appveyor'; options.service_job_number = process.env.APPVEYOR_BUILD_NUMBER; options.service_job_id = process.env.APPVEYOR_BUILD_ID; git_commit = process.env.APPVEYOR_REPO_COMMIT; git_branch = process.env.APPVEYOR_REPO_BRANCH; } - if(process.env.SURF_SHA1){ + + if (process.env.SURF_SHA1) { options.service_name = 'surf'; git_commit = process.env.SURF_SHA1; git_branch = process.env.SURF_REF; } - if(process.env.BUILDKITE){ + if (process.env.BUILDKITE) { options.service_name = 'buildkite'; options.service_job_number = process.env.BUILDKITE_BUILD_NUMBER; options.service_job_id = process.env.BUILDKITE_BUILD_ID; @@ -108,14 +116,14 @@ var getBaseOptions = function(cb){ git_message = process.env.BUILDKITE_MESSAGE; } - if(process.env.SEMAPHORE){ + if (process.env.SEMAPHORE) { options.service_name = 'semaphore'; options.service_job_id = process.env.SEMAPHORE_BUILD_NUMBER; git_commit = process.env.REVISION; git_branch = process.env.BRANCH_NAME; } - if(process.env.TF_BUILD){ + if (process.env.TF_BUILD) { options.service_name = 'Azure Pipelines'; options.service_job_id = process.env.BUILD_BUILDID; options.service_pull_request = process.env.SYSTEM_PULLREQUEST_PULLREQUESTNUMBER; @@ -124,15 +132,16 @@ var getBaseOptions = function(cb){ } options.run_at = process.env.COVERALLS_RUN_AT || JSON.stringify(new Date()).slice(1, -1); - if (process.env.COVERALLS_SERVICE_NAME){ + if (process.env.COVERALLS_SERVICE_NAME) { options.service_name = process.env.COVERALLS_SERVICE_NAME; } - if (process.env.COVERALLS_SERVICE_JOB_ID){ + + if (process.env.COVERALLS_SERVICE_JOB_ID) { options.service_job_id = process.env.COVERALLS_SERVICE_JOB_ID; } if (!git_commit || !git_branch) { - var data = require('./detectLocalGit')(); + const data = detectLocalGit(); if (data) { git_commit = git_commit || data.git_commit; git_branch = git_branch || data.git_branch; @@ -148,18 +157,18 @@ var getBaseOptions = function(cb){ options.repo_token = process.env.COVERALLS_REPO_TOKEN; } else { // try to get the repo token from a .coveralls.yml file - var yml = path.join(process.cwd(), '.coveralls.yml'); + const yml = path.join(process.cwd(), '.coveralls.yml'); try { if (fs.statSync(yml).isFile()) { - var coveralls_yaml_conf = yaml.safeLoad(fs.readFileSync(yml, 'utf8')); + const coveralls_yaml_conf = yaml.safeLoad(fs.readFileSync(yml, 'utf8')); options.repo_token = coveralls_yaml_conf.repo_token; - if(coveralls_yaml_conf.service_name) { + if (coveralls_yaml_conf.service_name) { options.service_name = coveralls_yaml_conf.service_name; } } - } catch(ex){ - logger.warn("Repo token could not be determined. Continuing without it." + - "This is necessary for private repos only, so may not be an issue at all."); + } catch (_) { + logger.warn('Repo token could not be determined. Continuing without it. ' + + 'This is necessary for private repos only, so may not be an issue at all.'); } } @@ -167,7 +176,7 @@ var getBaseOptions = function(cb){ options.flag_name = process.env.COVERALLS_FLAG_NAME; } - if (git_commit){ + if (git_commit) { fetchGitData({ head: { id: git_commit, @@ -176,12 +185,13 @@ var getBaseOptions = function(cb){ message: git_message }, branch: git_branch - }, function(err, git){ - if (err){ + }, (err, git) => { + if (err) { logger.warn('there was an error getting git data: ', err); } else { options.git = git; } + return cb(err, options); }); } else { @@ -189,24 +199,28 @@ var getBaseOptions = function(cb){ } }; -var getOptions = function(cb, _userOptions){ - if (!cb){ +const getOptions = (cb, _userOptions) => { + if (!cb) { throw new Error('getOptions requires a callback'); } - var userOptions = _userOptions || {}; + const userOptions = _userOptions || {}; - getBaseOptions(function(err, options){ + getBaseOptions((err, options) => { // minimist populates options._ with non-option command line arguments - var firstNonOptionArgument = index.options._[0]; + const firstNonOptionArgument = index.options._[0]; - if (firstNonOptionArgument) + if (firstNonOptionArgument) { options.filepath = firstNonOptionArgument; + } // lodash or else would be better, but no need for the extra dependency - for (var option in userOptions) { - options[option] = userOptions[option]; + for (const option in userOptions) { + if (Object.prototype.hasOwnProperty.call(userOptions, option)) { + options[option] = userOptions[option]; + } } + cb(err, options); }); }; |
