我们正在尝试设置连续集成。我们的软件套件由大约20个C#解决方案组成。对于某些项目,单元测试(NUnit)已经可用。我们希望使构建和测试过程自动化,并尽早获得有关中断更改的信息。
最近,我试着和哈德森一起这样做。一些问题可以在通过网络进行深入搜索和尝试后解决。
现在,一个错误阻碍了我们取得进展:当然,我们的解决方案共享一些组件。当共享组件被更改时,我们不希望构建过程在第一次失败后停止——我们想知道所有被破坏的项目。Hudson在使用"参数化触发插件2.4版"时也无法处理这一问题(它在第一个项目完美完成后启动下一个项目,在构建失败后失败。然后,甚至没有发送电子邮件通知,之后,根本没有启动下游项目,即使上游项目成功!)。
到目前为止,哈德逊的经历非常令人失望,我们考虑采用不同的系统。
你能从你的积极经验中推荐一个持续集成工具吗?它可以:
- 与Subversion集成(用于获取源代码和触发构建)
- 启动msbuild(例如Windows命令行)
- 触发进一步的项目,无论上游项目是否失败(必须这样做!)
- 生成失败时通过电子邮件通知
- 使用NUnit启动单元测试(例如命令行)
- 单元测试失败时通过电子邮件通知
- 在构建/测试环境中与其他计算机合作,在其他系统上部署/测试
- 提供社区支持
更新:我试过詹金斯。无论上游项目是否失败,它都会触发进一步的构建。还没有测试最后两点。
【免责声明:CI工具制造商的回应】
Bernhard,您的需求(尤其是管理解决方案间的依赖关系)非常适合我公司的AnthillPro。
- 与Subversion集成(用于获取源代码和触发生成)
- 是的。我们将使用轮询或SVN提交后触发器来检测源代码更改并立即触发构建
- 启动msbuild(例如Windows命令行)
- 我们有一个现成的MS Build构建类型
-
触发进一步的项目,而不管上游项目是否失败(必须做!)
- AnthillPro的触发功能非常棒。它可以处理大型构建图,并行构建任何依赖组件,同时不进行不必要的构建。自2001年首次引入触发以来,我们一直在改进这种能力
-
当构建失败时通过电子邮件通知
- 电子邮件和/或实例消息
-
使用NUnit(例如命令行)启动单元测试
- 支持NUnit测试结果解析
-
单元测试失败时通过电子邮件通知
- 类似于生成失败的通知
-
在构建/测试环境中与其他计算机协作在其他系统上部署/测试
- 完全支持在环境中部署构建。环境是AnthillPro中的优先顺序概念
-
提供社区支持
- 这是可能的问题。我们的产品不是免费的。这是镀金的CI/CD工具