7

我的团队的目标是最大限度地减少我们的构建被破坏的时间。

我们使用 CruiseControl.NET 进行持续集成。我想知道如何最好地回答以下问题:

“在最近的 {timespan} 中,{project-name} 花费了多少时间处于损坏状态?”

例如:“在过去的 1 个月中,我们的项目有多少时间处于损坏状态?”

CruiseControl.NET 是否有任何高级功能可以帮助在某种类型的报告或仪表板中的某处提供这些信息?

或者,您将如何解析 xml 工件文件以收集此信息?

4

5 回答 5

2

我看到至少有两种方法可以解决这个问题:

  1. 您编写了一个外部工具来解析项目的 CC.NET 的 XML 日志文件(默认存储在 buildlogs 子目录中)、计算统计数据并编写 HTML 报告。这可能更容易做到,但它不会直接与 CC.NET 集成。
  2. 您编写一个CC.NET 插件来执行此操作。在这种情况下,您需要进行一些调查。我的猜测是查看一些现有插件的源代码。

以下是有关 CCNET 插件的一些链接:

于 2010-01-25T12:43:30.213 回答
2

您可以使用统计发布者, http://www.cruisecontrolnet.org/projects/ccnet/wiki/Statistics_Publisher ,您可以通过项目统计插件显示它们

于 2010-01-30T17:38:55.643 回答
1

快速浏览了 CC 文档后,我想如果您正在编写自己的巡航控制仪表板,您可以使用构建结果的 RSS 提要,解析所有日期时间和成功/失败状态直到您的阈值,然后总结总数。

至于在仪表板中显示它,我认为 Cruise Control 有一个插件架构,可能有助于http://cruisecontrol.sourceforge.net/main/plugins.html

于 2010-01-19T00:14:05.340 回答
0

我喜欢 cc.net,但在这种情况下,TeamCity 只是为你做这件事。它还有很多其他很棒的统计数据。少于 20 个项目是免费的。

于 2010-02-24T15:05:10.660 回答
0

所以我最终的解决方案并不理想,但它很容易做到并且有效:

我让 CC.NET 将构建电子邮件发送到一个电子邮件地址(我们称之为 build_emails@build_statistics.com)。然后我使用 ruby​​ 脚本通过 imap 获取电子邮件并处理它们以确定我们的构建失败时间。

我没有走直接解析 xml 的路线,因为我必须解析时间范围内的每个 xml 文件以建立时间线,然后遍历时间线进行计算。获得这样一个简单的统计数据似乎太复杂了。

于 2010-02-24T14:59:05.277 回答