使cruisecontrol自动选择新的git分支

时间:2012-07-27 08:40:30

标签: git continuous-integration cruisecontrol.net

是否存在一些用于巡航控制的插件,它会自动获取新的git分支并构建它们? 这就是我想做的事情: http://entagen.github.com/jenkins-build-per-branch/

1 个答案:

答案 0 :(得分:4)

我没有注意到的插件,但我们自己动手制作了一个流程。我们使用mercurial而不是git,但我们使用这个基本过程来执行此操作:

  1. 我们创建了一个自定义可执行文件,在ChangeGroup事件触发时触发。看起来在git的情况下,你可以使用post-receive hook。

  2. 此可执行文件向mercurial询问刚刚推送的一组更改,然后通过它们进行解析,以查看哪些存储库和分支已受到影响。

  3. 对于每个新分支,它会找到我们为该存储库设置的模板,使用新的分支信息格式化模板并将其添加到文件“ccnethg.config”。然后它会触及主配置文件(ccnet.config),因此巡航控制将重新加载项目。

  4. 主配置文件(ccnet.config)设置为使用这个方便的xml技巧查看此文件:

    这篇文章是在ccnet.config开头的:

  5.   

    <!DOCTYPE cruisecontrol [

       <!ENTITY hgproject SYSTEM "file:ccnethg.config">
    
         

    ] GT;

    然后在您定义项目的主配置中添加此片段

      

    &安培; hgproject;

    如果最后一点没有得到很好的解决,那么这是一个描述它的文档。请参阅拆分ccnet.config文件部分:http://build.sharpdevelop.net/ccnet/doc/CCNET/Multiple%20Projects.html

    我们将它拆分为一个单独的文件,因为如果文件中的所有内容都是分支构建,那么在向文件添加/删除构建时,以编程方式处理会更容易。

    如果您愿意,我可以提供更多详细信息。