关于持续集成:每日构建自动化的最佳方法

关于持续集成:每日构建自动化的最佳方法

Best Way of Automating Daily Build

好的,所以我们都知道每日构建是项目的心脏,但是自动化该项目的最佳方法是什么?

我们有perl脚本来包装我们的管道,其中包括ClearCase,VS2005(C),Intel FORTRAN,Inno安装程序。我们在UNIX上使用cron作业来调度构建,并托管一个简单的Apache Web服务器来查看和监视构建。总而言之,它相当复杂,我想知道人们使用的最佳现成解决方案是什么?

是的,我确实说过FORTRAN有时无法转义,它可以正常工作,对于一些经过验证的,可以正常工作的FEA代码,做一个巨大的重新实现项目毫无意义。


哈德森(Hudson)是我听到的一个非常新的东西,它也具有MSBuild支持。


有许多专门用于处理此问题的工具:

  • 巡航控制
  • 哈德森
  • 连续体

该工具对最常见的构建类型具有开箱即用的支持。它们都还支持某种"运行此脚本"类型的构建过程。

最后,您应该使用更好的构建工具(MSBuild,Ant,Maven,Make等),您可以在其中使用自定义脚本来填补其他工具的空白。自动化构建可以按正确的顺序调用它们。


我们正在实施CC.Net。到目前为止,它似乎非常适合您的模型。

开箱即用,它提供了自动构建,结果跟踪和通知功能。我不确定内置监视的详细程度。


这是我们发现的最佳资源,可帮助我们选择持续集成工具。我们已经在此页面上评估了5或6种工具。

http://confluence.public.thoughtworks.org/display/CC/CI功能列表


我们使用TeamCity-但是它是一个简单的C#/ Java开发-也许您的管道可以通过它可以驱动的脚本来完成?


如果您使用的是Visual Studio,请确保签出Team Foundation Build以查看它是否适合您的情况。

Buck Hodges在VS 2008版本上发表的博客文章似乎也是不错的资源。


CC.NET非常强大。使用它,对此感到非常高兴。甚至系统托盘中的状态图标。这是一个很小的细节,但是它为您提供了项目"健康"的良好概览。当您看到红色时,您会立刻有动力去修复测试。

现在,我们使用一系列自编写的脚本。自从我们编写Python以来,编译就不存在了,因此唯一的问题就是运行测试。


我已经成功使用Visual Build Pro。


我知道这是一个非常老的问题,但是搜索中仍会遇到这个问题,因此有人应该提到Jenkins-Hudson的开源延续。

来自Jenkins Wiki:

Among those things, current Jenkins focuses on the following two jobs:

  • Building/testing software projects continuously, just like CruiseControl or DamageControl. In a nutshell, Jenkins provides an easy-to-use so-called continuous integration system, making it easier for developers to integrate changes to the project, and making it easier for users to obtain a fresh build. The automated, continuous build increases the productivity.
  • Monitoring executions of externally-run jobs, such as cron jobs and procmail jobs, even those that are run on a remote machine. For example, with cron, all you receive is regular e-mails that capture the output, and it is up to you to look at them diligently and notice when it broke. Jenkins keeps those outputs and makes it easy for you to notice when something is wrong.

它最初是考虑到Java构建的,因此它可以与许多其他Java工具很好地集成在一起,但是您可以将其与任何语言一起使用,包括OP提到的所有语言。


推荐阅读