触发 Jenkins 任务并获取构建ID

如果要把 Jenkins 和现有的系统进行对接的话,很多人会遇到一个问题——调用 API 触发流水线构建后,如何能拿到构建的ID呢?

要回答这个问题,首先,我们需要对 Jenkins 的相关机制有一些了解。每当我们触发一个任务时,Jenkins 会先把这个请求发到一个队列中,当有可以运行该任务的计算节点(agent)之后,Jenkins 的 master 会把任务调度到对应的节点上去,此时就开始真正地运行了。

换句话说,任务的调度是异步进行的。因此,触发构建后,是无法拿到一个构建 ID 的,因为此时还没有开始构建。在 Jenkins 上安装插件 Pipeline restFul API 的 0.9 版本后,可以通过 Jenkins CLI v0.0.30 来解决这个问题,具体使用方法如下:

jcli job build job/devops/ -b --wait --columns Number --no-headers

输出结果为:36

1赞