当前位置: 首页 > 面试题库 >

选择要在詹金斯建立的分支

钱均
2023-03-14
问题内容

我的项目中有几个分支。在詹金斯的工作中可以动态选择分支吗?想法是,詹金斯将获取当前分支的列表并将其显示为可能的选择参数。有什么办法吗?谢谢


问题答案:

是的,您可以使用扩展选择参数插件来实现。安装插件后,转到作业的配置页面。现在,按照下面提到的步骤进行操作:

  1. 启用复选框This build is parameterized
  2. 在下拉菜单中Add Parameter,选择Extended Choice Parameter
  3. 由于您将只选择 一个 分支进行构建,因此保留Parameter TypeasSingle Select
  4. 在部分中Choose Source for Value,单击单选按钮Property File。指定文件的绝对(完整)路径。
  5. 在下面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存储库并获取分支列表。然后,它使用 最新的 分支列表填充属性文件,然后由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

PS :确保属性文件在Jenkins Master上(如果是Master-Slave设置)。



 类似资料:
  • 问题内容: 当我尝试在openshift jenkins上构建项目时出现以下异常 问题答案: 我们正在升级中,这可能是这里的原因。升级完成后,请重试。要获取最新状态,请点击此处: https //openshift.redhat.com/app/status

  • 问题内容: 我正在尝试找出一种具有一个参数列表的方法,并让詹金斯为列表中的每个项目创建作业或运行构建。 该参数是一个目录,因此我有一个目录列表,我希望它能够正常工作,因此对于每个目录,构建都需要执行几个步骤-因此,基本上每个目录都需要运行git pull,ant命令,ant命令,ant命令目录名称,发布测试结果,下一个版本。 我看过很多插件,但是直到完成所有操作后,我才能弄清楚如何使它进入列表中的

  • 问题内容: 有没有办法改变詹金斯基于失败的测试来计算构建状态的方式?我希望詹金斯将 所有 失败的测试视为“阳光明媚”之外的东西,但到目前为止,我一直在寻找一种方法来解决这一问题。标准设置是否允许这种级别的控制,或者也许有插件可以做到这一点? 问题答案: 如果使用支持多种测试报告格式的xUnit插件,则可以添加构建后操作来解析构建的测试报告,并根据失败或跳过的测试数量将构建声明为不稳定或失败。

  • 问题内容: 在我的项目中,我有3个Web应用程序,都依赖于一个项目。 在我的詹金斯的服务器,我建了4个作业,,,和。这些工作的作用是构建工件,这些工件部署在我们的Nexus上。然后,有人在Nexus中检索这些工件,并将它们部署在我们的开发/认证服务器上。 我想要的是拥有一个(其他?)工作,该工作将按顺序启动所有这四个版本。这样,完成此作业后,所有的RELEASE作业都已执行。当然,如果一个构建失败

  • 构建步骤“调用顶级 Maven 目标”将构建标记为失败。

  • 我是詹金斯的新手,在我本地的windows机器上安装了它。 禽类