2.0.0 • Public • Published


    Detect what kind of CI environment the program is in

    Build Status Coverage Status


    const ciDetect = require('@npmcli/ci-detect')
    // false if not in CI
    // otherwise, a string indicating the CI environment type
    const inCI = ciDetect()

    CIs Detected

    Returns one of the following strings, or false if none match, by looking at the appropriate environment variables.

    • 'gerrit' Gerrit
    • 'gitlab' GitLab
    • 'circleci' Circle-CI
    • 'semaphore' Semaphore
    • 'drone' Drone
    • 'github-actions' GitHub Actions
    • 'tddium' TDDium
    • 'jenkins' Jenkins
    • 'bamboo' Bamboo
    • 'gocd' GoCD
    • 'wercker' Oracle Wercker
    • 'netlify' Netlify
    • 'now-github' Zeit.co's Now for GitHub deployment service
    • 'now-bitbucket' Zeit.co's Now for BitBucket deployment service
    • 'now-gitlab' Zeit.co's Now for GitLab deployment service
    • 'now' Zeit.co's Now service, but not GitHub/BitBucket/GitLab
    • 'azure-pipelines' Azure Pipelines
    • 'bitbucket-pipelines' Bitbucket Pipelines
    • 'bitrise' Bitrise
    • 'buddy' Buddy
    • 'buildkite' Buildkite
    • 'cirrus' Cirrus CI
    • 'dsari' dsari CI
    • 'screwdriver' Screwdriver CI
    • 'strider' Strider CI
    • 'taskcluster' Mozilla Taskcluster
    • 'hudson' Hudson CI
    • 'magnum' Magnum CI
    • 'nevercode' Nevercode
    • 'render' Render CI
    • 'sail' Sail CI
    • 'shippable' Shippable
    • 'heroku' Heroku
    • 'codeship' CodeShip
    • 'teamcity' TeamCity
    • 'vercel' Vercel
    • 'vercel-github' Vercel GitHub
    • 'vercel-gitlab' Vercel Gitlab
    • 'vercel-bitbucket' Vercel Bitbucket
    • Anything that sets the CI_NAME environment variable will return the value as the result. (This is how CodeShip is detected.)
    • 'travis-ci' Travis-CI - A few other CI systems set TRAVIS=1 in 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.
    • 'aws-codebuild' AWS CodeBuild
    • 'builder' Google Cloud Builder - This one is a bit weird. It doesn't really set anything that can be reliably detected except BUILDER_OUTPUT, so it can get false positives pretty easily.
    • 'custom' anything else that sets CI environment variable to either '1' or 'true'.


    Note that since any program can set or unset whatever environment variables they want, this is not 100% reliable.

    Also, note that 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.




    npm i @npmcli/ci-detect

    DownloadsWeekly Downloads






    Unpacked Size

    7.03 kB

    Total Files


    Last publish


    • fritzy
    • darcyclarke
    • ruyadorno
    • nlf
    • gar
    • lukekarrys