我需要知道Jenkins多分支管道中正在构建哪个分支,以便正确运行步骤。
我们使用的gitflow模式包含dev
、release
和master
分支,这些分支都用于创建工件。dev
分支自动部署,其他两个分支不部署。此外,还有feature
、bugfix
和hotfix
分支。这些分支应该被构建,但不会产生工件。它们应该只是用来通知开发人员他们的代码是否有问题。
在标准构建中,我可以访问$GIT_BRANCH
变量以了解正在构建哪个分支,但在我的多分支管道中没有设置该变量。我试着把$GIT_BRANCH
作为一个参数传递给构建,但似乎没有任何效果,我假设既然构建知道正在构建的分支(我可以在控制台输出的顶部看到分支名称)有一些我可以使用的东西-我只是找不到任何引用。
6条答案
按热度按时间7gs2gvoe1#
env.BRANCH_NAME
变量包含分支名称。从Pipeline Groovy Plugin 2.18开始,您还可以只使用
BRANCH_NAME
(env
不是必需的,但仍然可以接受。)cfh9epnr2#
目前还没有专门用于此目的的变量(JENKINS-30252)。同时,您可以利用子项目名称取自分支名称的事实,并使用
此问题现已解决,请参见Krzysztof Krasoń's answer。
px9o7tmv3#
在Jenkins多分支管线作业中,需要考虑2个分支:
env.BRANCH_NAME
。它可以与git分支同名,但也可以称为PR-123或类似名称env.GIT_BRANCH
,这是git中实际的分支名称。因此,作业可能具有分支_NAME=PR-123和GIT_BRANCH=my-scm分支名称
cgfeq70w4#
Jenkins文档中有一个所有env变量的列表,供您仔细阅读here
htrmnn0y5#
另一种方法是使用
git
命令获取当前jenkins管道上的分支名称,例如,您可以添加以下代码段以在Jenkinsfile
中打印分支名称。aiazj4mn6#
我发现这个stackoverflow帖子示例很有用:Git Variables in Jenkins Workflow plugin