【问题标题】:Get build information from Jenkins API从 Jenkins API 获取构建信息
【发布时间】:2013-02-07 09:44:35
【问题描述】:

我正在编写一个 Jenkins 插件,我想从 Jenkins api 检索给定作业的最后构建信息(编号、时间戳)。我可以执行以下 REST 调用并获取它。

<url_to_jenkins>job/<job name>/api/json?tree=builds[number,status,timestamp,id,result]

由于我的插件也部署在 Jenkins 中,有没有办法通过调用直接 JAVA api 而不是这个 REST 调用来获取这些信息?

【问题讨论】:

  • 好像只支持远程API,wiki.jenkins-ci.org/display/JENKINS/Remote+access+API。我认为这更有意义,因为 HTTP API 提供了更大的灵活性 :)
  • 感谢 Sameera... 是的,如果消息传递是在两个系统之间完成的,它们是灵活且有用的。但在这里它发生在同一个系统中。意味着我可以从我的插件直接访问 Jenkins(Hudson.* 包)。没有真正的文档:(。

标签: rest jenkins


【解决方案1】:

Jenkins java 文档可用here。这些 api 也可以直接与 groovy 脚本一起使用。如果您想使用 Postbuild groovy 脚本插件,您可以使用 manager 访问构建。下面是一个示例代码 sn-p 如果构建不成功则禁用它

if (manager.build.result.isWorseThan(hudson.model.Result.SUCCESS)) {
manager.build.project.disabled = true
}

您可以查看Groovy Postbuild Plugin了解更多详情

【讨论】:

    【解决方案2】:

    从 java 代码看应该是这样的:
    1) 获取项目:Jenkins.getInstance().getItem("jobName")
    2) 检查项目是否为某些作业类型的实例(或只是抽象)并进行转换
    3) 然后在这个对象上调用 .getLastBuild()
    4) 这将是一个构建对象 (AbstractBuild),您可以在其中获取 id、日期、结果等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-28
      • 1970-01-01
      相关资源
      最近更新 更多