【问题标题】:Continuous integration tools with "pipeline" support?具有“管道”支持的持续集成工具?
【发布时间】:2008-10-22 18:43:36
【问题描述】:
我们的自动化构建和测试正在占用越来越多的资源,尤其是因为我们支持许多平台并在调试和优化方面进行测试。因此,我正在寻找一些工具支持,以允许更多增量的“管道”方法,以便我们可以更快地获得反馈和结果。一些理想的特征包括:
支持增量反馈,以便我们可以看到构建、单元测试、快速测试、长时间运行测试、静态分析等可用的结果。
任务依赖性:如果构建失败,则不应运行测试,但可以运行其他任务(如 lint 或其他任务)。
支持多种构建和测试工具(包括自定义)。
支持多种平台(Linux、Mac,可能还有 Windows)。
某些归档功能会很棒,比如日志文件、构建/测试输出等。自然,这可能会变得难以管理,因此理想情况下,一些数据会在 X 天或 Y 多次构建后被清除。
非常感谢任何指针或个人建议。
【问题讨论】:
标签:
automation
continuous-integration
build-automation
automated-tests
【解决方案3】:
Automated Build Studio 我认为很接近,尽管它可能不是您的选择,因为它仅适用于 Windows。
- 是的。 Web 前端会在构建运行时提供增量反馈,包括详细信息和百分比。
- 是的。构建过程是任务的层次结构。您可以确定任务是失败继续还是失败中止。
- 是的。任务几乎可以是任何东西。随附的任务工具箱非常完整。
- 没有。构建服务器必须是 Windows 机器。但是,您可以从 Web 前端开始构建。
- 是的。每个构建都按层次详细记录,因此很容易查明每一步发生的情况。
【解决方案4】:
我认为buildbot 会做你想做的一切:
- Web 前端显示命令的输出。
- 完整的任务依赖关系
- 完全自定义的工具 - python 脚本,但主要是 shell 脚本
- 目前我们在 Linux、Mac、Solaris、HP-UX 上使用它
- 它记录了所有内容,我不知道它如何/是否清除了东西。
【解决方案6】:
我的 JetBrains TeamCity 设置大致符合您的需要。
在一个项目下,我设置了多个不同的构建配置。
每个构建配置之间的区别在于构建目标的选择(我使用 NAnt)和触发。
我有一个“XYZ 集成”配置,它进行调试构建并运行一些 NUnit 测试。这会在签入完成 60 秒后触发,向开发团队提供快速反馈。
我还有一个“XYZ Daily”配置,它进行调试构建,运行 NUnit 测试,然后构建一些 MSI 并编译一些文档。您可能已经猜到了,它每天运行一次。
您也可以这样做,但配置范围更广。
【解决方案7】:
我们使用Hericus Software'sZed Builds and Bugs Management,它可以处理您所描述的内容。我们的主要构建包括超过 61 个独立的步骤,涵盖 Java、C++、C# 的编译和 5 个不同操作系统平台的安装构建。有些步骤是并行执行的,有些可能会失败而不会导致整个构建失败,而且许多步骤是在不同的机器上远程执行的。
1) 是的。在为构建执行这些步骤时,您可以立即看到该步骤的结果,而无需等待整个构建完成。
2) 是的。您可以定义步骤失败是否导致完全构建失败。创建由“父”或“主”构建调用的“子”或“子”构建的能力允许极大的灵活性。
3) 是的。我们正在使用 makefile、ant、C# 解决方案和几个自定义脚本,它们都集成得很好。
4) 是的。构建服务器是 java 并且只需要 1.6 的 JDK,因此任何平台都可以用于主构建服务器或附属构建服务器。
5) 是的。复制到构建“状态”目录中的所有内容都会被保存。这包括可以从网站查看的命令标准输出/错误。您可以根据构建数量选择要保留多少“开发”构建历史。一个构建也可以提升为“QA”,在这种情况下,它不会被删除,直到它从“QA”中删除。从 QA 中,您可以将构建提升为“生产”,这将保留所有构建工件,直到您决定删除它们。
【解决方案8】:
请试试 Thoughtworks 的 Cruise