有没有办法将CruiseControl修改集传递给自定义ant任务?
我的设置:我有一个CruiseControl(原始的,不是CC.NET或类似的)实例,它监视等待测试的二进制包的SVN存储库。每当出现新的二进制包时,应将此包发送到另一个“测试主机”进行测试。这通常通过自定义ant任务工作,但有一个抢夺......
问题是二进制包是为多种体系结构构建的。我的自定义ant任务应该选择与二进制包的体系结构相匹配的“测试主机”(它为此目的维护一个“测试主机”的内部列表)。目前,只要出现任何架构的新软件包,所有“测试主机”都会收到通知,以便运行测试。
所以,我对理想的CruiseControl项目逻辑的想法是:
<modificationset>
监控SVN目录以查找更改(以及应触发所有“测试主机”的本地文件)我的问题是:如何将修改集传递给该ANT任务?
我偶然发现的一个解决方案是“Modification Writer”插件,但这个插件显然只适用于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>
在那里,您可以找到当前修改集修改的所有文件。完成此操作后,您可以将它们传递到自定义任务上,然后从那里上传。我会使用xsl从文件中提取我想要的数据,但当然你可以使用你想要的任何技术:)
希望它有所帮助!
答案 1 :(得分:0)
是的,日志文件确实包含所有信息。但如果你想在你的蚂蚁任务中使用它,那你就不走运了。在构建完成之前,不会将此文件写入磁盘。唉,你不想在你想要的时候看到修改集。