0

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

4

1 回答 1

4

我知道没有插件,但我们自己手动完成了一个流程。我们使用 mercurial 而不是 git,但我们使用这个基本过程来做到这一点:

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

  2. 这个可执行文件向 mercurial 询问刚刚推送的更改集,然后解析它们以查看哪些存储库和分支受到了影响。

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

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

    这段代码位于 ccnet.config 的开头:

<!DOCTYPE 巡航控制[

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

]>

然后将此部分添加到您定义项目的主配置中

&hg项目;

如果最后一点没有很好地通过,这里有一个描述它的文档。请参阅拆分 ccnet.config 文件部分:http: //build.sharpdevelop.net/ccnet/doc/CCNET/Multiple%20Projects.html

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

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

于 2012-08-01T14:49:59.177 回答