Jenkins-管道访问git分支名称

ten*_*con 3 git jenkins jenkins-pipeline

问题:有什么方法可以在jenkinsfile中获得管道所签出的分支的名称?

注意:我不在多分支管道中!

在我的管道中即时通讯使用

checkout([$class: 'GitSCM', 
          userRemoteConfigs: [[url:'https://github.com/repo', 
                               credentialsId: 'xxxx',name: '1234']]])
Run Code Online (Sandbox Code Playgroud)

name提交ID 在哪里。我需要验证此提交ID来自用户已将其指定为参数的分支(用户同时指定了分支名称和提交ID,并且我需要在构建项目之前检查是否没有错误)。

为什么分支名称未在管道中公开,而仅在多分支管道中公开?对我来说没有意义。

我不想转换为多分支管道的原因有三个:

  1. 我在管道中使用了另一个插件Build Blocker插件,该插件在多分支管道中似乎不可用。
  2. 我有一个参数化管道,但在多分支管道中看不到该选项。
  3. 很多时间进入了这个管道,我只是不想仅仅为了这个分支名称功能而从头开始设置这个项目。

我已经打印出所有环境变量,分支名称不在其中。

谢谢您的帮助!

Arj*_*ing 6

如果您使用的是管道代码,那么我假设您正在执行以下操作:

checkout scm

令人高兴的是,这将返回一个包含一些有用内容的地图,您可以通过以下方式从中获取已签出的分支:

def scmVars = checkout scm def branchName = scmVars.GIT_BRANCH