使用持续集成工具的经验



我们正在尝试设置连续集成。我们的软件套件由大约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工具

最新更新