THIS PACKAGE HAS BEEN DEPRECATED, USE ci-info INSTEAD
Detect what kind of CI environment the program is in
const ciDetect = require('@npmcli/ci-detect')
// false if not in CI
// otherwise, a string indicating the CI environment type
const inCI = ciDetect()Returns one of the following strings, or false if none match, by looking
at the appropriate environment variables.
- Anything that sets the
CI_NAMEenvironment variable will return the value as the result. (This is how CodeShip is detected.) 'aws-codebuild'AWS CodeBuild'azure-pipelines'Azure Pipelines'bamboo'Bamboo'bitbucket-pipelines'Bitbucket Pipelines'bitrise'Bitrise'buddy'Buddy'builder'Google Cloud Builder - This one is a bit weird. It doesn't really set anything that can be reliably detected exceptBUILDER_OUTPUT, so it can get false positives pretty easily.'buildkite'Buildkite'circleci'Circle-CI'cirrus'Cirrus CI'codeship'CodeShip'custom'anything else that setsCIenvironment variable to either'1'or'true'.'drone'Drone'dsari'dsari CI'gerrit'Gerrit'github-actions'GitHub Actions'gitlab'GitLab'gocd'GoCD'heroku'Heroku'hudson'Hudson CI'jenkins'Jenkins'magnum'Magnum CI'netlify'Netlify'nevercode'Nevercode'now'Zeit.co's Now service, but not GitHub/BitBucket/GitLab'now-bitbucket'Zeit.co's Now for BitBucket deployment service'now-github'Zeit.co's Now for GitHub deployment service'now-gitlab'Zeit.co's Now for GitLab deployment service'render'Render CI'sail'Sail CI'screwdriver'Screwdriver CI'semaphore'Semaphore'shippable'Shippable'strider'Strider CI'taskcluster'Mozilla Taskcluster'tddium'TDDium'teamcity'TeamCity'travis-ci'Travis-CI - A few other CI systems setTRAVIS=1in the environment, because devs use that to indicate "test mode", so this one can get some false positives, and is tested later in the process to minimize this effect.'vercel'Vercel'vercel-bitbucket'Vercel Bitbucket'vercel-github'Vercel GitHub'vercel-gitlab'Vercel Gitlab'wercker'Oracle Wercker'woodpecker'Woodpecker CI
Since any program can set or unset whatever environment variables they want, this is not 100% reliable.
Also, if your program does different behavior in CI/test/deployment than other places, then there's a good chance that you're doing something wrong!
But, for little niceties like setting colors or other output parameters, or logging and that sort of non-essential thing, this module provides a way to tweak without checking a bunch of things in a bunch of places. Mostly, it's a single place to keep a note of what CI system sets which environment variable.