使用Javascript开始Jenkins工作

时间:2019-05-19 02:31:26

标签: javascript jenkins jenkins-api

有没有人举个例子,说明如何使用auth并在Java Script中将其设置为jenkins工作?

这就像一个curl post,但是我不确定该怎么做,我找不到传递用户名,令牌以及参数的示例。

1 个答案:

答案 0 :(得分:2)

您可以使用jenkins npm library使用特定用户在npm上执行操作:

import Jenkins = require('jenkins');

const jenkins

Jenkins({ baseUrl: `https://${ username }:${ password }@${ urlToJenkinsInstance }`, crumbIssuer: true })
      .then((_jenkins) => {
        jenkins = _jenkins;

        return new Promise((resolve, reject) => {
          // start building a job
          jenkins.job.build({
            name: jobName,
            // put all the parameters here:
            parameters: {
              PARAM1: 'hello',
              PARAM2: 'world'
            }
          }, function (err, data) {
            if (err) { return reject(err); }

            resolve(data);
          });
        });
      })
      .then((queueId) => {
        console.log('job queueId: ', queueId);
      })
      .catch(printErrorAndExit);

如果需要继续并监视流,则在将作业添加到队列后,需要等待作业开始,这将使用{{1}将jobId添加到队列项}。

然后,您可以监视实际作业并检查其完成时间。

在下面的代码中,我定义了两个函数jenkins.queue.item(queueId, callback)convertQueueIdToBuildId

waitForJobToFinish

这将等待队列项开始获取永久性ID,并检查作业状态。我定义了每5秒检查一次的时间间隔。

convertQueueIdToBuildId

这将获得永久性waitForJobToFinish并每5秒钟检查一次作业的状态。如果它是jobId,我们可以解决承诺,如果得到SUCCESSABORTED,我们就错失了诺言,表明事情进展不顺利。我们可以根据承诺的使用来处理使承诺失败或无法解决的事情。

FAILURE