Jenkins能告诉我每月损坏的构建的总数/百分比吗?

Jenkins能告诉我每月损坏的构建的总数/百分比吗?,jenkins,Jenkins,我有一个Jenkins服务器,可以构建/测试大约50个项目。不幸的是,有些构建失败了,但是我没有一个好方法来衡量构建失败的频率是随着时间的推移而增加还是减少。 我想要的是以下几点: 一份报告显示,在一个月的时间里,有多少工作不稳定/失败 一份报告说“X天没有坏的建筑”(有点像建筑工地) “红/绿日历”,每天显示是否有任何构建被破坏 我没有看到任何插件以这些方式可视化数据,但我愿意从Jenkins日志中获取信息。有没有更好的方法来查看类似的数据?我认为使用API可以很好地完成这项工作。您可以从

我有一个Jenkins服务器,可以构建/测试大约50个项目。不幸的是,有些构建失败了,但是我没有一个好方法来衡量构建失败的频率是随着时间的推移而增加还是减少。

我想要的是以下几点:

  • 一份报告显示,在一个月的时间里,有多少工作不稳定/失败
  • 一份报告说“X天没有坏的建筑”(有点像建筑工地)
  • “红/绿日历”,每天显示是否有任何构建被破坏

我没有看到任何插件以这些方式可视化数据,但我愿意从Jenkins日志中获取信息。有没有更好的方法来查看类似的数据?

我认为使用API可以很好地完成这项工作。您可以从视图中获取所有作业,然后进入作业详细信息并获取构建编号和构建日期。通过这些内部版本号,您可以获得相应的状态。您必须进行一些编码来收集和显示数据,但这是一种可行的方法

另一种可能是在Manage Jenkins的控制台上使用Groovy脚本。虽然我没有太多使用该功能的经验,但由于您可以访问内部表示,因此从中获取一些数据应该非常容易

最后,最佳的解决方案是编写一个插件来完成这项工作,但这当然也是最需要努力和技术的解决方案。

该插件可能会提供您想要的报告


(如果您已经考虑过这个插件,我很好奇您遇到了什么问题。)

尝试使用build metric插件和Global build Stat插件。

正如@pushy提到的,Groovy脚本控制台是用于这些统计数据收集的好工具。您也可以在远程API中使用groovy脚本。这里是从匹配模式的所有作业收集信息的起点

def jobPattern='pattern'
Hudson.instance.getItems(Project).each {project ->
  def results = [:]
  if (project.name.contains(jobPattern)) {
    results."$project.name" = [SUCCESS:0,UNSTABLE:0,FAILURE:0,ABORTED:0]
    def build = project.getLastBuild()
    while (build){
      //println "$project.name;$build.id;$build.result"
      results."$project.name"."$build.result" = results."$project.name"."$build.result" +1
      build=build.getPreviousBuild()
    }
  }
  results.each{name,map->
    map.each{result,count->
      println "$name : $result = $count"
    }
  }
}
"Done"

将此作为开始,并根据您的具体要求进行修改。

哇,我没有意识到有远程API。这正是我所需要的(而且似乎比日志抓取更易于维护。)@matthewsteele你能分享一下API吗?我已经用最新的Java API更新了,详细信息可以在中找到。万一有人需要,那太好了@Marslo!谢谢@Marslo!随着时间的推移,构建的总数量如何?@AbdennourTOUMI,我想您可能想试试,它将列出状态百分比和相关的构建数量。顺便说一句,设置
PARAM
为空将忽略匹配的参数(
final Map PARAM=[:]
),或者从中获取更多jenkins脚本示例