当前位置: 首页 > 面试题库 >

Jenkins管道分支名称返回null

高承望
2023-03-14
问题内容

我正在尝试为jenkins groovy脚本获取分支的名称。我无法获取当前的分支名称。我尝试以下方法:

stage('Check out code')
checkout scm
echo "My branch is: ${env.BRANCH_NAME}"

这是输出-它始终返回null。

 Checking out Revision 33b531b2f1caaf8b64d968e437306f39d2dba1da   (origin/pipeline)
  > git.exe config core.sparsecheckout # timeout=10
  > git.exe checkout -f 33b531b2f1caaf8b64d968e437306f39d2dba1da
 [Pipeline] echo
 My branch is: null

我想念什么吗?


问题答案:

变量仅在多分支管线中起作用:

BRANCH_NAME对于多分支项目,此名称将设置为正在构建的分支的名称,例如,如果您希望从主分支而不是功能分支部署到生产中。

我在正常的管道中进行测试



 类似资料:
  • 我需要知道我的Jenkins multibranch管道中正在构建哪个分支,以便它正确运行步骤。 我们将gitflow模式与用于创建工件的dev、release和master分支一起使用。dev分支自动部署,其他两个不自动部署。还有功能、错误修复和热修复分支。这些分支应该被构建,但不能产生工件。如果他们的代码有问题,应该使用它们来通知开发人员。 在标准构建中,我可以访问变量来知道正在构建哪个分支,

  • 问题内容: 我是Jenkins Pipeline插件的新手,尤其是多分支管道插件的新手。在标准构建中,我可以访问$ GIT_BRANCH变量以了解正在构建哪个分支。但是,该变量未在多分支管道中设置。我也尝试过env.GIT_BRANCH,并且尝试将$ GIT_BRANCH作为参数传递给构建。似乎没有任何作用。我以为既然构建知道构建的分支(我可以在控制台输出的顶部看到分支名称,可以使用某些东西,但是

  • 我已经创建了一个jenkins管道,它正在从scm中提取管道脚本 我将分支说明符设置为“all”,因此它基于对任何分支的任何更改。 如何从Jenkinsfile访问导致此构建的分支名称? 我试过的所有东西都是空的,除了 它始终是主。

  • 对于一个新项目,我想使用Jenkins CI的新管道功能。我们的Git存储库中有几个分支,应该以同样的方式进行测试。它还应该自动跟踪和处理新的分支。因此,我创建了一个多分支管道作业。但它的配置有两个问题: 1) 为了被Jenkins标记为有效,分行需要一个“Jenkinsfile”。如果这不存在,詹金斯将忽略该分支。有没有办法标记与模式匹配的所有分支,而不需要在其中包含此文件? 2) 每个分支都应

  • 我对使用Jenkins文件和GIT插件的Jenkins多分支pipleline有一个问题。 问题是,每次向暂存分支推送都会触发master管道。所需的行为是,推送到暂存分支仅触发用于暂存的管道,而推送到主分支仅触发主管道 这是我的詹金斯档案 我将分享一些日志:这是主分支的日志 这是主分支的日志,但只有暂存有一个新的提交: 注意“已发现更改”,即使主分支上的头未更改 詹金斯·弗。2.190.1 Gi

  • 我正在努力使用Jenkins 2.1多分支管道,在这里,我从同一个git存储库构建了多个工件。一些工件是独立的,应该根据它们各自目录中的更改触发构建。有些是依赖的,应该由先前的步骤/构建触发。 存储库有一个控制整个管道的文件。Jenkins多分支管道作业会在所有更改时触发(无其他行为)。 我不知道如何在目录dirA发生变化时触发工件A的构建。 git回购协议中的Jenkins文件file:///r