Continuous integration CruiseControl(或任何其他CI工具)比编写良好的(n)Ant提供了更多什么?

Continuous integration CruiseControl(或任何其他CI工具)比编写良好的(n)Ant提供了更多什么?,continuous-integration,nant,Continuous Integration,Nant,我们有大量的nAnt脚本集合来构建我们的各种产品。它们几乎都具有以下结构: 删除旧的工作副本 从版本控制中签出完整的新副本 增加相应文件中的生成编号(自定义nAnt任务) 运行静态分析(StyleCop、Perl脚本) 使用VisualStudio构建解决方案-以MSI输出结束 运行单元测试(nUnit、JSUnit) 运行静态分析(FxCop) 将可交付成果(MSI、自述等)压缩到命名良好的包中 将此zip包放到服务器共享上 将结果通过电子邮件发送给团队 根据我们的研究,CruiseContr

我们有大量的nAnt脚本集合来构建我们的各种产品。它们几乎都具有以下结构:

  • 删除旧的工作副本
  • 从版本控制中签出完整的新副本
  • 增加相应文件中的生成编号(自定义nAnt任务)
  • 运行静态分析(StyleCop、Perl脚本)
  • 使用VisualStudio构建解决方案-以MSI输出结束
  • 运行单元测试(nUnit、JSUnit)
  • 运行静态分析(FxCop)
  • 将可交付成果(MSI、自述等)压缩到命名良好的包中
  • 将此zip包放到服务器共享上
  • 将结果通过电子邮件发送给团队
  • 根据我们的研究,CruiseControl(.net?)/Hudson/BuildBot似乎只会添加导致生成的触发器,此时正在远程桌面和状态仪表板上双击nAnt脚本

    我们还遗漏了什么重要的东西吗?

    这个问题是主观的,因此我的答案也是主观的

    在我以前自动化过的项目中,CruiseControl基本上就是为了这个目的而使用的:因此我们不必远程进入构建机器并触发构建。CI部分是CruiseControl将为您监控存储库,在您定义的时间间隔触发构建

    它还为我们提供了一个仪表板,从中可以触发发布,或者返回到过去构建中的日志和人工制品


    对我们来说,这足以实现CruiseControl。也许直到你完成它,一个月后意识到你不必去碰你的构建系统,因为它在默默地为你做着它的事情,不受欢迎地关闭。像Hudson这样的持续集成服务器可以为你做1、2、3、9和10,这样你就不必自己实现它们了。如果你已经让它工作起来了,这对你当前的项目来说可能不是一个很大的改进,但它会使后续的项目变得更简单。正如您所提到的,它还负责何时触发构建


    Hudson还将绘制随时间变化的各种趋势图,如测试覆盖率、构建时间、静态分析结果。如果您愿意,您还可以使用比电子邮件更复杂的通知。

    它给您提供的最重要的东西是视觉反馈(屏幕越大越好)。当您有一台机器,专门用于显示构建结果,对所有团队成员都可见时,它就像一个催化剂,让人们看到某些错误并修复它

    如果你有类似的东西站在一个你的老板可以看到的地方,问你“嘿,威尔金森,为什么这个屏幕是红色的?”你会更快地修复你的构建吗


    它们看起来都一样,你可以选择你认为适合你需要的任何东西,只需一次安装和运行。

    CC或CC.net?为什么会这样?@Jeff,我认为这是主观的,因为这完全是轶事,而且是基于我对好处的看法@JBRWIKN,CC,因为这个项目是Delphi、java和C++的混合体。当时我们还没有做任何.NET。(构建过程现在由单独的开发分支处理,因此不在我的权限范围之内。)“绘制各种趋势图”——听起来很棒,这正是管理层希望看到的+1.