This commit is contained in:
2022-07-18 02:50:52 +00:00
parent befd344ab0
commit 06181b34d6
8569 changed files with 818704 additions and 352705 deletions
+91 -22
View File
@@ -1,62 +1,131 @@
# Changelog
## v3.3.2
- fix: export correct typings for `EAS`
## v3.3.1
- fix: export `EAS_BUILD` constant in typings
- Add support for nodejs v18
## v3.3.0
- support Expo Application Services ([#70](https://github.com/watson/ci-info/pull/70))
## v3.2.0
- support LayerCI ([#68](https://github.com/watson/ci-info/pull/68))
- support Appcircle ([#69](https://github.com/watson/ci-info/pull/69))
- support Codefresh CI ([#65](https://github.com/watson/ci-info/pull/65))
- add support for nodejs v16
## v3.1.1
Bug Fixes:
- remove duplicate declaration in typings
## v3.1.0
Features:
- add typings
## v3.0.0
Features:
- Add support nodejs versions: 14, 15
- support Nevercode ([#30](https://github.com/watson/ci-info/pull/30))
- support Render CI ([#36](https://github.com/watson/ci-info/pull/36))
- support Now CI ([#37](https://github.com/watson/ci-info/pull/37))
- support GitLab PR ([#59](https://github.com/watson/ci-info/pull/59))
- support Screwdriver CD ([#60](https://github.com/watson/ci-info/pull/60))
- support Visual Studio App Center ([#61](https://github.com/watson/ci-info/pull/61))
Bug Fixes:
- update Netlify env constant ([#47](https://github.com/watson/ci-info/pull/47))
Breaking changes:
- Drop support for Node.js end-of-life versions: 6, 13
- replace `Zeit Now` with `Vercel` ([#55](https://github.com/watson/ci-info/pull/55))
## 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
- 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
- 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))
- 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))
- 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))
- 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
- 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))
- feat: detect solano-ci ([#9](https://github.com/watson/ci-info/pull/9))
## v1.1.3
* fix: fix spelling of Hunson in `ci.name`
- fix: fix spelling of Hunson in `ci.name`
## v1.1.2
* fix: no more false positive matches for Jenkins
- 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
- 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))
- 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))
- chore: reduce npm package size by using an `.npmignore` file ([#3](https://github.com/watson/ci-info/pull/3))
## v1.0.0
* Initial release
- Initial release
+1 -1
View File
@@ -1,6 +1,6 @@
The MIT License (MIT)
Copyright (c) 2016-2018 Thomas Watson Steen
Copyright (c) 2016-2021 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
+48 -37
View File
@@ -7,7 +7,7 @@ issue](https://github.com/watson/ci-info/issues/new?template=ci-server-not-detec
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)
[![Tests](https://github.com/watson/ci-info/workflows/Tests/badge.svg)](https://github.com/watson/ci-info/actions)
[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat)](https://github.com/feross/standard)
## Installation
@@ -32,41 +32,52 @@ if (ci.isCI) {
Officially supported CI servers:
| Name | Constant |
|------|----------|
| [AWS CodeBuild](https://aws.amazon.com/codebuild/) | `ci.CODEBUILD` |
| [AppVeyor](http://www.appveyor.com) | `ci.APPVEYOR` |
| [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` |
| [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` |
| [Team Foundation Server](https://www.visualstudio.com/en-us/products/tfs-overview-vs.aspx) by Microsoft | `ci.TFS` |
| [TeamCity](https://www.jetbrains.com/teamcity/) by JetBrains | `ci.TEAMCITY` |
| [Travis CI](http://travis-ci.org) | `ci.TRAVIS` |
| 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` | ✅ |
| [Appcircle](https://appcircle.io/) | `ci.APPCIRCLE` | 🚫 |
| [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` | ✅ |
| [Codefresh](https://codefresh.io/) | `ci.CODEFRESH` | ✅ |
| [Codeship](https://codeship.com) | `ci.CODESHIP` | 🚫 |
| [Drone](https://drone.io) | `ci.DRONE` | ✅ |
| [dsari](https://github.com/rfinnie/dsari) | `ci.DSARI` | 🚫 |
| [Expo Application Services](https://expo.dev/eas) | `ci.EAS_BUILD` | 🚫 |
| [GitHub Actions](https://github.com/features/actions/) | `ci.GITHUB_ACTIONS` | ✅ |
| [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` | ✅ |
| [LayerCI](https://layerci.com/) | `ci.LAYERCI` | ✅ |
| [Magnum CI](https://magnum-ci.com) | `ci.MAGNUM` | 🚫 |
| [Netlify CI](https://www.netlify.com/) | `ci.NETLIFY` | ✅ |
| [Nevercode](http://nevercode.io/) | `ci.NEVERCODE` | ✅ |
| [Render](https://render.com/) | `ci.RENDER` | ✅ |
| [Sail CI](https://sail.ci/) | `ci.SAIL` | ✅ |
| [Screwdriver](https://screwdriver.cd/) | `ci.SCREWDRIVER` | ✅ |
| [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` | ✅ |
| [Vercel](https://vercel.com/) | `ci.VERCEL` | 🚫 |
| [Visual Studio App Center](https://appcenter.ms/) | `ci.APPCENTER` | 🚫 |
## API
### `ci.name`
A string. Will contain the name of the CI server the code is running on.
If not CI server is detected, it will be `null`.
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
@@ -74,8 +85,8 @@ most likely want to use `ci.TRAVIS` instead.
### `ci.isCI`
A boolean. Will be `true` if the code is running on a CI server.
Otherwise `false`.
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
@@ -84,15 +95,15 @@ vendor specific boolean will be set to `true`.
### `ci.isPR`
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
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.<VENDOR-CONSTANT>`
A vendor specific boolean constants is exposed for each support 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`.
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.
+63
View File
@@ -0,0 +1,63 @@
/**
* 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`.
*/
export const isCI: boolean;
/**
* 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`.
*/
export const isPR: boolean | null;
/**
* 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.
*/
export const name: string | null;
export const APPVEYOR: boolean;
export const AZURE_PIPELINES: boolean;
export const APPCIRCLE: boolean;
export const BAMBOO: boolean;
export const BITBUCKET: boolean;
export const BITRISE: boolean;
export const BUDDY: boolean;
export const BUILDKITE: boolean;
export const CIRCLE: boolean;
export const CIRRUS: boolean;
export const CODEBUILD: boolean;
export const CODEFRESH: boolean;
export const CODESHIP: boolean;
export const DRONE: boolean;
export const DSARI: boolean;
export const EAS: boolean;
export const GITHUB_ACTIONS: boolean;
export const GITLAB: boolean;
export const GOCD: boolean;
export const HUDSON: boolean;
export const JENKINS: boolean;
export const LAYERCI: boolean;
export const MAGNUM: boolean;
export const NETLIFY: boolean;
export const NEVERCODE: boolean;
export const RENDER: boolean;
export const SAIL: boolean;
export const SEMAPHORE: boolean;
export const SCREWDRIVER: boolean;
export const SHIPPABLE: boolean;
export const SOLANO: boolean;
export const STRIDER: boolean;
export const TASKCLUSTER: boolean;
export const TEAMCITY: boolean;
export const TRAVIS: boolean;
export const VERCEL: boolean;
export const APPCENTER: boolean;
+8 -6
View File
@@ -1,20 +1,22 @@
'use strict'
var vendors = require('./vendors.json')
const vendors = require('./vendors.json')
var env = process.env
const env = process.env
// Used for testinging only
// Used for testing only
Object.defineProperty(exports, '_vendors', {
value: vendors.map(function (v) { return v.constant })
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) {
const envs = Array.isArray(vendor.env) ? vendor.env : [vendor.env]
const isCI = envs.every(function (obj) {
return checkEnv(obj)
})
+23 -20
View File
@@ -1,32 +1,33 @@
{
"_args": [
[
"ci-info@1.6.0",
"/mnt/Foxconn/Digitalent/Deverloper/liff-push_2series"
"ci-info@3.3.2",
"/home/node/nuxt"
]
],
"_from": "ci-info@1.6.0",
"_id": "ci-info@1.6.0",
"_from": "ci-info@3.3.2",
"_id": "ci-info@3.3.2",
"_inBundle": false,
"_integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==",
"_integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==",
"_location": "/ci-info",
"_phantomChildren": {},
"_requested": {
"type": "version",
"registry": true,
"raw": "ci-info@1.6.0",
"raw": "ci-info@3.3.2",
"name": "ci-info",
"escapedName": "ci-info",
"rawSpec": "1.6.0",
"rawSpec": "3.3.2",
"saveSpec": null,
"fetchSpec": "1.6.0"
"fetchSpec": "3.3.2"
},
"_requiredBy": [
"/@nuxt/telemetry",
"/std-env"
],
"_resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz",
"_spec": "1.6.0",
"_where": "/mnt/Foxconn/Digitalent/Deverloper/liff-push_2series",
"_resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz",
"_spec": "3.3.2",
"_where": "/home/node/nuxt",
"author": {
"name": "Thomas Watson Steen",
"email": "w@tson.dk",
@@ -35,17 +36,18 @@
"bugs": {
"url": "https://github.com/watson/ci-info/issues"
},
"coordinates": [
55.778271,
12.593091
],
"dependencies": {},
"description": "Get details about the current Continuous Integration environment",
"devDependencies": {
"clear-require": "^1.0.1",
"standard": "^12.0.1",
"tape": "^4.9.1"
"clear-module": "^4.1.2",
"standard": "^17.0.0",
"tape": "^5.5.3"
},
"files": [
"vendors.json",
"index.js",
"index.d.ts",
"CHANGELOG.md"
],
"homepage": "https://github.com/watson/ci-info",
"keywords": [
"ci",
@@ -64,5 +66,6 @@
"scripts": {
"test": "standard && node test.js"
},
"version": "1.6.0"
"typings": "index.d.ts",
"version": "3.3.2"
}
+72 -14
View File
@@ -5,6 +5,17 @@
"env": "APPVEYOR",
"pr": "APPVEYOR_PULL_REQUEST_NUMBER"
},
{
"name": "Azure Pipelines",
"constant": "AZURE_PIPELINES",
"env": "SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",
"pr": "SYSTEM_PULLREQUEST_PULLREQUESTID"
},
{
"name": "Appcircle",
"constant": "APPCIRCLE",
"env": "AC_APPCIRCLE"
},
{
"name": "Bamboo",
"constant": "BAMBOO",
@@ -13,7 +24,8 @@
{
"name": "Bitbucket Pipelines",
"constant": "BITBUCKET",
"env": "BITBUCKET_COMMIT"
"env": "BITBUCKET_COMMIT",
"pr": "BITBUCKET_PR_ID"
},
{
"name": "Bitrise",
@@ -50,6 +62,12 @@
"constant": "CODEBUILD",
"env": "CODEBUILD_BUILD_ARN"
},
{
"name": "Codefresh",
"constant": "CODEFRESH",
"env": "CF_BUILD_ID",
"pr": { "any": ["CF_PULL_REQUEST_NUMBER", "CF_PULL_REQUEST_ID"] }
},
{
"name": "Codeship",
"constant": "CODESHIP",
@@ -66,16 +84,34 @@
"constant": "DSARI",
"env": "DSARI"
},
{
"name": "Expo Application Services",
"constant": "EAS",
"env": "EAS_BUILD"
},
{
"name": "GitHub Actions",
"constant": "GITHUB_ACTIONS",
"env": "GITHUB_ACTIONS",
"pr": { "GITHUB_EVENT_NAME": "pull_request" }
},
{
"name": "GitLab CI",
"constant": "GITLAB",
"env": "GITLAB_CI"
"env": "GITLAB_CI",
"pr": "CI_MERGE_REQUEST_ID"
},
{
"name": "GoCD",
"constant": "GOCD",
"env": "GO_PIPELINE_LABEL"
},
{
"name": "LayerCI",
"constant": "LAYERCI",
"env": "LAYERCI",
"pr": "LAYERCI_PULL_REQUEST"
},
{
"name": "Hudson",
"constant": "HUDSON",
@@ -92,6 +128,24 @@
"constant": "MAGNUM",
"env": "MAGNUM"
},
{
"name": "Netlify CI",
"constant": "NETLIFY",
"env": "NETLIFY",
"pr": { "env": "PULL_REQUEST", "ne": "false" }
},
{
"name": "Nevercode",
"constant": "NEVERCODE",
"env": "NEVERCODE",
"pr": { "env": "NEVERCODE_PULL_REQUEST", "ne": "false" }
},
{
"name": "Render",
"constant": "RENDER",
"env": "RENDER",
"pr": { "IS_PULL_REQUEST": "true" }
},
{
"name": "Sail CI",
"constant": "SAIL",
@@ -104,6 +158,12 @@
"env": "SEMAPHORE",
"pr": "PULL_REQUEST_NUMBER"
},
{
"name": "Screwdriver",
"constant": "SCREWDRIVER",
"env": "SCREWDRIVER",
"pr": { "env": "SD_PULL_REQUEST", "ne": "false" }
},
{
"name": "Shippable",
"constant": "SHIPPABLE",
@@ -126,27 +186,25 @@
"constant": "TASKCLUSTER",
"env": ["TASK_ID", "RUN_ID"]
},
{
"name": "Solano CI",
"constant": "TDDIUM",
"env": "TDDIUM",
"pr": "TDDIUM_PR_ID",
"deprecated": true
},
{
"name": "TeamCity",
"constant": "TEAMCITY",
"env": "TEAMCITY_VERSION"
},
{
"name": "Team Foundation Server",
"constant": "TFS",
"env": "TF_BUILD"
},
{
"name": "Travis CI",
"constant": "TRAVIS",
"env": "TRAVIS",
"pr": { "env": "TRAVIS_PULL_REQUEST", "ne": "false" }
},
{
"name": "Vercel",
"constant": "VERCEL",
"env": "NOW_BUILDER"
},
{
"name": "Visual Studio App Center",
"constant": "APPCENTER",
"env": "APPCENTER_BUILD_ID"
}
]