44 lines
1.7 KiB
JavaScript
44 lines
1.7 KiB
JavaScript
const process = require('process');
|
|
const git = require('./services/git.js');
|
|
|
|
const services = {
|
|
appveyor: require('./services/appveyor.js'),
|
|
bamboo: require('./services/bamboo.js'),
|
|
bitbucket: require('./services/bitbucket.js'),
|
|
bitrise: require('./services/bitrise.js'),
|
|
buddy: require('./services/buddy.js'),
|
|
buildkite: require('./services/buildkite.js'),
|
|
circleci: require('./services/circleci.js'),
|
|
cirrus: require('./services/cirrus.js'),
|
|
cloudflarePages: require('./services/cloudflare-pages.js'),
|
|
codebuild: require('./services/codebuild.js'),
|
|
codefresh: require('./services/codefresh.js'),
|
|
codeship: require('./services/codeship.js'),
|
|
drone: require('./services/drone.js'),
|
|
github: require('./services/github.js'),
|
|
gitlab: require('./services/gitlab.js'),
|
|
jenkins: require('./services/jenkins.js'),
|
|
netlify: require('./services/netlify.js'),
|
|
puppet: require('./services/puppet.js'),
|
|
sail: require('./services/sail.js'),
|
|
scrutinizer: require('./services/scrutinizer.js'),
|
|
semaphore: require('./services/semaphore.js'),
|
|
shippable: require('./services/shippable.js'),
|
|
teamcity: require('./services/teamcity.js'),
|
|
travis: require('./services/travis.js'),
|
|
vela: require('./services/vela.js'),
|
|
vercel: require('./services/vercel.js'),
|
|
vsts: require('./services/vsts.js'),
|
|
wercker: require('./services/wercker.js'),
|
|
};
|
|
|
|
module.exports = ({env = process.env, cwd = process.cwd()} = {}) => {
|
|
for (const name of Object.keys(services)) {
|
|
if (services[name].detect({env, cwd})) {
|
|
return {isCi: true, ...services[name].configuration({env, cwd})};
|
|
}
|
|
}
|
|
|
|
return {isCi: Boolean(env.CI), ...git.configuration({env, cwd})};
|
|
};
|