当前位置:  开发笔记 > 运维 > 正文

Git分支在Jenkins中用groovy脚本选择

如何解决《Git分支在Jenkins中用groovy脚本选择》经验,为你挑选了1个好方法。

我想Parameterized build在詹金斯做一个.通过这种方式,用户可以从级联菜单中选择他/她想要部署的git分支.

有两种可能的方法:

    在文件中编写分支名称并配置Jenkins以读取此文件(project configuration > extend choice parameter and selecting Property file).

    问题:您必须将本地存储库作为远程存储库的镜像,并使此本地存储库与远程存储库保持同步.换句话说,您必须更新包含更新的可用分支名称的文件.这需要cron的预定作业,我不允许使用这种方法.

    使用Groovy脚本(project configuration > extend choice parameter and selecting "Groovy script").然后你需要一个groovy脚本来检索分支名称,如下所示:branches=master,feature/Feature-1,feature/Feature-2,hotfix/Hotfix-1,release/Release-1.

我在这里找到了一个groovy脚本,但它不起作用.我在我的机器上安装了groovy.

有谁能够帮我?为了简化故事:我需要一个groovy脚本,它返回远程存储库的可用分支名称.



1> Paweł Piecyk..:

下面的脚本应该会有所帮助.它基于链接问题的脚本.它使用简单的正则表达式过滤git命令输出,并为指定的git存储库创建分支名称列表.测试grails-core github repo:

def gitURL = "https://github.com/grails/grails-core.git"
def command = "git ls-remote -h $gitURL"

def proc = command.execute()
proc.waitFor()              

if ( proc.exitValue() != 0 ) {
   println "Error, ${proc.err.text}"
   System.exit(-1)
}

def branches = proc.in.text.readLines().collect { 
    it.replaceAll(/[a-z0-9]*\trefs\/heads\//, '') 
}

println branches


@BorisBrodski是对的.如果出现问题,使用该语句可以重新启动整个jenkins.顺便说一下,最后一个语句应该是`return branches`
推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有