lix-website/themes/lix/assets/bootstrap/node_modules/ci-env/test.js
2024-04-26 22:49:34 -06:00

142 lines
4 KiB
JavaScript

const test = require("ava");
const {
buildUrl,
jobUrl,
repo,
sha,
event,
commit_message,
pull_request_number,
branch,
ci,
platform
} = require("./index");
if (ci) {
console.log("values: ", {
repo,
sha,
event,
commit_message,
pull_request_number,
branch,
ci
});
test("ci is correctly set", t => {
if (process.env.TRAVIS) t.is(ci, "travis");
else if (process.env.CIRCLECI) t.is(ci, "circle");
else if (process.env.WERCKER) t.is(ci, "wercker");
else if (process.env.DRONE) t.is(ci, "drone");
else if (process.env.CI_NAME === "codeship") t.is(ci, "codeship");
else if (process.env.GITHUB_ACTION) t.is(ci, "github_actions");
else if (process.env.GITLAB_CI) t.is(ci, "gitlab");
else if (process.env.CF_BUILD_URL) t.is(ci, "codefresh");
else if (process.env.CF_PAGES) t.is(ci, "cloudflare");
});
test("repo is correctly set", t => {
if (process.env.GITLAB_CI) t.is(repo, process.env.CI_PROJECT_PATH);
else t.is(repo, "siddharthkp/ci-env");
});
test("sha is set", t => {
const real_sha =
process.env.TRAVIS_PULL_REQUEST_SHA ||
process.env.TRAVIS_COMMIT ||
process.env.CIRCLE_SHA1 ||
process.env.WERCKER_GIT_COMMIT ||
process.env.DRONE_COMMIT ||
process.env.GITHUB_SHA ||
process.env.CI_COMMIT_SHA || //gitlab
process.env.CF_REVISION ||
process.env.CF_PAGES_COMMIT_SHA;
t.is(sha, real_sha);
});
test("commit_message is set", t => {
const real_commit_message =
process.env.TRAVIS_COMMIT_MESSAGE ||
process.env.CI_COMMIT_MESSAGE ||
process.env.CI_MESSAGE ||
process.env.CF_COMMIT_MESSAGE ||
"";
// Only travis and codeship set commit message
t.is(commit_message, real_commit_message);
});
test("pull_request_number is set", t => {
let pullRequestNumber;
if (process.env.CI_PULL_REQUEST)
pullRequestNumber = process.env.CI_PULL_REQUEST.split("/").pop();
if(process.env.GITHUB_ACTION && event === "pull_request")
pullRequestNumber = process.env.GITHUB_REF.split('/')[2];
const real_pull_request_number =
process.env.TRAVIS_PULL_REQUEST ||
process.env.DRONE_PULL_REQUEST ||
process.env.CI_MERGE_REQUEST_ID || //gitlab
process.env.CF_PULL_REQUEST_NUMBER ||
pullRequestNumber ||
""; // wercker does not expose pull request number
t.is(pull_request_number, real_pull_request_number);
});
test("jobUrl is set", t => {
let real_jobUrl;
if (process.env.TRAVIS)
real_jobUrl = `https://travis-ci.org/${repo}/jobs/${
process.env.TRAVIS_JOB_ID
}`;
else if (process.env.GITLAB_CI) real_jobUrl = process.env.CI_JOB_URL;
t.is(jobUrl, real_jobUrl);
});
test("buildUrl is set", t => {
let real_buildUrl;
if (process.env.TRAVIS)
real_buildUrl = `https://travis-ci.org/${repo}/builds/${
process.env.TRAVIS_JOB_ID
}`;
else if (process.env.CF_BUILD_URL) real_buildUrl = process.env.CF_BUILD_URL;
t.is(buildUrl, real_buildUrl);
});
test("event is correctly set", t => {
if (
(ci === "travis" && process.env.TRAVIS_EVENT_TYPE === "pull_request") ||
(ci === "github_actions" &&
process.env.GITHUB_EVENT_NAME === "pull_request")
)
t.is(event, "pull_request");
else t.is(event, "push");
});
test("branch is correctly set", t => {
if (event === "pull_request")
t.is(
branch,
process.env.TRAVIS_PULL_REQUEST_BRANCH || process.env.GITHUB_HEAD_REF
);
else {
const real_branch =
process.env.TRAVIS_BRANCH ||
process.env.CIRCLE_BRANCH ||
process.env.WERCKER_GIT_BRANCH ||
process.env.DRONE_BRANCH ||
process.env.CI_BRANCH || // codeship
process.env.CI_COMMIT_REF_NAME || // gitlab
process.env.CF_BRANCH ||
process.env.CF_PAGES_BRANCH ||
process.env.GITHUB_REF.split('/')[2];
t.is(branch, real_branch);
}
});
} else {
test.skip("These tests can only run in CI environments", t => t.pass());
}