使用持续集成构建标签

时间:2012-02-07 17:12:53

标签: svn version-control jenkins continuous-integration configuration-management

我如何建立不断整合标签而不是分支的做法?

我有以下标签存储库目录的结构(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

是否可以使用任何现有的持续集成工具在标签下构建源代码,或者我应该为此目的编写自己的插件?

2 个答案:

答案 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