CruiseControl(或任何其他CI工具)提供的不仅仅是编写良好的(n)Ant?

时间:2010-01-14 17:08:23

标签: continuous-integration nant

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

  1. 删除旧的工作副本。
  2. 从版本控制中查看完整的新副本。
  3. 在适当的文件中增加内部版本号(自定义nAnt任务)。
  4. 运行静态分析(StyleCop,Perl脚本)
  5. 使用Visual Studio构建解决方案 - 以MSI输出结束。
  6. 运行单元测试(nUnit,JSUnit)
  7. 运行静态分析(FxCop)
  8. 将可交付成果(MSI,自述文件等)压缩到名称很好的包中。
  9. 将此zip包放到服务器共享上。
  10. 将结果通过电子邮件发送给团队。
  11. 从我们的研究中看来,CruiseControl(.net?)/ Hudson / BuildBot似乎只会添加导致构建的触发器,目前双击远程桌面上的nAnt脚本和状态仪表板。 / p>

    我们是否遗漏了其他重要内容?

3 个答案:

答案 0 :(得分:5)

问题是主观的,因此我的回答也是如此。

在我之前自动化的项目中,CruiseControl主要用于这一目的:因此我们不必远程进入构建机器并触发构建。 CI部分是CruiseControl将为您监视存储库,以您定义的间隔触发构建。

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

对我们来说,实施CruiseControl足够有利。也许它看起来并没有那么多,直到你完成它并且一个月后意识到你没有必要触摸你的构建系统,因为它是默默无闻地为你做这件事。

答案 1 :(得分:3)

像Hudson这样的持续集成服务器可以为你做1,2,3,9和10,这样你就不必自己实现它们了。如果你已经开始工作,那对你当前的项目来说可能不是一个巨大的改进,但它会使后续项目更简单。如你所说,它也会照顾何时触发构建。

Hudson还将描绘各种趋势,例如测试覆盖率,构建时间,静态分析结果。如果您愿意,还可以提供比电子邮件更复杂的通知。

答案 2 :(得分:1)

它给你的最重要的是视觉反馈(屏幕越大越好)。当你有一台机器,专门用于显示所有团队成员都可以看到的构建结果时,它就像催化剂一样,让人们看到出现问题并修复它。

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

Thay看起来都一样,你可以选择你认为符合你需要的任何东西,只需要一个设置并运行。