UNPKG

jenkins-cli-node

Version:
84 lines 3.74 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const opn = require("opn"); const jenkins_cli_1 = require("./jenkins-cli"); const utils_1 = require("./utils"); const inquirer_1 = require("./inquirer"); const config_1 = require("./config"); exports.run = (options) => __awaiter(void 0, void 0, void 0, function* () { const jk = new jenkins_cli_1.JenkinsCli(options); const cacheKeys = jk.cacheJobs.map(k => k.name); if (jk.cacheJobs.length > 0) { cacheKeys.splice(0, 0, config_1.REBUILD); } try { if (options.rebuild && jk.cacheJobs.length > 0) { // Cli specified const cacheJob = jk.cacheJobs[0]; return buildJob(jk, cacheJob.name, cacheJob.parameters); } // get the job list const jobs = yield jk.getJobs(); let selectJob; if (options.job && jobs.find(k => k === options.job)) { selectJob = options.job; } else { // Reade the user selected job selectJob = yield inquirer_1.singleSelection(concatFilters(cacheKeys, jobs), `Select your jenkins job (${jobs.length})`); } if (selectJob === config_1.REBUILD) { // inquirer specified const cacheJob = jk.cacheJobs[0]; return buildJob(jk, cacheJob.name, cacheJob.parameters); } const historyJob = jk.cacheJobs.find(k => k.name === selectJob) || { parameters: {} }; // get all parameters for the job const parametersInfo = yield jk.getParameters(selectJob); let parameters = {}; // Reade the user selected parameters const parameterMsg = "Select your parameters: "; for (const k of parametersInfo) { switch (k.type) { case jenkins_cli_1.ParameterType.git: case jenkins_cli_1.ParameterType.radio: parameters[k.key] = yield inquirer_1.singleSelection(concatFilters([historyJob.parameters[k.key]], k.value), k.description || parameterMsg); break; case jenkins_cli_1.ParameterType.checkbox: parameters[k.key] = yield inquirer_1.multipleSelection(concatFilters(historyJob.parameters[k.key] || [], k.value), k.description || parameterMsg); break; } } buildJob(jk, selectJob, parameters); } catch (err) { utils_1.printError(err); } }); function buildJob(jk, job, parameters) { return __awaiter(this, void 0, void 0, function* () { try { utils_1.printInfo(`Building job: ${job} `); const buildInfo = yield jk.build(job, parameters); utils_1.alert(`Jenkins job: ${job}`, "Click for details.", () => { opn(buildInfo.url); }); } catch (err) { utils_1.printError(err); } }); } function concatFilters(arr1, arr2) { return Array.from(new Set(arr1.concat(arr2))).filter(k => k); } //# sourceMappingURL=index.js.map