Jenkins job DSL:使用groovy脚本中的最后一次提交提取分支

时间:2017-02-26 11:02:42

标签: jenkins groovy jenkins-job-dsl bitbucket-server

我正在使用Jenkins自动运行作业。我还使用Bitbucket Server作为版本控制系统。

我使用一些groovy脚本创建作业,在我的Bitbucket仓库中的任何更改(每次提交)上设置我的Jenkins作业DSL:

job(jobName) {
  steps {
    // Doing some staff. Need name of branch where last commit was done
  }
  scm {
      git('ssh://git@<my_git_host>/<my_project>/<my_repo>.git', '**')
  }
  triggers {
    bitbucketPush()
    scm ''
  }

所以,当我在my_repo进行一些提交时,这个工作就会运行,我想提取已经完成提交的分支的名称。有可能以某种方式做到吗?

P.S。在Jenkins方面(UI)我可以看到当前执行的分支名称,但我不知道如何在groovy端提取它。

1 个答案:

答案 0 :(得分:1)

基本上,分支信息将存储在具有ID&#34; GIT_BRANCH&#34;的环境变量中。对于每个构建,所以有很多方法可以提取它。

您只需添加以下脚本

即可
job(jobName) {
  steps {
       shell('''
               echo $GIT_BRANCH
             '''.stripIndent().trim())
            }
  scm {
      git('ssh://git@<my_git_host>/<my_project>/<my_repo>.git', '**')
  }
  triggers {
    bitbucketPush()
    scm ''
  }