我正在与Hudson构建一个持续集成系统,并将项目分为两部分。第一个是主构建和单元测试元素,我希望以传统的CI方式运行,触发SVN。第二个是功能测试,需要很长时间才能运行,所以我希望它们能在一夜之间运行。
是否有任何方法可以设置具有多个触发器的Hudson项目,即当且仅当主项目已更改并且已成功构建时,每晚运行功能测试。
我已经看到了这个问题:Hudson - different build targets for different triggers,但是无论主要项目的状态如何,它都会每晚运行。
答案 0 :(得分:0)
我的情况与你完全相同:一个与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)与我们存储在工作区中的副本进行比较。如果它们匹配 - 不会发生构建。如果它们不同,我们通过设置CAUSE变量通过DOS Build Trigger触发构建,然后将新文件存储在触发器的工作区中。