在Jenkins中构建SVN主干,分支和标签?

5

我正在尝试创建一个Jenkins作业,以构建存储在Subversion中的项目,但需要询问我要构建哪个标签、分支或主干。

我已经尝试将其设置为参数化构建,并添加了“列出Subversion标签”的参数,但它只创建了一个下拉菜单,其中只有/branches、/tags和/trunk。它没有列出各个分支或标签。

我曾认为使用Subversion Release Manager可以解决这个问题,但它没有提供有关如何使用它的有意义的文档,而我迄今为止所有尝试都导致它不会询问我要使用哪个分支,而是继续检出整个树-主干和每个分支和标签。

Jenkins Issue 10678应该已经提供了这个功能,但那是在2011年,如果它仍然应该起作用,我就无法使其对我起作用。

有人知道如何实现这一点吗?

3个回答

5
你可以使用变量来表示存储库位置,因此Jenkins中的存储库URL将类似于http://myhost.com/MY_REPO/${some_branch},其中some_branch是您的参数。该参数可以设置为字符串参数,您可以手动输入,或者您可以使用动态选择参数进行高级操作,并使用来自存储库的信息自动填充下拉菜单(https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+Dynamic+Parameter+Plug-in)。例如:
动态选择参数:'some_branch'
// Choices Script (groovy)
def dirs = ['trunk/'] // defaults to trunk

def command = ['svn', 'ls', 'http://myhost.com/MY_REPO/tags']
def proc = command.execute()
proc.in.eachLine { dirs.add('tags/' + it) }

command = ['svn', 'ls', 'http://myhost.com/MY_REPO/branches']
proc = command.execute()
proc.in.eachLine { dirs.add('branches/' + it) }

dirs

当在存储库URL中使用变量时,要小心Subversion插件的这个问题[JENKINS-18426](https://issues.jenkins-ci.org/browse/JENKINS-18426?page = com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel) - coz
也可以直接指向存储库根目录。例如,可以使用参数$VERSION,其中包括“trunk”、“branches/branch1.2.3”或“tags/tag-3.4.5”。 - Alex

0

我正在使用子版本插件,它非常好用。

不确定自你发布问题以来是否有所更改。

只是提醒一下初学者设置插件。

它提供了逐步解决方案和屏幕截图。


-1
声明式管道还是脚本管道?我在我的脚本管道中使用了ListSubversionTagsParameterDefinition插件并取得了不错的效果...
parameters([
    [$class: 'ListSubversionTagsParameterDefinition',
            name: 'SVN_TAG_TO_BUILD', 
            tagsDir: 'https://server/svn/repo/tags', 
            credentialsId: 'jenkins', 
            maxTags: '50', 
            reverseByDate: true, 
            reverseByName: false], 
    string(
        defaultValue: 'Running release build', 
        description: 'Comments to leave when creating the release build tag', 
        name: 'SVN_COMMENTS'
    )
])

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接