我如何建立不断整合标签而不是分支的做法?
我有以下标签存储库目录的结构(here是存储库结构的更详细说明):
/tags
/builds
/PA
/A
/B
/releases
/AR
/BR
/RC
/ST
我想配置我的持续集成工具(可以是从CruiseControl,Hudson和Jenkins到TeamCity的任何东西)来构建最新的标记,如果它已在这些文件夹中的任何一个中创建。
例如,如果结构已更改且标记1.x.0
出现在PA
目录中,我想在1.x.0
标记下触发构建源代码:
/tags
/builds
/PA
/1.x.0 -> triggers build
/A
/B
/releases
/AR
/BR
/RC
/ST
是否可以使用任何现有的持续集成工具在标签下构建源代码,或者我应该为此目的编写自己的插件?
答案 0 :(得分:2)
使用Jenkins:使用定期作业检查新标签,然后使用Parametrized Trigger Plugin以标签作为参数启动作业。该作业将手动更新为标记和构建。
答案 1 :(得分:0)
使用Jenkins(Hudson)和Subversion,您可以拥有一个恒定的标记,例如tags/BUILD
。当标签发生变化时,Jenkins将根据该标签进行构建。然后,您可以要求它在构建后应用新标记。
在您的示例中,您可以创建一个新标记tags/builds/PA
并让Jenkins收听该标记。 Jenkins将检测tags/builds/PA
文件夹中的任何更改,并在检测到任何更改时生成。您可以配置后构建步骤,以在完成构建时创建新标记(1.x.0)。
我在这个主题上发布了类似的问题,并在此处得到了一些回复 - http://groups.google.com/group/jenkinsci-users/browse_thread/thread/59ca7f0f9e21a382/fe14fc7269611b26#fe14fc7269611b26