UNPKG

jenkins-cli-node

Version:
81 lines 3.56 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 Jenkins = require("jenkins"); const utils_1 = require("./utils"); var ParameterType; (function (ParameterType) { ParameterType[ParameterType["git"] = 0] = "git"; ParameterType[ParameterType["checkbox"] = 1] = "checkbox"; ParameterType[ParameterType["radio"] = 2] = "radio"; })(ParameterType = exports.ParameterType || (exports.ParameterType = {})); class JenkinsCli { constructor(options) { this.jenkins = Jenkins(Object.assign(Object.assign({}, options.config), { promisify: true })); } // get the job list getJobs() { return __awaiter(this, void 0, void 0, function* () { const info = yield this.jenkins.info(); return info.jobs.map(job => job.name); }); } // get job configuration information getConfig(selectJob) { return __awaiter(this, void 0, void 0, function* () { const configXML = yield this.jenkins.job.config(selectJob); return yield utils_1.loadXML(configXML); }); } getParameters(selectJob) { return __awaiter(this, void 0, void 0, function* () { try { // 2. const config = yield this.getConfig(selectJob); console.log(JSON.stringify(config)); const parameters = []; const parameterDefinitions = config.project.properties[0]['hudson.model.ParametersDefinitionProperty'][0].parameterDefinitions; parameterDefinitions.forEach(p => { Object.keys(p).forEach(o => { let type = ParameterType.radio, key, value; const po = p[o]; switch (o) { case "net.uaznia.lukanus.hudson.plugins.gitparameter.GitParameterDefinition": type = ParameterType.git; key = po[0].name[0]; value = config.project.scm[0].userRemoteConfigs[0]['url'][0]; break; default: break; } parameters.push({ type, key, value }); }); }); return parameters; } catch (err) { utils_1.printError(err); return []; } }); } build(selectJob, parameters) { return __awaiter(this, void 0, void 0, function* () { return this.jenkins.job.build({ name: selectJob, parameters }); }); } } exports.JenkinsCli = JenkinsCli; //# sourceMappingURL=JenkinsCli.js.map