【问题标题】:Continuous integration tools with "pipeline" support?具有“管道”支持的持续集成工具?
【发布时间】:2008-10-22 18:43:36
【问题描述】:

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

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

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

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

    您可能想看看Jenkins (formerly Hudson)

    【讨论】:

      【解决方案2】:

      我一直在使用Anthill,但你必须为此付费。

      【讨论】:

        【解决方案3】:

        Automated Build Studio 我认为很接近,尽管它可能不是您的选择,因为它仅适用于 Windows。

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

        【讨论】:

          【解决方案4】:

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

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

          【讨论】:

            【解决方案5】:

            必须同意 thinkworks 选项 - 转到“敏捷发布管理” http://www.thoughtworks-studios.com/go-agile-release-management

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

            【讨论】:

              【解决方案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

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 2021-12-12
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2021-10-30
                    相关资源
                    最近更新 更多