75 lines
3.4 KiB
JavaScript
75 lines
3.4 KiB
JavaScript
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
exports.detectCISystem = exports.CISystems = void 0;
|
||
|
const utils_1 = require("./utils");
|
||
|
const AWS_CODE_BUILD_RE = /^CODEBUILD_/;
|
||
|
const CONCOURSE_RE = /^CONCOURSE_/;
|
||
|
const CODESHIP_CI_NAME = 'codeship';
|
||
|
var CISystems;
|
||
|
(function (CISystems) {
|
||
|
CISystems["appVeyor"] = "AppVeyor";
|
||
|
CISystems["awsCodeBuild"] = "AWSCodeBuild";
|
||
|
CISystems["azure"] = "Azure";
|
||
|
CISystems["bamboo"] = "Bamboo";
|
||
|
CISystems["bitbucketPipelines"] = "BitbucketPipelines";
|
||
|
CISystems["buddy"] = "Buddy";
|
||
|
CISystems["buildkite"] = "Buildkite";
|
||
|
CISystems["circleCI"] = "CircleCI";
|
||
|
CISystems["codeFresh"] = "CodeFresh";
|
||
|
CISystems["codeship"] = "Codeship";
|
||
|
CISystems["concourse"] = "Concourse";
|
||
|
CISystems["drone"] = "Drone";
|
||
|
CISystems["gitlab"] = "GitLab";
|
||
|
CISystems["goCD"] = "GoCD";
|
||
|
CISystems["googleCloud"] = "GoogleCloud";
|
||
|
CISystems["githubActions"] = "GithubActions";
|
||
|
CISystems["jenkins"] = "Jenkins";
|
||
|
CISystems["layerCI"] = "LayerCI";
|
||
|
CISystems["netlify"] = "Netlify";
|
||
|
CISystems["semaphore"] = "Semaphore";
|
||
|
CISystems["shippable"] = "Shippable";
|
||
|
CISystems["teamCity"] = "TeamCity";
|
||
|
CISystems["teamFoundation"] = "TeamFoundation";
|
||
|
CISystems["travis"] = "Travis";
|
||
|
CISystems["wercker"] = "Wercker";
|
||
|
})(CISystems = exports.CISystems || (exports.CISystems = {}));
|
||
|
;
|
||
|
function detectCISystem() {
|
||
|
const { env } = process;
|
||
|
const ciDetectors = {
|
||
|
[CISystems.appVeyor]: utils_1.parseBooleanVariable(env.APPVEYOR),
|
||
|
[CISystems.awsCodeBuild]: Object.keys(env).find(key => AWS_CODE_BUILD_RE.test(key) && env[key]),
|
||
|
[CISystems.azure]: env.AZURE_HTTP_USER_AGENT,
|
||
|
[CISystems.bamboo]: env.bamboo_buildNumber,
|
||
|
[CISystems.bitbucketPipelines]: env.BITBUCKET_BUILD_NUMBER,
|
||
|
[CISystems.buddy]: utils_1.parseBooleanVariable(env.BUDDY),
|
||
|
[CISystems.buildkite]: utils_1.parseBooleanVariable(env.BUILDKITE),
|
||
|
[CISystems.circleCI]: utils_1.parseBooleanVariable(env.CIRCLECI),
|
||
|
[CISystems.codeFresh]: env.CF_BUILD_ID,
|
||
|
[CISystems.codeship]: utils_1.parseBooleanVariable(env.CODESHIP) || env.CI_NAME && env.CI_NAME.toLowerCase() === CODESHIP_CI_NAME,
|
||
|
[CISystems.concourse]: Object.keys(env).find(key => CONCOURSE_RE.test(key)),
|
||
|
[CISystems.drone]: utils_1.parseBooleanVariable(env.DRONE),
|
||
|
[CISystems.githubActions]: utils_1.parseBooleanVariable(env.GITHUB_ACTIONS),
|
||
|
[CISystems.gitlab]: utils_1.parseBooleanVariable(env.GITLAB_CI),
|
||
|
[CISystems.goCD]: env.GO_JOB_NAME,
|
||
|
[CISystems.googleCloud]: env.GCP_PROJECT,
|
||
|
[CISystems.jenkins]: env.JENKINS_HOME || env.JENKINS_URL,
|
||
|
[CISystems.layerCI]: utils_1.parseBooleanVariable(env.LAYERCI),
|
||
|
[CISystems.netlify]: utils_1.parseBooleanVariable(env.NETLIFY),
|
||
|
[CISystems.semaphore]: utils_1.parseBooleanVariable(env.SEMAPHORE),
|
||
|
[CISystems.shippable]: utils_1.parseBooleanVariable(env.SHIPPABLE),
|
||
|
[CISystems.teamCity]: utils_1.parseBooleanVariable(env.TEAMCITY_VERSION),
|
||
|
[CISystems.teamFoundation]: env.TF_BUILD_BUILDNUMBER,
|
||
|
[CISystems.travis]: utils_1.parseBooleanVariable(env.TRAVIS),
|
||
|
[CISystems.wercker]: utils_1.parseBooleanVariable(env.WERCKER)
|
||
|
};
|
||
|
for (const ciSystem of Object.values(CISystems)) {
|
||
|
if (ciDetectors[ciSystem])
|
||
|
return ciSystem;
|
||
|
}
|
||
|
;
|
||
|
return null;
|
||
|
}
|
||
|
exports.detectCISystem = detectCISystem;
|
||
|
;
|