我正在尝试配置Jenkins作业以自动运行最新版本构建(对于定期构建选项)。目前,它的设置方式是每个新的发布版本都有自己的分支,每个分支都标记为" Release x.x.x"的格式。如果可能的话,我希望能够动态运行最新的分支,而无需在每次有新版本时手动配置所有作业。
或者,似乎使用标签可能是另一种方法,我也可以这样做。
我已经对此进行了大量的研究,从我能找到的结果来看,使用git参数是我最好的选择。不幸的是,关于如何使用它的文档并不多。我一直在尝试使用标签,因为它似乎更容易,因为所有标签都只是版本号,因此使用DESCENDING_SMART排序选项可以更好地使用它,而对于分支,您也有其他杂项的名称分支机构要考虑。我已将标记过滤器设置为*,对于分支说明符,它设置为" refs / tags / $ {RELEASE_TAG}"但这对我来说并不适用。当我去构建参数时,只是说"检索Git引用..."。即使我可以实现这一点,我还需要一种方法来将默认值设置为最新版本(如果没有提供默认值,我可以将其设置为默认为排序列表中的第一个分支,或者让它发挥作用的一些替代方案)。
我的另一个想法是使用脚本返回参数值,但我不确定这是否可能。我已经看到了一些关于在配置中运行groovy脚本的内容,但是我还没有对其工作方式进行过多的研究,即使我可以运行脚本,我还需要一种安全访问存储库的方法获取所有分支名称。一旦我拥有它,返回最新版本分支应该是非常简单的。
有没有办法实现这个目标?或者我是否只需要为每个新版本手动更新发布版本?
答案 0 :(得分:0)
为什么不使用多分支项目,它将为每个新分支生成一个构建。
您可以使用一些正则表达式发布。
答案 1 :(得分:0)
选项1
您可以将分支作为参数传递。
在你的工作中创建一个字符串参数让我们调用" branch"
In' Branches to build / Branch Specifier'使用参数$ {branch}
现在远程触发此构建传递此参数。
您可以使用git脚本钩子来实现这一点,更好的方法是每次提交消息都有类似" Go to Production",#34; New Release&#34时运行此脚本;或类似的东西可以与开发商商定。
选项2
像我一样。
每次创建新标记时,我都会运行一个启动jenkins作业并创建新版本的脚本。
您也可以通过创建名称发布的特定分支来实现,每次提交此分支时,都会触发jenkins作业。