詹金斯能告诉我每月破损建筑的总数/百分比吗?

时间:2011-12-01 22:57:58

标签: jenkins

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

我喜欢的是这些内容:

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

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

4 个答案:

答案 0 :(得分:4)

我认为这项工作使用API​​非常不错。您可以从您的视图中获取所有作业,然后进入作业详细信息并获取构建号和构建日期。使用这些构建号码,您可以获得相应的状态。您将不得不进行一些编码来收集和显示数据,但这可能是一种可能的方式。

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

最后,最佳解决方案是编写一个可以完成工作的插件,但这当然也是需要最大努力和专业知识的解决方案。

答案 1 :(得分:3)

Global Build Stats插件可能会提供您正在寻找的报告。

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

答案 2 :(得分:2)

正如@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"

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

答案 3 :(得分:0)

尝试构建指标插件以及Global Build Stat插件。