我正在编写一个 Jenkins 插件,我想从 Jenkins api 检索给定作业的最后构建信息(编号、时间戳)。我可以执行以下 REST 调用并获取它。
<url_to_jenkins>job/<job name>/api/json?tree=builds[number,status,timestamp,id,result]
由于我的插件也部署在 Jenkins 中,有没有办法通过调用直接 JAVA api 而不是这个 REST 调用来获取这些信息?
Jenkins java 文档可在此处获得。这些 api 也可以直接与 groovy 脚本一起使用。如果你想使用 Postbuild groovy 脚本插件,你可以使用manager
. 下面是一个示例代码片段,如果构建不成功,它将禁用构建
if (manager.build.result.isWorseThan(hudson.model.Result.SUCCESS)) {
manager.build.project.disabled = true
}
您可以查看Groovy Postbuild Plugin了解更多详细信息
从 java 代码中它应该看起来像:
1)获取项目:Jenkins.getInstance().getItem("jobName")
2)检查项目是否是某个作业类型的实例(或只是抽象)并转换
3)然后只需调用 .getLastBuild( ) 在这个对象上
4) 这将是一个构建对象 (AbstractBuild),您可以在其中获取 id、日期、结果等。