wallet-core/node_modules/ci-info/index.js

57 lines
1.3 KiB
JavaScript
Raw Normal View History

2017-05-28 00:38:50 +02:00
'use strict'
2018-09-20 02:56:13 +02:00
var vendors = require('./vendors.json')
2017-05-28 00:38:50 +02:00
var env = process.env
2018-09-20 02:56:13 +02:00
// Used for testinging only
Object.defineProperty(exports, '_vendors', {
value: vendors.map(function (v) { return v.constant })
})
2017-05-28 00:38:50 +02:00
exports.name = null
2018-09-20 02:56:13 +02:00
exports.isPR = null
2017-05-28 00:38:50 +02:00
vendors.forEach(function (vendor) {
2018-09-20 02:56:13 +02:00
var envs = Array.isArray(vendor.env) ? vendor.env : [vendor.env]
var isCI = envs.every(function (obj) {
2017-05-28 00:38:50 +02:00
if (typeof obj === 'string') return !!env[obj]
return Object.keys(obj).every(function (k) {
return env[k] === obj[k]
})
})
2018-09-20 02:56:13 +02:00
exports[vendor.constant] = isCI
if (isCI) {
exports.name = vendor.name
if (vendor.pr) {
var val = env[vendor.pr.env]
if (val) {
switch (vendor.pr.type) {
case 'not-false':
exports.isPR = val !== 'false'
break
case 'boolean':
exports.isPR = val === 'true'
break
default:
exports.isPR = true
}
} else {
exports.isPR = false
}
}
}
2017-05-28 00:38:50 +02:00
})
exports.isCI = !!(
2018-09-20 02:56:13 +02:00
env.CI || // Travis CI, CircleCI, Cirrus CI, Gitlab CI, Appveyor, CodeShip, dsari
env.CONTINUOUS_INTEGRATION || // Travis CI, Cirrus CI
env.BUILD_NUMBER || // Jenkins, TeamCity
env.RUN_ID || // TaskCluster, dsari
2017-05-28 00:38:50 +02:00
exports.name ||
false
)