ci-executer
Version:
Job executer for CI
45 lines (44 loc) • 1.75 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const entry_1 = require("./lib/entry");
const logger_flx_1 = require("logger-flx");
const ci = require("ci-info");
const job_1 = require("./lib/job");
const chalk = require("chalk");
const os = require("os");
const logger = new logger_flx_1.Logger(entry_1.default.logger);
const jobs = [];
if (ci.isCI === true) {
logger.log(`${chalk.cyan(" ℹ ")}> CI: ${ci.name}`);
}
logger.log(`${chalk.cyan(" ℹ ")}> OS: ${os.platform()} ${os.release()} (${os.type()})`);
if (entry_1.default.scope !== "default") {
logger.log(`${chalk.cyan(" ℹ ")}> ${chalk.yellow(`Accepted "${entry_1.default.scope}" environment`)}`);
}
for (const job_config of entry_1.default.jobs) {
const job = new job_1.Job(entry_1.default.scope, job_config, logger);
if (job.enable === true) {
jobs.push(job);
}
}
const startPipeline = async () => {
logger.log("--------------------------");
logger.log("🏃🏃 Pipeline started 🏃🏃");
logger.log("--------------------------");
let current_job_number = 1;
for (const job of jobs) {
await job.run(current_job_number, jobs.length);
if (job.fail === true) {
logger.log("--------------------------");
logger.log(`${chalk.red("❌❌")} Pipeline fail ${chalk.red("❌❌")}`);
logger.log("--------------------------");
process.exit(1);
}
current_job_number++;
}
logger.log("--------------------------");
logger.log(`${chalk.green("✔ ✔")} Pipeline complete ${chalk.green("✔ ✔")}`);
logger.log("--------------------------");
};
startPipeline();