代码之家  ›  专栏  ›  技术社区  ›  orithena

需要在自定义Ant任务中设置CruiseControl修改

  •  2
  • orithena  · 技术社区  · 14 年前

    是否有任何方法可以将CruiseControl修改集传递给自定义Ant任务?

    我的设置:我有一个CruiseControl(原始的,不是cc.net或类似的)实例,它监视等待测试的二进制包的SVN存储库。每当出现新的二进制包时,应该将该包发送到另一个“测试主机”来测试它。这通常通过一个定制的蚂蚁任务工作,但有一个抓取…

    问题是二进制软件包是为多个体系结构构建的。我的定制Ant任务应该选择与二进制包的体系结构相匹配的“测试主机”(它为此维护了一个“测试主机”的内部列表)。目前,所有“测试主机”都会收到通知,以便在为 任何 体系结构出现。

    因此,我理想的CruiseControl项目逻辑的想法是:

    • CruiseControl通过 <modificationset> (也是一个本地文件,应该触发所有“测试主机”)。
    • 任何 修改,一个Ant脚本由CruiseControl调用,而CruiseControl又调用一个定制的Ant任务。
    • 这个定制的Ant任务需要知道 哪一个 文件已被精确地修改以触发CruiseControl运行,以便它可以根据修改文件的名称(它们的名称中包含体系结构)选择正确的“测试主机”。

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

    我偶然发现的一个解决方案是“修改编写器”插件,但是这个插件显然只适用于CruiseControl.net。:

    2 回复  |  直到 14 年前
        1
  •  0
  •   Mike    13 年前

    是的,日志文件确实包含所有信息。但是如果你想在你的蚂蚁任务中使用它,那你就走运了。在生成完成之前,不会将此文件写入磁盘。唉,当你想看修改集的时候,你却看不到。

        2
  •  0
  •   FailedDev    13 年前

    目前还没有现成的解决方案,但是通过执行以下操作来解决问题并不难:

    对于每个项目,都有一个.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>