2011-05-24 51 views
2

我建立一个持续集成系统,哈德森,并有一个项目拆分成两个部分。首先是主要的构建和单元测试元素,我希望以传统的CI方式运行,引发SVN。其次是功能测试,需要很长时间才能运行,所以我希望它们能够在一夜之间运行。哈德森项目与多个触发器

是否有建立这样的功能测试,运行每个晚上,当且仅当主体工程已发生变化,已成功地建有多个触发器,即一个项目哈德森的任何方式。

我已经看到了这个问题:Hudson - different build targets for different triggers,而是简单地运行,每天晚上不管主项目的状态。

回答

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

+0

谢谢,但它看起来像该插件不支持自定义的工作空间,我使用的存储从构建任务的二进制文件,这样的测试可以访问它们其中。据推测,它需要在Windows服务器上运行才能运行DOS脚本? – 2011-05-26 08:32:08

+0

我不确定仅用于Windows的部分,但我基于插件的名称猜测。是的,自定义工作区将是一个问题。你可以使用硬编码路径而不是工作区相关路径。 – 2011-05-26 14:47:51