出于数据挖掘的原因,我想获得在特定日期构建的jenkins作业的构建号码范围。是否有一个插件可以完成这个或任何其他可能的方式?
谢谢, 尼克
答案 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)