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

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

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

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

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

  5. 一些归档能力会很棒,比如日志文件、构建/测试输出等。当然,这可能会变得难以管理,因此理想情况下,一些数据会在 X 天或 Y 多次构建后被清除。

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

有帮助吗?

解决方案

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

其他提示

我一直在使用 Anthill ,但你需要付费。

自动化构建工作室 我认为很接近,尽管由于其仅限 Windows 的性质,它可能不适合您。

  1. 是的。Web 前端在构建运行时提供增量反馈,包括详细信息和百分比。
  2. 是的。构建过程是一个任务层次结构。您可以确定任务是失败继续还是失败中止。
  3. 是的。任务几乎可以是任何东西。伴随它的任务工具箱非常完整。
  4. 不。构建服务器必须是 Windows 计算机。不过,您可以从 Web 前端开始构建。
  5. 是的。每个构建都会按层次详细记录,因此可以轻松查明每一步发生的情况。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

请试试Thoughtworks的Cruise

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top