如何配置Jenkins动态运行标记/分支?

时间:2017-08-22 20:29:02

标签: git jenkins

我正在尝试配置Jenkins作业以自动运行最新版本构建(对于定期构建选项)。目前,它的设置方式是每个新的发布版本都有自己的分支,每个分支都标记为" Release x.x.x"的格式。如果可能的话,我希望能够动态运行最新的分支,而无需在每次有新版本时手动配置所有作业。

或者,似乎使用标签可能是另一种方法,我也可以这样做。

我已经对此进行了大量的研究,从我能找到的结果来看,使用git参数是我最好的选择。不幸的是,关于如何使用它的文档并不多。我一直在尝试使用标签,因为它似乎更容易,因为所有标签都只是版本号,因此使用DESCENDING_SMART排序选项可以更好地使用它,而对于分支,您也有其他杂项的名称分支机构要考虑。我已将标记过滤器设置为*,对于分支说明符,它设置为" refs / tags / $ {RELEASE_TAG}"但这对我来说并不适用。当我去构建参数时,只是说"检索Git引用..."。即使我可以实现这一点,我还需要一种方法来将默认值设置为最新版本(如果没有提供默认值,我可以将其设置为默认为排序列表中的第一个分支,或者让它发挥作用的一些替代方案)。

我的另一个想法是使用脚本返回参数值,但我不确定这是否可能。我已经看到了一些关于在配置中运行groovy脚本的内容,但是我还没有对其工作方式进行过多的研究,即使我可以运行脚本,我还需要一种安全访问存储库的方法获取所有分支名称。一旦我拥有它,返回最新版本分支应该是非常简单的。

有没有办法实现这个目标?或者我是否只需要为每个新版本手动更新发布版本?

2 个答案:

答案 0 :(得分:0)

为什么不使用多分支项目,它将为每个新分支生成一个构建。

您可以使用一些正则表达式发布。

答案 1 :(得分:0)

选项1

您可以将分支作为参数传递。

在你的工作中创建一个字符串参数让我们调用" branch"

In' Branches to build / Branch Specifier'使用参数$ {branch}

现在远程触发此构建传递此参数。

您可以使用git脚本钩子来实现这一点,更好的方法是每次提交消息都有类似" Go to Production",#34; New Release&#34时运行此脚本;或类似的东西可以与开发商商定。

选项2

像我一样。

每次创建新标记时,我都会运行一个启动jenkins作业并创建新版本的脚本。

您也可以通过创建名称发布的特定分支来实现,每次提交此分支时,都会触发jenkins作业。