我正在为各种Scala项目寻找持续集成工具。到目前为止,我找到了Jenkins ,它显然通过Sbt的插件支持 Scala 项目,以及Pulse,它不直接支持 Scala 项目,但声称它可以轻松集成任何与 Sbt 匹配的命令行构建工具。我对 CI 没有任何实际经验,但阅读了几篇关于它的文章,通常与 Java 相关。
除了通常的功能,例如支持各种代码版本控制系统和发布夜间构建我希望能够记录一堆统计数据,随着时间的推移绘制它们并在某些数字意外变化时触发通知,即超过定义因素。本质上,测试套件中的每个测试都会在最后打印一些统计信息,这些统计信息可以通过正则表达式提取然后持久化(与它们来自的测试用例相关联)。
理想情况下,还有一种简单的方法可以对记录的统计信息创建查询,例如,将测试套件的最后一次运行与之前的进行比较。然而,这可能不是可以直接在 CI 工具中完成的事情,但至少应该可以以可查询的格式(例如 XML 或 JSON)导出记录的数据。
欢迎任何提示,链接或经验报告!
编辑1:
在某种意义上,这些统计信息不是 JVM 统计信息,例如代码覆盖率或内存消耗。它们与项目执行的实际工作有关,例如,排序算法执行的比较次数,或 SAT 求解器中冲突分配的次数。这些数字在每次运行结束时打印到 stdio,或写入文件。CI 工具应该“只”允许我将它们呈现为随时间变化的图表,或者执行简单的分析(总和、经络),或者当数字偏离平均值时发送邮件。