aboutsummaryrefslogtreecommitdiff
path: root/node_modules/ci-info/index.js
diff options
context:
space:
mode:
authorJoel Kronqvist <joel.h.kronqvist@gmail.com>2022-03-05 19:02:27 +0200
committerJoel Kronqvist <joel.h.kronqvist@gmail.com>2022-03-05 19:02:27 +0200
commit5d309ff52cd399a6b71968a6b9a70c8ac0b98981 (patch)
tree360f7eb50f956e2367ef38fa1fc6ac7ac5258042 /node_modules/ci-info/index.js
parentb500a50f1b97d93c98b36ed9a980f8188d648147 (diff)
downloadLYLLRuoka-5d309ff52cd399a6b71968a6b9a70c8ac0b98981.tar.gz
LYLLRuoka-5d309ff52cd399a6b71968a6b9a70c8ac0b98981.zip
Added node_modules for the updating to work properly.
Diffstat (limited to 'node_modules/ci-info/index.js')
-rw-r--r--node_modules/ci-info/index.js66
1 files changed, 66 insertions, 0 deletions
diff --git a/node_modules/ci-info/index.js b/node_modules/ci-info/index.js
new file mode 100644
index 0000000..b747a89
--- /dev/null
+++ b/node_modules/ci-info/index.js
@@ -0,0 +1,66 @@
+'use strict'
+
+const vendors = require('./vendors.json')
+
+const env = process.env
+
+// Used for testing only
+Object.defineProperty(exports, '_vendors', {
+ value: vendors.map(function (v) { return v.constant })
+})
+
+exports.name = null
+exports.isPR = null
+
+vendors.forEach(function (vendor) {
+ const envs = Array.isArray(vendor.env) ? vendor.env : [vendor.env]
+ const isCI = envs.every(function (obj) {
+ return checkEnv(obj)
+ })
+
+ exports[vendor.constant] = isCI
+
+ if (isCI) {
+ exports.name = vendor.name
+
+ switch (typeof vendor.pr) {
+ case 'string':
+ // "pr": "CIRRUS_PR"
+ exports.isPR = !!env[vendor.pr]
+ break
+ case 'object':
+ if ('env' in vendor.pr) {
+ // "pr": { "env": "BUILDKITE_PULL_REQUEST", "ne": "false" }
+ exports.isPR = vendor.pr.env in env && env[vendor.pr.env] !== vendor.pr.ne
+ } else if ('any' in vendor.pr) {
+ // "pr": { "any": ["ghprbPullId", "CHANGE_ID"] }
+ exports.isPR = vendor.pr.any.some(function (key) {
+ return !!env[key]
+ })
+ } else {
+ // "pr": { "DRONE_BUILD_EVENT": "pull_request" }
+ exports.isPR = checkEnv(vendor.pr)
+ }
+ break
+ default:
+ // PR detection not supported for this vendor
+ exports.isPR = null
+ }
+ }
+})
+
+exports.isCI = !!(
+ 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
+ exports.name ||
+ false
+)
+
+function checkEnv (obj) {
+ if (typeof obj === 'string') return !!env[obj]
+ return Object.keys(obj).every(function (k) {
+ return env[k] === obj[k]
+ })
+}