jenkins - 从 Jenkins 中,如何获取 JSON 格式的当前正在运行的作业列表?

标签 jenkins

我可以通过远程 API 找到有关 Jenkins 服务器的几乎所有信息,但无法找到当前正在运行的作业的列表。

这个,

http://my-jenkins/computer/api/json

http://my-jenkins/computer/(master)/api/json

这似乎是最合乎逻辑的选择,但它们没有说明哪些作业正在实际运行(除了作业数量)。

最佳答案

在 Jenkins 中,作业构建之间经常会混淆,特别是因为作业通常被称为“构建作业”。

  • 作业(或“构建作业”或“项目”)包含描述要运行的内容以及如何运行的配置。
  • 构建是作业的执行。构建包含有关开始和结束时间、状态、日志记录等的信息。

参见https://wiki.jenkins-ci.org/display/JENKINS/Building+a+software+project了解更多信息。

如果您想要当前正在构建的作业(即有一个或多个正在运行的构建),最快的方法是使用带有 XPath 的 REST API 进行过滤以 _anime 结尾的颜色,如下所示:

http://jenkins.example.com/api/xml?tree=jobs[name,url,color]&xpath=/hudson/job[ends-with(color/text(),%22_anime%22)]&wrapper=jobs

会给你类似的东西:

<jobs>
  <job>
    <name>PRE_DB</name>
    <url>http://jenkins.example.com/job/my_first_job/</url>
    <color>blue_anime</color>
  </job>
  <job>
    <name>SDD_Seller_Dashboard</name>
    <url>http://jenkins.example.com/job/my_second_job/</url>
    <color>blue_anime</color>
  </job>
</jobs>

Jenkins 使用 color 字段来指示作业的状态,其中 _anime 后缀指示作业当前正在构建。

不幸的是,这不会为您提供有关实际运行构建的任何信息。作业的多个实例可能同时运行,并且正在运行的构建并不总是最后一个启动的。

如果您想列出所有正在运行的版本,您还可以使用 REST API 来快速获取答案,如下所示:

http://jenkins.example.com/computer/api/xml?tree=computer[executors[currentExecutable[url]],oneOffExecutors[currentExecutable[url]]]&xpath=//url&wrapper=builds

会给你类似的东西:

<builds>
  <url>http://jenkins.example.com/job/my_first_job/1412/</url>
  <url>http://jenkins.example.com/job/my_first_job/1414/</url>
  <url>http://jenkins.example.com/job/my_second_job/13126/</url>
</builds>

在这里您可以看到所有当前正在运行的构建的列表。您需要解析 URL 以将作业名称与内部版本号分开。请注意 my_first_job 如何有两个当前正在运行的构建。

关于jenkins - 从 Jenkins 中,如何获取 JSON 格式的当前正在运行的作业列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14843874/

相关文章:

java - 如何从Java程序调用Jenkins中的 "Perform Maven release"?

Jenkins 定期构建 - 它支持多个计划吗?

java - 在 Jenkins 中设置 java 自定义位置

ssl - 面对 Jenkins 访问问题 ERR_SSL_VERSION_OR_CIPHER_MISMATCH

git - Jenkins 无法获取changeId 和revisionId

git - Jenkins 无法从安装在同一台服务器上的 git 存储库中获取,在 box 上成功执行命令

java - 如何使用maven和jenkins从快照到发布

jenkins - 更改 Jenkins 报告的颜色

mysql - Mac Gerrit 设置

jenkins - 使用 Groovy 配置 Jenkins EC2-Plugin