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