【问题标题】:Cruise Control .NET time build spends in failed stateCruise Control .NET 构建时间处于失败状态
【发布时间】:2023-04-01 12:04:01
【问题描述】:

我的团队的目标是尽量减少我们的构建被破坏的时间。

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

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

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

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

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

【问题讨论】:

  • “我的团队的目标是尽量减少我们的构建被破坏的时间。”你为什么需要这个?请描述您可以使用此信息的场景。如果你有 10 小时的破碎状态或 3 天,它会给你什么?
  • Restuta:对于我们的团队来说,一个损坏的构建代表一个错误。我们在系统的各个级别都有一套自动化测试。当其中一个测试由于代码更改而失败时,这意味着我们添加了一个错误。错误是不可容忍的,我们希望将修复它们作为高优先级。拥有统计数据只是量化我们在实现快速处理和修复错误的目标方面的表现的一种手段。此外,我们使用 CruiseControl.NET 来部署我们的开发站点,因此只要构建被破坏,新的代码更改就不会反映在我们的开发站点上。我们希望让我们的开发网站保持最新状态。
  • Broken build count 恕我直言,这是一个比在此状态下花费的时间更好的指标。
  • 赞成。我认为这是一个有效且有趣的问题。这类指标很有趣,尤其是如果轻率地考虑(即人们想要改进这个指标,因为他们是完美主义者和轻松的竞争者,而不是因为他们的人力资源经理是个白痴,他们的奖金会受到影响)。使用 Cruise Control API(或抓取或任何答案)也会很有趣。
  • 我同意损坏的构建计数是一个很好的指标,但它与损坏的时间具有不同的含义。损坏的构建计数告诉我们引入缺陷的频率。在构建中断状态下花费的时间告诉我们我们对这些缺陷的响应速度。

标签: continuous-integration cruisecontrol.net report agile-processes


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    这里有一些关于 CCNET 插件的链接:

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

      • 我特指 CruiseControl.NET。您知道 CruiseControl 中的任何文档是否也适用于 CruiseControl.NET?
      【解决方案4】:

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

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

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

      【讨论】:

      • 更新:这被证明是一个可怕的不可维护的解决方案。 :P
      【解决方案5】:

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

      【讨论】:

      • Team City 看起来确实很整洁。出于好奇,如何使用 TeamCity 回答这个问题?
      • @bhazzard - Team City 显示每个构建配置的统计数据,显示一天、一周、一个月、一个季度、一年或所有时间修复构建的时间。他们的文档显示了统计页面confluence.jetbrains.net/display/TCD5/Statistics 的示例。它还有一个restful api,您可以使用它来查询它。不能说我已经尝试过查询方法。我只看图表。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-09
      • 2010-12-03
      • 2013-03-09
      相关资源
      最近更新 更多