pax_global_header00006660000000000000000000000064134020400250014500gustar00rootroot0000000000000052 comment=18fe88088b626a6dcefc66e66fb32badb05ea216 ci-info-2.0.0/000077500000000000000000000000001340204002500130235ustar00rootroot00000000000000ci-info-2.0.0/.github/000077500000000000000000000000001340204002500143635ustar00rootroot00000000000000ci-info-2.0.0/.github/ISSUE_TEMPLATE/000077500000000000000000000000001340204002500165465ustar00rootroot00000000000000ci-info-2.0.0/.github/ISSUE_TEMPLATE/ci-server-not-detected.md000066400000000000000000000016221340204002500233450ustar00rootroot00000000000000--- name: CI server not detected about: Report an issue with detecting a specific CI server --- **Details:** - Ci name: [e.g. Travis CI] - Website: [e.g. https://travis-ci.com/] - Default env variables: [e.g. https://docs.travis-ci.com/user/environment-variables/#default-environment-variables] **Environment variables**
Environment variables example ``` // Add a list of actual environment variables available to the build here // Please keep the blank line above and below the code block // WARNING: Be careful not to include any private or otherwise sensitive information ```
**Additional context** Add any other context about the problem here. ci-info-2.0.0/.gitignore000066400000000000000000000000151340204002500150070ustar00rootroot00000000000000node_modules ci-info-2.0.0/.npmignore000066400000000000000000000000511340204002500150160ustar00rootroot00000000000000node_modules .github .travis.yml test.js ci-info-2.0.0/.travis.yml000066400000000000000000000000651340204002500151350ustar00rootroot00000000000000language: node_js node_js: - '11' - '10' - '8' - '6' ci-info-2.0.0/CHANGELOG.md000066400000000000000000000037241340204002500146420ustar00rootroot00000000000000# Changelog ## v2.0.0 Breaking changes: * Drop support for Node.js end-of-life versions: 0.10, 0.12, 4, 5, 7, and 9 * Team Foundation Server will now be detected as Azure Pipelines. The constant `ci.TFS` no longer exists - use `ci.AZURE_PIPELINES` instead * Remove deprecated `ci.TDDIUM` constant - use `ci.SOLANDO` instead New features: * feat: support Azure Pipelines ([#23](https://github.com/watson/ci-info/pull/23)) * feat: support Netlify CI ([#26](https://github.com/watson/ci-info/pull/26)) * feat: support Bitbucket pipelines PR detection ([#27](https://github.com/watson/ci-info/pull/27)) ## v1.6.0 * feat: add Sail CI support * feat: add Buddy support * feat: add Bitrise support * feat: detect Jenkins PRs * feat: detect Drone PRs ## v1.5.1 * fix: use full path to vendors.json ## v1.5.0 * feat: add dsari detection ([#15](https://github.com/watson/ci-info/pull/15)) * feat: add ci.isPR ([#16](https://github.com/watson/ci-info/pull/16)) ## v1.4.0 * feat: add Cirrus CI detection ([#13](https://github.com/watson/ci-info/pull/13)) * feat: add Shippable CI detection ([#14](https://github.com/watson/ci-info/pull/14)) ## v1.3.1 * chore: reduce npm package size by not including `.github` folder content ([#11](https://github.com/watson/ci-info/pull/11)) ## v1.3.0 * feat: add support for Strider CD * chore: deprecate vendor constant `TDDIUM` in favor of `SOLANO` * docs: add missing vendor constant to docs ## v1.2.0 * feat: detect solano-ci ([#9](https://github.com/watson/ci-info/pull/9)) ## v1.1.3 * fix: fix spelling of Hunson in `ci.name` ## v1.1.2 * fix: no more false positive matches for Jenkins ## v1.1.1 * docs: sort lists of CI servers in README.md * docs: add missing AWS CodeBuild to the docs ## v1.1.0 * feat: add AWS CodeBuild to CI detection ([#2](https://github.com/watson/ci-info/pull/2)) ## v1.0.1 * chore: reduce npm package size by using an `.npmignore` file ([#3](https://github.com/watson/ci-info/pull/3)) ## v1.0.0 * Initial release ci-info-2.0.0/LICENSE000066400000000000000000000021031340204002500140240ustar00rootroot00000000000000The MIT License (MIT) Copyright (c) 2016-2018 Thomas Watson Steen Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ci-info-2.0.0/README.md000066400000000000000000000100621340204002500143010ustar00rootroot00000000000000# ci-info Get details about the current Continuous Integration environment. Please [open an issue](https://github.com/watson/ci-info/issues/new?template=ci-server-not-detected.md) if your CI server isn't properly detected :) [![npm](https://img.shields.io/npm/v/ci-info.svg)](https://www.npmjs.com/package/ci-info) [![Build status](https://travis-ci.org/watson/ci-info.svg?branch=master)](https://travis-ci.org/watson/ci-info) [![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat)](https://github.com/feross/standard) ## Installation ```bash npm install ci-info --save ``` ## Usage ```js var ci = require('ci-info') if (ci.isCI) { console.log('The name of the CI server is:', ci.name) } else { console.log('This program is not running on a CI server') } ``` ## Supported CI tools Officially supported CI servers: | Name | Constant | isPR | |------|----------|------| | [AWS CodeBuild](https://aws.amazon.com/codebuild/) | `ci.CODEBUILD` | 🚫 | | [AppVeyor](http://www.appveyor.com) | `ci.APPVEYOR` | ✅ | | [Azure Pipelines](https://azure.microsoft.com/en-us/services/devops/pipelines/) | `ci.AZURE_PIPELINES` | ✅ | | [Bamboo](https://www.atlassian.com/software/bamboo) by Atlassian | `ci.BAMBOO` | 🚫 | | [Bitbucket Pipelines](https://bitbucket.org/product/features/pipelines) | `ci.BITBUCKET` | ✅ | | [Bitrise](https://www.bitrise.io/) | `ci.BITRISE` | ✅ | | [Buddy](https://buddy.works/) | `ci.BUDDY` | ✅ | | [Buildkite](https://buildkite.com) | `ci.BUILDKITE` | ✅ | | [CircleCI](http://circleci.com) | `ci.CIRCLE` | ✅ | | [Cirrus CI](https://cirrus-ci.org) | `ci.CIRRUS` | ✅ | | [Codeship](https://codeship.com) | `ci.CODESHIP` | 🚫 | | [Drone](https://drone.io) | `ci.DRONE` | ✅ | | [dsari](https://github.com/rfinnie/dsari) | `ci.DSARI` | 🚫 | | [GitLab CI](https://about.gitlab.com/gitlab-ci/) | `ci.GITLAB` | 🚫 | | [GoCD](https://www.go.cd/) | `ci.GOCD` | 🚫 | | [Hudson](http://hudson-ci.org) | `ci.HUDSON` | 🚫 | | [Jenkins CI](https://jenkins-ci.org) | `ci.JENKINS` | ✅ | | [Magnum CI](https://magnum-ci.com) | `ci.MAGNUM` | 🚫 | | [Netlify CI](https://www.netlify.com/) | `ci.NETLIFY` | ✅ | | [Sail CI](https://sail.ci/) | `ci.SAIL` | ✅ | | [Semaphore](https://semaphoreci.com) | `ci.SEMAPHORE` | ✅ | | [Shippable](https://www.shippable.com/) | `ci.SHIPPABLE` | ✅ | | [Solano CI](https://www.solanolabs.com/) | `ci.SOLANO` | ✅ | | [Strider CD](https://strider-cd.github.io/) | `ci.STRIDER` | 🚫 | | [TaskCluster](http://docs.taskcluster.net) | `ci.TASKCLUSTER` | 🚫 | | [TeamCity](https://www.jetbrains.com/teamcity/) by JetBrains | `ci.TEAMCITY` | 🚫 | | [Travis CI](http://travis-ci.org) | `ci.TRAVIS` | ✅ | ## API ### `ci.name` Returns a string containing name of the CI server the code is running on. If CI server is not detected, it returns `null`. Don't depend on the value of this string not to change for a specific vendor. If you find your self writing `ci.name === 'Travis CI'`, you most likely want to use `ci.TRAVIS` instead. ### `ci.isCI` Returns a boolean. Will be `true` if the code is running on a CI server, otherwise `false`. Some CI servers not listed here might still trigger the `ci.isCI` boolean to be set to `true` if they use certain vendor neutral environment variables. In those cases `ci.name` will be `null` and no vendor specific boolean will be set to `true`. ### `ci.isPR` Returns a boolean if PR detection is supported for the current CI server. Will be `true` if a PR is being tested, otherwise `false`. If PR detection is not supported for the current CI server, the value will be `null`. ### `ci.` A vendor specific boolean constant is exposed for each support CI vendor. A constant will be `true` if the code is determined to run on the given CI server, otherwise `false`. Examples of vendor constants are `ci.TRAVIS` or `ci.APPVEYOR`. For a complete list, see the support table above. Deprecated vendor constants that will be removed in the next major release: - `ci.TDDIUM` (Solano CI) This have been renamed `ci.SOLANO` ## License [MIT](LICENSE) ci-info-2.0.0/index.js000066400000000000000000000033131340204002500144700ustar00rootroot00000000000000'use strict' var vendors = require('./vendors.json') var 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) { var envs = Array.isArray(vendor.env) ? vendor.env : [vendor.env] var 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] }) } ci-info-2.0.0/package.json000066400000000000000000000014361340204002500153150ustar00rootroot00000000000000{ "name": "ci-info", "version": "2.0.0", "description": "Get details about the current Continuous Integration environment", "main": "index.js", "dependencies": {}, "devDependencies": { "clear-require": "^1.0.1", "standard": "^12.0.1", "tape": "^4.9.1" }, "scripts": { "test": "standard && node test.js" }, "repository": { "type": "git", "url": "https://github.com/watson/ci-info.git" }, "keywords": [ "ci", "continuous", "integration", "test", "detect" ], "author": "Thomas Watson Steen (https://twitter.com/wa7son)", "license": "MIT", "bugs": { "url": "https://github.com/watson/ci-info/issues" }, "homepage": "https://github.com/watson/ci-info", "coordinates": [ 55.778231, 12.593179 ] } ci-info-2.0.0/test.js000066400000000000000000000234121340204002500143420ustar00rootroot00000000000000'use strict' var test = require('tape') var clearRequire = require('clear-require') var isActualPR = !!(process.env.TRAVIS_PULL_REQUEST && process.env.TRAVIS_PULL_REQUEST !== 'false') test('Known CI', function (t) { process.env.TRAVIS = 'true' var ci = require('./') t.ok(Array.isArray(ci._vendors)) t.ok(ci._vendors.length > 0) t.equal(ci.isCI, true) t.equal(ci.isPR, isActualPR) t.equal(ci.name, 'Travis CI') t.equal(ci.TRAVIS, true) assertVendorConstants('TRAVIS', ci, t) t.end() }) test('Not CI', function (t) { delete process.env.CI delete process.env.CONTINUOUS_INTEGRATION delete process.env.BUILD_NUMBER delete process.env.TRAVIS clearRequire('./') var ci = require('./') t.equal(ci.isCI, false) t.equal(ci.isPR, null) t.equal(ci.name, null) t.equal(ci.TRAVIS, false) assertVendorConstants(null, ci, t) t.end() }) test('Unknown CI', function (t) { process.env.CI = 'true' clearRequire('./') var ci = require('./') t.equal(ci.isCI, true) t.equal(ci.isPR, null) t.equal(ci.name, null) t.equal(ci.TRAVIS, false) assertVendorConstants(null, ci, t) t.end() }) test('AppVeyor - PR', function (t) { process.env.APPVEYOR = 'true' process.env.APPVEYOR_PULL_REQUEST_NUMBER = '42' clearRequire('./') var ci = require('./') t.equal(ci.isCI, true) t.equal(ci.isPR, true) t.equal(ci.name, 'AppVeyor') t.equal(ci.APPVEYOR, true) assertVendorConstants('APPVEYOR', ci, t) delete process.env.APPVEYOR delete process.env.APPVEYOR_PULL_REQUEST_NUMBER t.end() }) test('AppVeyor - Not PR', function (t) { process.env.APPVEYOR = 'true' clearRequire('./') var ci = require('./') t.equal(ci.isCI, true) t.equal(ci.isPR, false) t.equal(ci.name, 'AppVeyor') t.equal(ci.APPVEYOR, true) assertVendorConstants('APPVEYOR', ci, t) delete process.env.APPVEYOR t.end() }) test('Azure Pipelines - PR', function (t) { process.env.SYSTEM_TEAMFOUNDATIONCOLLECTIONURI = 'https://dev.azure.com/Contoso' process.env.SYSTEM_PULLREQUEST_PULLREQUESTID = '42' clearRequire('./') var ci = require('./') t.equal(ci.isCI, true) t.equal(ci.isPR, true) t.equal(ci.name, 'Azure Pipelines') t.equal(ci.AZURE_PIPELINES, true) assertVendorConstants('AZURE_PIPELINES', ci, t) delete process.env.SYSTEM_TEAMFOUNDATIONCOLLECTIONURI delete process.env.SYSTEM_PULLREQUEST_PULLREQUESTID t.end() }) test('Azure Pipelines - Not PR', function (t) { process.env.SYSTEM_TEAMFOUNDATIONCOLLECTIONURI = 'https://dev.azure.com/Contoso' clearRequire('./') var ci = require('./') t.equal(ci.isCI, true) t.equal(ci.isPR, false) t.equal(ci.name, 'Azure Pipelines') t.equal(ci.AZURE_PIPELINES, true) assertVendorConstants('AZURE_PIPELINES', ci, t) delete process.env.SYSTEM_TEAMFOUNDATIONCOLLECTIONURI t.end() }) test('Bitbucket Pipelines - PR', function (t) { process.env.BITBUCKET_COMMIT = 'true' process.env.BITBUCKET_PR_ID = '42' clearRequire('./') var ci = require('./') t.equal(ci.isCI, true) t.equal(ci.isPR, true) t.equal(ci.name, 'Bitbucket Pipelines') t.equal(ci.BITBUCKET, true) assertVendorConstants('BITBUCKET', ci, t) delete process.env.BITBUCKET_COMMIT delete process.env.BITBUCKET_PR_ID t.end() }) test('Bitbucket Pipelines - Not PR', function (t) { process.env.BITBUCKET_COMMIT = 'true' clearRequire('./') var ci = require('./') t.equal(ci.isCI, true) t.equal(ci.isPR, false) t.equal(ci.name, 'Bitbucket Pipelines') t.equal(ci.BITBUCKET, true) assertVendorConstants('BITBUCKET', ci, t) delete process.env.BITBUCKET_COMMIT t.end() }) test('Buildkite - PR', function (t) { process.env.BUILDKITE = 'true' process.env.BUILDKITE_PULL_REQUEST = '42' clearRequire('./') var ci = require('./') t.equal(ci.isCI, true) t.equal(ci.isPR, true) t.equal(ci.name, 'Buildkite') t.equal(ci.BUILDKITE, true) assertVendorConstants('BUILDKITE', ci, t) delete process.env.BUILDKITE delete process.env.BUILDKITE_PULL_REQUEST t.end() }) test('Buildkite - Not PR', function (t) { process.env.BUILDKITE = 'true' process.env.BUILDKITE_PULL_REQUEST = 'false' clearRequire('./') var ci = require('./') t.equal(ci.isCI, true) t.equal(ci.isPR, false) t.equal(ci.name, 'Buildkite') t.equal(ci.BUILDKITE, true) assertVendorConstants('BUILDKITE', ci, t) delete process.env.BUILDKITE delete process.env.BUILDKITE_PULL_REQUEST t.end() }) test('CircleCI - PR', function (t) { process.env.CIRCLECI = 'true' process.env.CIRCLE_PULL_REQUEST = '42' clearRequire('./') var ci = require('./') t.equal(ci.isCI, true) t.equal(ci.isPR, true) t.equal(ci.name, 'CircleCI') t.equal(ci.CIRCLE, true) assertVendorConstants('CIRCLE', ci, t) delete process.env.CIRCLECI delete process.env.CIRCLE_PULL_REQUEST t.end() }) test('CircleCI - Not PR', function (t) { process.env.CIRCLECI = 'true' clearRequire('./') var ci = require('./') t.equal(ci.isCI, true) t.equal(ci.isPR, false) t.equal(ci.name, 'CircleCI') t.equal(ci.CIRCLE, true) assertVendorConstants('CIRCLE', ci, t) delete process.env.CIRCLECI t.end() }) test('Cirrus CI - PR', function (t) { process.env.CIRRUS_CI = 'true' process.env.CIRRUS_PR = '42' clearRequire('./') var ci = require('./') t.equal(ci.isCI, true) t.equal(ci.isPR, true) t.equal(ci.name, 'Cirrus CI') t.equal(ci.CIRRUS, true) assertVendorConstants('CIRRUS', ci, t) delete process.env.CIRRUS_CI delete process.env.CIRRUS_PR t.end() }) test('Cirrus CI - Not PR', function (t) { process.env.CIRRUS_CI = 'true' clearRequire('./') var ci = require('./') t.equal(ci.isCI, true) t.equal(ci.isPR, false) t.equal(ci.name, 'Cirrus CI') t.equal(ci.CIRRUS, true) assertVendorConstants('CIRRUS', ci, t) delete process.env.CIRRUS_CI t.end() }) test('Semaphore - PR', function (t) { process.env.SEMAPHORE = 'true' process.env.PULL_REQUEST_NUMBER = '42' clearRequire('./') var ci = require('./') t.equal(ci.isCI, true) t.equal(ci.isPR, true) t.equal(ci.name, 'Semaphore') t.equal(ci.SEMAPHORE, true) assertVendorConstants('SEMAPHORE', ci, t) delete process.env.SEMAPHORE delete process.env.PULL_REQUEST_NUMBER t.end() }) test('Semaphore - Not PR', function (t) { process.env.SEMAPHORE = 'true' clearRequire('./') var ci = require('./') t.equal(ci.isCI, true) t.equal(ci.isPR, false) t.equal(ci.name, 'Semaphore') t.equal(ci.SEMAPHORE, true) assertVendorConstants('SEMAPHORE', ci, t) delete process.env.SEMAPHORE t.end() }) test('Shippable - PR', function (t) { process.env.SHIPPABLE = 'true' process.env.IS_PULL_REQUEST = 'true' clearRequire('./') var ci = require('./') t.equal(ci.isCI, true) t.equal(ci.isPR, true) t.equal(ci.name, 'Shippable') t.equal(ci.SHIPPABLE, true) assertVendorConstants('SHIPPABLE', ci, t) delete process.env.SHIPPABLE delete process.env.IS_PULL_REQUEST t.end() }) test('Semaphore - Not PR', function (t) { process.env.SHIPPABLE = 'true' process.env.IS_PULL_REQUEST = 'false' clearRequire('./') var ci = require('./') t.equal(ci.isCI, true) t.equal(ci.isPR, false) t.equal(ci.name, 'Shippable') t.equal(ci.SHIPPABLE, true) assertVendorConstants('SHIPPABLE', ci, t) delete process.env.SHIPPABLE delete process.env.IS_PULL_REQUEST t.end() }) test('Solano CI - PR', function (t) { process.env.TDDIUM = 'true' process.env.TDDIUM_PR_ID = '42' clearRequire('./') var ci = require('./') t.equal(ci.isCI, true) t.equal(ci.isPR, true) t.equal(ci.name, 'Solano CI') t.equal(ci.SOLANO, true) assertVendorConstants('SOLANO', ci, t) delete process.env.TDDIUM delete process.env.TDDIUM_PR_ID t.end() }) test('Solano CI - Not PR', function (t) { process.env.TDDIUM = 'true' clearRequire('./') var ci = require('./') t.equal(ci.isCI, true) t.equal(ci.isPR, false) t.equal(ci.name, 'Solano CI') t.equal(ci.SOLANO, true) assertVendorConstants('SOLANO', ci, t) delete process.env.TDDIUM t.end() }) test('Travis CI - PR', function (t) { process.env.TRAVIS = 'true' process.env.TRAVIS_PULL_REQUEST = '42' clearRequire('./') var ci = require('./') t.equal(ci.isCI, true) t.equal(ci.isPR, true) t.equal(ci.name, 'Travis CI') t.equal(ci.TRAVIS, true) assertVendorConstants('TRAVIS', ci, t) delete process.env.TRAVIS delete process.env.TRAVIS_PULL_REQUEST t.end() }) test('Travis CI - Not PR', function (t) { process.env.TRAVIS = 'true' process.env.TRAVIS_PULL_REQUEST = 'false' clearRequire('./') var ci = require('./') t.equal(ci.isCI, true) t.equal(ci.isPR, false) t.equal(ci.name, 'Travis CI') t.equal(ci.TRAVIS, true) assertVendorConstants('TRAVIS', ci, t) delete process.env.TRAVIS delete process.env.TRAVIS_PULL_REQUEST t.end() }) test('Netlify CI - PR', function (t) { process.env.NETLIFY_BUILD_BASE = '/opt/build' process.env.PULL_REQUEST = 'true' clearRequire('./') var ci = require('./') t.equal(ci.isCI, true) t.equal(ci.isPR, true) t.equal(ci.name, 'Netlify CI') t.equal(ci.NETLIFY, true) assertVendorConstants('NETLIFY', ci, t) delete process.env.NETLIFY_BUILD_BASE delete process.env.PULL_REQUEST t.end() }) test('Netlify CI - Not PR', function (t) { process.env.NETLIFY_BUILD_BASE = '/opt/build' process.env.PULL_REQUEST = 'false' clearRequire('./') var ci = require('./') t.equal(ci.isCI, true) t.equal(ci.isPR, false) t.equal(ci.name, 'Netlify CI') t.equal(ci.NETLIFY, true) assertVendorConstants('NETLIFY', ci, t) delete process.env.NETLIFY_BUILD_BASE delete process.env.PULL_REQUEST t.end() }) function assertVendorConstants (expect, ci, t) { ci._vendors.forEach(function (constant) { var bool = constant === expect bool = (expect === 'SOLANO' && constant === 'TDDIUM') || bool // support deprecated option t.equal(ci[constant], bool, 'ci.' + constant) }) } ci-info-2.0.0/vendors.json000066400000000000000000000057261340204002500154100ustar00rootroot00000000000000[ { "name": "AppVeyor", "constant": "APPVEYOR", "env": "APPVEYOR", "pr": "APPVEYOR_PULL_REQUEST_NUMBER" }, { "name": "Azure Pipelines", "constant": "AZURE_PIPELINES", "env": "SYSTEM_TEAMFOUNDATIONCOLLECTIONURI", "pr": "SYSTEM_PULLREQUEST_PULLREQUESTID" }, { "name": "Bamboo", "constant": "BAMBOO", "env": "bamboo_planKey" }, { "name": "Bitbucket Pipelines", "constant": "BITBUCKET", "env": "BITBUCKET_COMMIT", "pr": "BITBUCKET_PR_ID" }, { "name": "Bitrise", "constant": "BITRISE", "env": "BITRISE_IO", "pr": "BITRISE_PULL_REQUEST" }, { "name": "Buddy", "constant": "BUDDY", "env": "BUDDY_WORKSPACE_ID", "pr": "BUDDY_EXECUTION_PULL_REQUEST_ID" }, { "name": "Buildkite", "constant": "BUILDKITE", "env": "BUILDKITE", "pr": { "env": "BUILDKITE_PULL_REQUEST", "ne": "false" } }, { "name": "CircleCI", "constant": "CIRCLE", "env": "CIRCLECI", "pr": "CIRCLE_PULL_REQUEST" }, { "name": "Cirrus CI", "constant": "CIRRUS", "env": "CIRRUS_CI", "pr": "CIRRUS_PR" }, { "name": "AWS CodeBuild", "constant": "CODEBUILD", "env": "CODEBUILD_BUILD_ARN" }, { "name": "Codeship", "constant": "CODESHIP", "env": { "CI_NAME": "codeship" } }, { "name": "Drone", "constant": "DRONE", "env": "DRONE", "pr": { "DRONE_BUILD_EVENT": "pull_request" } }, { "name": "dsari", "constant": "DSARI", "env": "DSARI" }, { "name": "GitLab CI", "constant": "GITLAB", "env": "GITLAB_CI" }, { "name": "GoCD", "constant": "GOCD", "env": "GO_PIPELINE_LABEL" }, { "name": "Hudson", "constant": "HUDSON", "env": "HUDSON_URL" }, { "name": "Jenkins", "constant": "JENKINS", "env": ["JENKINS_URL", "BUILD_ID"], "pr": { "any": ["ghprbPullId", "CHANGE_ID"] } }, { "name": "Magnum CI", "constant": "MAGNUM", "env": "MAGNUM" }, { "name": "Netlify CI", "constant": "NETLIFY", "env": "NETLIFY_BUILD_BASE", "pr": { "env": "PULL_REQUEST", "ne": "false" } }, { "name": "Sail CI", "constant": "SAIL", "env": "SAILCI", "pr": "SAIL_PULL_REQUEST_NUMBER" }, { "name": "Semaphore", "constant": "SEMAPHORE", "env": "SEMAPHORE", "pr": "PULL_REQUEST_NUMBER" }, { "name": "Shippable", "constant": "SHIPPABLE", "env": "SHIPPABLE", "pr": { "IS_PULL_REQUEST": "true" } }, { "name": "Solano CI", "constant": "SOLANO", "env": "TDDIUM", "pr": "TDDIUM_PR_ID" }, { "name": "Strider CD", "constant": "STRIDER", "env": "STRIDER" }, { "name": "TaskCluster", "constant": "TASKCLUSTER", "env": ["TASK_ID", "RUN_ID"] }, { "name": "TeamCity", "constant": "TEAMCITY", "env": "TEAMCITY_VERSION" }, { "name": "Travis CI", "constant": "TRAVIS", "env": "TRAVIS", "pr": { "env": "TRAVIS_PULL_REQUEST", "ne": "false" } } ]