2010-10-03 39 views
2

有什么办法来CruiseControl的修改集传递给定制Ant任务?需要CruiseControl的修改集定制Ant任务

我的设置:我有一个CruiseControl的监视等待测试的二进制文件包的SVN仓库(原单,不是CC.NET或类似的东西)的实例。无论何时出现新的二进制软件包,都应将此软件包发送给其他“测试主机”进行测试。这通过一个定制Ant任务做工一般,但有一个抢夺......

的问题是,这些二进制包用于多个架构构建的。我的自定义ant任务应该选择与二进制包的体系结构相匹配的“测试主机”(它为此维护一个“测试主机”的内部列表)。目前,所有“测试主机”都会收到通知,只要有新的软件包出现在任何体系结构中,就会运行测试。

所以,我的一个理想的CruiseControl项目逻辑的想法是:

  • CruiseControl的监视更改的SVN目录通过<modificationset>(也应该引起所有“测试主机”本地文件)
  • 任何修改,Ant脚本是由CruiseControl的,后者又调用自定义ANT任务
  • 这种定制Ant任务需要知道所谓文件到底有没有被修改,以触发Cruis eControl运行,以便它可以根据修改文件的名称(它们包含其名称中的体系结构)选择正确的“测试主机”

我的问题是:如何将修改集传递给该ANT任务?

一个解决方案的想法,我偶然发现是“修改作家”的插件,但是这一个显然是只适用于CruiseControl.NET。 :-(

回答

0

真,日志文件会包含所有的信息。但是如果你想在你的蚂蚁任务中使用它,你的运气不好。直到构建完成后,才会将该文件写入磁盘。唉,当你想要时,你不会看到修改集。

0

没有已经为这个现成的解决方案,但是它并不难通过执行以下操作来解决问题:

对于每一个项目.xml格式特定日志文件中存在的文件有一个名字像这样:。log20110913113343.xml Ant任务知道日志在任何时候现在你需要做的是提取您从这个文件中需要的信息,比如什么:

<modification type="clearcase"> 
    <file action="checkin"> 
    <revision>\main\axpro_LATESTfo\4</revision> 
    <filename>expected</filename> 
    <project>calibration\algorithms\test.u\DetectMarkersMetaTest</project> 
    </file> 
    <date>2011-09-12T14:22:28</date> 
    <user>z002tv9v</user> 
    <comment><![CDATA[Added file element "testcase_1.01.txt". 
       Added file element "testcase_1.02.txt". 
       Added file element "testcase_1.03.txt". 
       Added file element "testcase_1.04.txt". 
       Added file element "testcase_1.05.txt". 
       Added file element "testcase_1.06.txt".]]></comment> 
    <revision>\main\axpro_LATESTfo\4</revision> 
</modification> 

在那里,你可以找到当前修改集修改过的所有文件,一旦你完成了这个任务,你就可以将它们传递给你的自定义任务并从那里上去。 d使用XSL来提取我从文件中想要的数据,但当然你可以使用任何你想要的高科技:)

希望它帮助!