加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xcode – 选择要在Jenkins中构建的分支

发布时间:2020-12-15 01:43:03 所属栏目:百科 来源:网络整理
导读:我的项目中有几个分支.是否有可能在Jenkins的工作中进行动态分支选择? 想法是Jenkins将获得当前分支的列表并将它们显示为可能的选择参数.有没有办法做到这一点?谢谢 解决方法 是的,你可以使用 Extended Choice Parameter插件来做到这一点.安装插件后,转到
我的项目中有几个分支.是否有可能在Jenkins的工作中进行动态分支选择?
想法是Jenkins将获得当前分支的列表并将它们显示为可能的选择参数.有没有办法做到这一点?谢谢

解决方法

是的,你可以使用 Extended Choice Parameter插件来做到这一点.安装插件后,转到作业的配置页面.现在按照下面提到的步骤操作:

>启用复选框此构建已参数化.
>在下拉菜单中,添加参数,选择扩展选择参数
>由于您只为构建选择一个分支,因此将参数类型保留为单选
>在“选择值的来源”部分中,单击单选按钮属性文件.指定文件的绝对(完整)路径.
>在Property File下面,您将看到Property Key.在这里你必须指定密钥.属性文件采用键值对的形式.
例如,key = value1,value2,…

从下面显示的属性文件内容中可以看到,我将使用branch_name作为Property Key框中的键.

[tom@master ]# cat /data/branch_list
branch_name=master,mainline,branch_A,branch_B,branch_C,branch_N,

请参阅下面的快照,以便更好地理解我上面解释的内容

现在,如果您已经拥有分支列表,则可以使用上面指定的格式创建属性文件.但是,由于分支创建时有发生,因此您需要从版本控制工具中动态获取列表.我们使用Git,所以如果需要,我可以帮助你.如果您使用其他任何东西,则必须搜索所需的命令.为了动态获取分支列表,我设置了一个cron,它继续检查Git repo并获取分支列表.然后,它使用最新的分支列表填充属性文件,然后由Jenkins动态加载.

更新:

我们使用Gitolite并使用git ls-remote命令访问分支名称.

git ls-remote gitolite@git.server.com:repository_name

例如,

[tom@master ~]$git ls-remote gitolite@git.server.com:repository_name
08a119f0aec5d4286708d2e16275fcd7d80d2c25        HEAD
a91ef29f1be5bfe373598f6bb20d772dcc65b8ca        refs/heads/dev-mob
d138356cf752a46fd8c626229809c9eaae63a719        refs/heads/dev-ssorel
e7d7e2c617c4a42b299b29c0119283813800f1bb        refs/heads/dev-omni
3193b36d678f1af2dcc3a291c6313f28ede97149        refs/heads/dev-pay
72fd9d8586708011c763cd7bc4f7bd2a3513a12f        refs/heads/dev-sell
39455fc2672039a7f325e9cafe3777ed563368ef        refs/heads/dev-apis
a22eb000ffa1ac0fbbf51b6bc8aea31b040567a3        refs/heads/dev-front
78a63105ec754d7ba758af97d542e749ceb9c533        refs/heads/dev-tpsp
82d99796690b6c562872ea68655c74ebc3f0abfb        refs/heads/mainline
fd82522f9999cedb11e245b515d480187c2e9cc6        refs/heads/master

要仅过滤掉分支名称并以键值对的形式在文件中填充分支名称,可以使用以下脚本:

#!/bin/bash

git ls-remote gitolite@git.server.com:repository_name | grep -v HEAD | cut -d/ -f3 | sort > /data/branch_list_temp
tr 'n' ',' < /data/branch_list_temp | sed "s/^(.*)/branch_name=1/" > /data/branch_list

rm /data/branch_list_temp

P.S.:确保属性文件在Jenkins Master上(在Master-Slave设置的情况下).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读