具有“管道”支持的持续集成工具?

时间:2008-10-22 18:43:36

标签: automation continuous-integration build-automation automated-tests

我们的自动构建和测试正在占用越来越多的资源,特别是因为我们支持许多平台并在调试和优化中进行测试。因此,我正在寻找一些工具支持,这将允许更加增量的“管道”方法,以便我们可以更快地获得反馈和结果。一些理想的特征包括:

  1. 支持增量反馈,以便我们可以看到构建,单元测试,快速测试,长时间运行测试,静态分析等结果。

  2. 任务依赖:如果构建失败,则不应运行测试,但其他任务可能(如lint或其他)。

  3. 支持多种构建和测试工具(包括自定义)。

  4. 支持多种平台(Linux,Mac,可能是Windows)。

  5. 一些归档功能会非常棒,比如日志文件,构建/测试输出等等。从这个方面来说,这可能会变得难以管理,因此理想情况下,一些数据会在X天或Y多次构建后被清除。

  6. 非常感谢任何指示或个人建议。

8 个答案:

答案 0 :(得分:3)

您可能需要查看Jenkins (formerly Hudson)

答案 1 :(得分:2)

我一直在使用Anthill,但你必须付钱。

答案 2 :(得分:2)

我认为

Automated Build Studio已经接近了,但由于它仅限于Windows,它可能不适合您。

  1. 是。随着构建的运行,Web前端提供增量反馈,包括详细信息和百分比。
  2. 是。构建过程是任务的层次结构。您可以确定任务是失败继续还是失败中止。
  3. 是。任务几乎可以是任何事情。随附的任务工具箱非常完整。
  4. 否。构建服务器必须是Windows机器。但是,您可以从Web前端开始构建。
  5. 是。每个构建都按层次结构详细记录,因此很容易确定每个步骤发生的事情。

答案 3 :(得分:1)

我认为buildbot会做你想做的一切:

  1. Web前端显示命令的输出。
  2. 完全任务依赖
  3. 完全自定义工具 - python脚本,但主要是shell脚本
  4. 目前我们在Linux,Mac,Solaris,HP-UX上使用它
  5. 它记录了所有内容,我不知道它是如何清除的。

答案 4 :(得分:1)

必须就思想工作选项达成一致 - 去“敏捷发布管理” http://www.thoughtworks-studios.com/go-agile-release-management

社区版(免费)和企业版中的一些很好的功能,例如环境配置和特定工件(版本)到特定环境的部署。

答案 5 :(得分:0)

我的JetBrains TeamCity设置近似于您的需要。

在一个项目中,我设置了多个不同的构建配置。

每个构建配置之间的区别在于构建目标的选择(我使用NAnt)和触发。

我有一个“XYZ集成”配置,它执行调试构建并运行一些NUnit测试。这在签入完成后60秒触发,向开发团队提供快速反馈。

我还有一个“XYZ Daily”配置,它可以进行调试构建,运行NUnit测试,然后构建一些MSI并编译一些文档。正如你可能猜到的,每天运行一次。

您也可以这样做,但配置范围更广。

答案 6 :(得分:0)

我们使用Hericus Software's Zed Builds and Bugs Management,它可以处理您所描述的内容。我们的主要构建包括超过61个独立的步骤,涵盖Java,C ++,C#的编译以及5种不同OS平台的安装构建。有些步骤并行执行,有些步骤可能会失败而不会导致整个构建失败,并且许多步骤在不同的机器上远程执行。

1)是的。在为构建执行步骤时,您可以立即看到步骤的结果,而无需等待整个构建完成。

2)是的。您可以定义步骤失败是否导致完整的构建失败。创建由“父”或“主”构建调用的“子”或“子”构建的能力允许极大的灵活性。

3)是的。我们正在使用makefile,ant,C#解决方案和一些自定义脚本,它们都能很好地集成。

4)是的。构建服务器是java,只需要1.6 JDK,因此任何平台都可以用于主构建服务器或卫星构建服务器。

5)是的。复制到构建“status”目录中的所有内容都将保存。这包括命令标准输出/错误,可以从网站上查看。您可以根据构建数量选择“dev”构建历史记录的数量。构建也可以升级为“QA”,在这种情况下,在从“QA”中删除之前不会删除它。从质量检查中,您可以将构建升级为“生产”,这将保留所有构建工件,直到您决定删除它们。

答案 7 :(得分:0)

请试试Thoughtworks的Cruise