tdpw
Version:
CLI tool for uploading Playwright test reports to TestDino platform with Azure storage support
57 lines • 2.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CiCollector = void 0;
const tslib_1 = require("tslib");
const os_1 = tslib_1.__importDefault(require("os"));
const env_1 = require("../utils/env");
/**
* Collector for CI metadata
*/
class CiCollector {
/**
* Gather CI metadata from environment
*/
static collect() {
const { env } = process;
const providerKey = env_1.EnvironmentUtils.detectCIProvider();
const provider = providerKey;
// Pipeline information
const pipelineId = env.GITHUB_RUN_ID || env.CI_PIPELINE_ID;
const pipelineName = env.GITHUB_WORKFLOW || env.CI_PIPELINE_NAME;
let pipelineUrl;
if (env.GITHUB_SERVER_URL && env.GITHUB_REPOSITORY && env.GITHUB_RUN_ID) {
pipelineUrl = `${env.GITHUB_SERVER_URL}/${env.GITHUB_REPOSITORY}/actions/runs/${env.GITHUB_RUN_ID}`;
}
else if (env.CI_PIPELINE_URL) {
pipelineUrl = env.CI_PIPELINE_URL;
}
// Build information
const buildNumber = env.GITHUB_RUN_NUMBER || env.CI_BUILD_NUMBER;
const buildTrigger = env.GITHUB_EVENT_NAME || env.CI_PIPELINE_TRIGGER;
// Environment details
const osName = env.RUNNER_OS;
const environmentType = os_1.default.platform();
const osRelease = `${os_1.default.type()} ${os_1.default.release()}`;
const nodeVersion = process.version;
return {
provider,
pipeline: {
...(pipelineId && { id: pipelineId }),
...(pipelineName && { name: pipelineName }),
...(pipelineUrl && { url: pipelineUrl }),
},
build: {
...(buildNumber && { number: buildNumber }),
...(buildTrigger && { trigger: buildTrigger }),
},
environment: {
...(osName && { name: osName }),
...(environmentType && { type: environmentType }),
...(osRelease && { os: osRelease }),
...(nodeVersion && { node: nodeVersion }),
},
};
}
}
exports.CiCollector = CiCollector;
//# sourceMappingURL=ci.js.map