我是Jenkins Pipeline插件的新手,尤其是multibranch管道插件的新手.在标准版本中,我可以访问$ GIT_BRANCH变量来了解正在构建的分支.但是,该变量未在multibranch管道中设置.我也尝试了env.GIT_BRANCH,并尝试将$ GIT_BRANCH作为参数传递给构建.似乎没什么用.我假设,因为构建知道正在构建的分支(我可以看到控制台输出顶部的分支名称,我可以使用的东西,我只是找不到任何引用它.
这是一个为什么这很重要的例子.我们正在使用gitflow模式.我们有dev,release和master分支,它们都用于创建工件.dev分支自动部署,另外两个没有.还有功能,错误修复和修补程序分支.应该构建这些分支,但不会产生伪像.如果他们的代码有问题,他们应该只是用来通知开发人员.我需要知道正在构建哪个分支才能运行正确的步骤.
任何帮助,将不胜感激.
我们刚刚开始使用Jenkins多分支管道.我喜欢Jenkins在创建新分支时自动创建新Jenkins作业的想法.它将确保Jenkins正在构建所有可释放的开发.我们有大约40或50个项目几乎每个版本都会分支,每次分支时创建大约40个左右的工作都是容易出错的工作.
但是,我发现Jenkins中有两种类型的管道构建:
常规管道构建:您在Jenkins作业中指定位置和分支.但是,您可以指定是要在Jenkins作业配置中使用脚本,还是在源存储库中使用脚本.这将使我们能够Jenkinsfile为所有工作保持单一.如果我们在构建过程中更改了某些内容,我们只需编辑一个Jenkins文件.
多分支管道构建:在创建新分支时,Jenkins将自动为您创建新的Jenkins作业.这意味着我们不再需要在新分支发生时创建数十个新的Jenkins项目.但是,它看起来Jenkinsfile必须位于项目的根目录中.如果在构建过程中进行了基本更改,则必须更新所有Jenkins项目.
我希望能够使用多分支管道构建,但我想指定Jenkinsfile从存储库中提取的位置,或者Jenkinsfile从存储库URL中包含主服务器.
有没有办法用Jenkins多分支管道做到这一点?