是的,您可以使用扩展选择参数插件来实现。安装插件后,转到作业的配置页面。现在,按照下面提到的步骤进行操作:
- 启用复选框
This build is parameterized
。 - 在下拉菜单中
Add Parameter
,选择Extended Choice Parameter
- 由于您将只选择 一个 分支进行构建,因此保留
Parameter Type
asSingle Select
- 在部分中
Choose Source for Value
,单击单选按钮Property File
。指定文件的绝对(完整)路径。 - 在下面
Property File
,您将看到Property Key
。在这里,您必须指定密钥。该属性文件采用键值对的形式。例如key=value1,value2,...
从下面显示的属性文件内容中可以看到,我将
branch_name用作输入
Property Key框。
[tom@master ]# cat /data/branch_listbranch_name=master,mainline,branch_A,branch_B,branch_C,branch_N,
请参阅下面的快照,以更好地理解我在上面解释的内容:
现在,如果已经有了分支列表,则可以按照上面指定的格式创建属性文件。但是,由于分支创建有时会发生,因此您需要从版本控制工具中 动态
获取列表。我们使用Git,因此如有需要,我可以为您提供帮助。如果使用其他任何内容,则必须搜索所需的命令。为了 动态
获取分支列表,我设置了一个cron,它会不断检查Git存储库并获取分支列表。然后,它使用 最新的 分支列表填充属性文件,然后由Jenkins 动态
加载。
更新:
我们使用Gitolite并使用
git ls-remote命令访问分支名称。
git ls-remote gitolite@git.server.com:repository_name
例如,
[tom@master ~]$ git ls-remote gitolite@git.server.com:repository_name08a119f0aec5d4286708d2e16275fcd7d80d2c25 HEADa91ef29f1be5bfe373598f6bb20d772dcc65b8ca refs/heads/dev-mobd138356cf752a46fd8c626229809c9eaae63a719 refs/heads/dev-ssorele7d7e2c617c4a42b299b29c0119283813800f1bb refs/heads/dev-omni3193b36d678f1af2dcc3a291c6313f28ede97149 refs/heads/dev-pay72fd9d8586708011c763cd7bc4f7bd2a3513a12f refs/heads/dev-sell39455fc2672039a7f325e9cafe3777ed563368ef refs/heads/dev-apisa22eb000ffa1ac0fbbf51b6bc8aea31b040567a3 refs/heads/dev-front78a63105ec754d7ba758af97d542e749ceb9c533 refs/heads/dev-tpsp82d99796690b6c562872ea68655c74ebc3f0abfb refs/heads/mainlinefd82522f9999cedb11e245b515d480187c2e9cc6 refs/heads/master
要仅过滤掉分支名称并以键值对的形式填充到文件中,可以使用以下脚本:
#!/bin/bashgit ls-remote gitolite@git.server.com:repository_name | grep -v HEAD | cut -d/ -f3 | sort > /data/branch_list_temptr 'n' ',' < /data/branch_list_temp | sed "s/^(.*)/branch_name=1/" > /data/branch_listrm /data/branch_list_temp
PS :确保属性文件在Jenkins Master上(如果是Master-Slave设置)。



