詹金斯:获取特定日期的内部版本编号

时间:2014-11-03 21:40:07

标签: jenkins build scripting automation

出于数据挖掘的原因,我想获得在特定日期构建的jenkins作业的构建号码范围。是否有一个插件可以完成这个或任何其他可能的方式?

谢谢, 尼克

2 个答案:

答案 0 :(得分:4)

内置的REST JSON API将为您提供特定作业的构建列表:http://jenkins:8080/job/JOB_NAME/api/json?tree=builds[fullDisplayName,id,number,timestamp]&pretty=true

产生类似的东西:

{
  "builds" : [
    {
      "fullDisplayName" : "JOB_NAME #113",
      "id" : "2014-10-31_23-05-20",
      "number" : 113,
      "timestamp" : 1414821920808
    },
    {
      "fullDisplayName" : "JOB_NAME #112",
      "id" : "2014-10-31_17-26-39",
      "number" : 112,
      "timestamp" : 1414801599000
    },
    ....

如果您的构建ID是基本日期戳(如上所述),您可以执行一些字符串处理来过滤结果。否则,您可以将时间戳转换为适当的日期并对其进行过滤。

大多数Jenkins页面底部都有一个REST API链接,提供了更多文档,但您经常需要尝试使用API​​来确定它可以提供哪些详细信息。


更新:正如@Nick发现的那样,builds结果默认限制为最新的100个元素。根据{{​​3}},您可以使用隐藏的allBuilds元素来检索"所有版本"。因此,如果您需要所有版本,请使用:http://jenkins:8080/job/JOB_NAME/api/json?tree=allBuilds[fullDisplayName,id,number,timestamp]&pretty=true

Jenkins 1.568还在API结果中引入了分页,因此可以按范围检索结果。 Jenkins REST API链接描述了Jenkins版本支持它的语法。

答案 1 :(得分:1)