Jenkins CLI 命令行 v0.0.30 发布

截止到编辑本文时,GitHub 上统计到的下载量为:7,101(+453)次。GitHub 上的 Star 数为187(+7),码云上的 Star 数为172(+21)。

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

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

换句话说,任务的调度是异步进行的。因此,触发构建后,是无法拿到一个构建 ID 的,因为此时还没有开始构建。

我在这里给出的方案是:在 Jenkins 上安装插件 Pipeline restFul API v0.9 的后,可以通过 Jenkins CLI v0.0.30 来解决这个问题,具体使用方法如下:

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

输出结果为: 36

下面是本次版本发布中所包含的内容:

:rocket: 功能

  • 增加自我升级的功能,支持升级到任意版本 (#431) @LinuxSuRen
  • 支持更新流水线后立即执行 (#429) @LinuxSuRen
  • 通过 homebrew 安装的话集成 man 帮助手册 (#391) @LinuxSuRen
  • 支持触发流水线并获取构建 ID (#434) @LinuxSuRen
  • 为插件上传命令增加超时时间 (#428) @LinuxSuRen
  • 为插件检查更新命令增加超时时间 (#422) @LinuxSuRen

:bug: 缺陷修复

  • 修复无法在需要有 HTTP 代理的情况下连接 JNLP 节点 (#420) @LinuxSuRen

:memo: 文档完善

  • 将 jcli 的文档部署到了 gitbook (#426) @LinuxSuRen

:ghost: 维护

  • 多个依赖的版本更新 @dependabot-preview
2赞