var services = { travis: require('./services/travis'), circle: require('./services/circle'), cirrus: require('./services/cirrus'), buildkite: require('./services/buildkite'), azurePipelines: require('./services/azurePipelines'), codeship: require('./services/codeship'), drone: require('./services/drone'), appveyor: require('./services/appveyor'), wercker: require('./services/wercker'), jenkins: require('./services/jenkins'), semaphore: require('./services/semaphore'), semaphore2x: require('./services/semaphore2x'), snap: require('./services/snap'), gitlab: require('./services/gitlab'), heroku: require('./services/heroku'), teamcity: require('./services/teamcity'), codebuild: require('./services/codebuild'), } var detectProvider = function() { var config for (var name in services) { if (services[name].detect()) { config = services[name].configuration() break } } if (!config) { var local = require('./services/localGit') config = local.configuration() if (!config) { throw new Error('Unknown CI service provider. Unable to upload coverage.') } } return config } module.exports = detectProvider