Build 具有多个触发器的Hudson项目

Build 具有多个触发器的Hudson项目,build,continuous-integration,hudson,Build,Continuous Integration,Hudson,我正在与哈德逊建立一个持续集成系统,并将一个项目分为两部分。第一个是主要的构建和单元测试元素,我想以传统的CI方式运行它,由SVN触发。第二个是功能测试,它需要很长时间才能运行,所以我希望它们能在一夜之间运行 有没有办法建立一个具有多个触发器的哈德逊项目,即当且仅当主项目已变更且已成功构建时,功能测试每晚运行 我看到了这个问题:,但它只是每晚运行,而不管主项目的状态如何。我的情况与您的情况完全相同:一个包含一些与SVN相关的快速健全性测试的构建,但每晚的回归测试需要更长的时间 我们的解决方案是使

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

有没有办法建立一个具有多个触发器的哈德逊项目,即当且仅当主项目已变更且已成功构建时,功能测试每晚运行


我看到了这个问题:,但它只是每晚运行,而不管主项目的状态如何。

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

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

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 build触发器触发一个构建,然后将新文件存储在触发器的工作区中。

我的情况与您的情况完全相同:一个构建带有一些与SVN相关的快速健全性测试,但每晚的回归测试需要更长的时间

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

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 build触发器触发生成,然后将新文件存储在触发器的工作区。

谢谢,但该插件似乎不支持自定义工作区,我正在使用自定义工作区存储生成任务中的二进制文件,以便测试可以访问它们。大概它需要在Windows服务器上运行才能同时运行DOS脚本?我不确定只运行Windows的部分,但我根据插件的名称猜测。是的,定制工作区将是一个问题。您可能会使用硬编码路径而不是工作区相关路径。谢谢,但该插件似乎不支持自定义工作区,我正在使用自定义工作区存储构建任务中的二进制文件,以便测试可以访问它们。大概它需要在Windows服务器上运行才能同时运行DOS脚本?我不确定只运行Windows的部分,但我根据插件的名称猜测。是的,定制工作区将是一个问题。您可能会使用硬编码路径,而不是工作区相关路径。