代码之家  ›  专栏  ›  技术社区  ›  Pat Notz

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

  •  2
  • Pat Notz  · 技术社区  · 17 年前

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

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

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

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

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

    5. 有些归档能力会很好,比如日志文件、构建/测试输出等。自然,这会变得无法管理的大,所以一些数据最好在x天或y多次构建之后清除。

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

    8 回复  |  直到 17 年前
        1
  •  3
  •   pestophagous    15 年前

    你可能想看看 Jenkins (formerly Hudson) .

        2
  •  2
  •   Instantsoup    17 年前

    我一直在使用 Anthill 但你必须为此付出代价。

        3
  •  2
  •   Joeri Sebrechts    17 年前

    Automated Build Studio 很接近,我想,虽然它可能不是你的选择,因为它只有窗户的性质。

    1. 对。Web前端在构建运行时提供增量反馈,包括细节反馈和百分比反馈。
    2. 对。构建过程是任务的层次结构。您可以确定任务是“失败”“继续”还是“失败”“中止”。
    3. 对。任务几乎可以是任何事情。伴随它的任务工具箱相当完整。
    4. 不可以。生成服务器必须是Windows计算机。但是,您可以从Web前端开始构建。
    5. 对。每一个构建都被详细地、层次地记录下来,所以很容易确定在每个步骤中发生了什么。
        4
  •  1
  •   Douglas Leeder    17 年前

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

    1. Web前端显示命令的输出。
    2. 完整任务相关性
    3. 完全自定义的工具-python脚本,但主要是shell脚本
    4. 目前我们在Linux、Mac、Solaris、HP-UX上使用它
    5. 它记录了一切,我不知道它是怎么清除的。
        5
  •  1
  •   brett    15 年前

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

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

        6
  •  0
  •   Bevan    17 年前

    我的JetBrains TeamCity设置接近你需要的。

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

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

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

    我还有一个“xyz日常”配置,它执行调试构建、运行nunit测试、然后构建一些msi并编译一些文档。正如你可能猜到的,这个每天运行一次。

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

        7
  •  0
  •   Steven M. Cherry    17 年前

    我们使用 Hericus Software's Zed Builds and Bugs Management 它可以处理你所描述的。我们的主要构建包括超过61个离散的步骤,包括Java、C++、C语言的编译以及5个不同OS平台的安装构建。有些步骤是并行执行的,有些步骤可以在不导致整个构建失败的情况下失败,并且许多步骤是在不同的机器上远程执行的。

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

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

    3)是的。我们使用的是makefiles、ant、c解决方案和几个自定义脚本,它们都集成得很好。

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

    5)是的。复制到构建“状态”目录中的所有内容都将保存。这包括可以从网站查看的命令标准输出/错误。您可以根据构建的数量选择要保留多少“dev”构建历史记录。构建也可以升级为“qa”,在这种情况下,只有将其从“qa”中移除,才能将其删除。从QA,您可以将构建提升为“生产”,这将保留所有构建工件,直到您决定删除它们。

        8
  •  0
  •   Qiao Liang    17 年前

    请尝试从思想工作巡航

    推荐文章