【问题标题】:Hudson project with multiple triggers具有多个触发器的 Hudson 项目
【发布时间】:2011-08-31 18:42:42
【问题描述】:

我正在与 Hudson 构建一个持续集成系统,并将一个项目分为两部分。第一个是主要的构建和单元测试元素,我想以传统的 CI 方式运行,触发 SVN。第二个是功能测试,需要很长时间才能运行,所以我希望它们能通宵运行。

有没有什么方法可以设置一个带有多个触发器的 Hudson 项目,也就是说,当且仅当主项目已更改并成功构建时,功能测试每晚运行。

我见过这个问题:Hudson - different build targets for different triggers,但不管主项目的状态如何,它只是每天晚上运行。

【问题讨论】:

    标签: build continuous-integration hudson


    【解决方案1】:

    我遇到的情况与你完全相同:构建包含一些与 SVN 相关的快速健全性测试,但每晚的回归测试需要更长的时间。

    我们的解决方案是使用DOS Build Trigger Plugin。在那个构建触发器上,我们附加了一个每晚触发一次的时间表。触发脚本是一系列简单的命令,如下所示:

    set CAUSE=
    curl  http://localhost:8080/job/THEBUILDJOB/lastSuccessfulBuild/artifact/fingerprint.txt -o current.txt
    if not exist current.txt exit 0
    fc /B current.txt last.txt
    if ERRORLEVEL 1 set CAUSE=New build available
    copy /y current.txt last.txt
    

    这会从上次成功构建中获取特定文件(fingerprint.txt),并将其(通过 fc)与我们存储在工作区中的副本进行比较。如果它们匹配 - 不会发生构建。如果它们不同,我们通过 DOS 构建触发器通过设置 CAUSE 变量来触发构建,然后将新文件存储在触发器的工作区中。

    【讨论】:

    • 谢谢,但该插件似乎不支持自定义工作区,我用它来存储构建任务中的二进制文件,以便测试可以访问它们。大概它需要在 Windows 服务器上运行才能运行 DOS 脚本?
    • 我不确定仅限 Windows 的部分,但我根据插件的名称猜测。是的,自定义工作区将是一个问题。您可能可以使用硬编码路径而不是工作空间相关路径。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-28
    • 1970-01-01
    • 1970-01-01
    • 2013-01-14
    • 1970-01-01
    相关资源
    最近更新 更多