我的团队的目标是最大限度地减少我们的构建被破坏的时间。
我们使用 CruiseControl.NET 进行持续集成。我想知道如何最好地回答以下问题:
“在最近的 {timespan} 中,{project-name} 花费了多少时间处于损坏状态?”
例如:“在过去的 1 个月中,我们的项目有多少时间处于损坏状态?”
CruiseControl.NET 是否有任何高级功能可以帮助在某种类型的报告或仪表板中的某处提供这些信息?
或者,您将如何解析 xml 工件文件以收集此信息?
我的团队的目标是最大限度地减少我们的构建被破坏的时间。
我们使用 CruiseControl.NET 进行持续集成。我想知道如何最好地回答以下问题:
“在最近的 {timespan} 中,{project-name} 花费了多少时间处于损坏状态?”
例如:“在过去的 1 个月中,我们的项目有多少时间处于损坏状态?”
CruiseControl.NET 是否有任何高级功能可以帮助在某种类型的报告或仪表板中的某处提供这些信息?
或者,您将如何解析 xml 工件文件以收集此信息?
我看到至少有两种方法可以解决这个问题:
以下是有关 CCNET 插件的一些链接:
您可以使用统计发布者, http://www.cruisecontrolnet.org/projects/ccnet/wiki/Statistics_Publisher ,您可以通过项目统计插件显示它们
快速浏览了 CC 文档后,我想如果您正在编写自己的巡航控制仪表板,您可以使用构建结果的 RSS 提要,解析所有日期时间和成功/失败状态直到您的阈值,然后总结总数。
至于在仪表板中显示它,我认为 Cruise Control 有一个插件架构,可能有助于http://cruisecontrol.sourceforge.net/main/plugins.html
我喜欢 cc.net,但在这种情况下,TeamCity 只是为你做这件事。它还有很多其他很棒的统计数据。少于 20 个项目是免费的。
所以我最终的解决方案并不理想,但它很容易做到并且有效:
我让 CC.NET 将构建电子邮件发送到一个电子邮件地址(我们称之为 build_emails@build_statistics.com)。然后我使用 ruby 脚本通过 imap 获取电子邮件并处理它们以确定我们的构建失败时间。
我没有走直接解析 xml 的路线,因为我必须解析时间范围内的每个 xml 文件以建立时间线,然后遍历时间线进行计算。获得这样一个简单的统计数据似乎太复杂了。