@nomiclabs/buidler
Version:
Buidler is an extensible developer tool that helps smart contract developers increase productivity by reliably bringing together the tools they want.
58 lines (49 loc) • 1.18 kB
text/typescript
import ci from "ci-info";
import os from "os";
// This has been tested in:
// - Travis CI
// - Circle CI
// - GitHub Actions
// - Azure Pipelines
//
// This should also work in this CI providers because they set process.env.CI:
// - AppVeyor
// - Bitbucket Pipelines
// - GitLab CI
//
// This should also work:
// - AWS CodeBuild -- Special case
// - Jenkins -- Using process.env.BUILD_NUMBER
// - ZEIT Now -- Special case
export function isRunningOnCiServer(): boolean {
return (
ci.isCI ||
isGithubActions() ||
isLinuxWithoutDisplayServer() ||
isNow() ||
isAwsCodeBuild()
);
}
function isGithubActions(): boolean {
return process.env.GITHUB_ACTIONS !== undefined;
}
function isLinuxWithoutDisplayServer(): boolean {
if (os.type() !== "Linux") {
return false;
}
if (process.env.DISPLAY !== undefined) {
return false;
}
if (process.env.WAYLAND_DISPLAY !== undefined) {
return false;
}
return true;
}
function isNow() {
return (
process.env.NOW !== undefined || process.env.DEPLOYMENT_ID !== undefined
);
}
function isAwsCodeBuild() {
return process.env.CODEBUILD_BUILD_NUMBER !== undefined;
}