使用Jenkins工作流程multibranch插件拉出当前分支

时间:2016-04-19 14:06:19

标签: java git jenkins jenkins-workflow

我已经设置了Jenkins,我正在使用Jenkins工作流程multibranch插件。我已将其配置为在任何分支的GitHub仓库中监听提交。

这是其中一个分支中提交的Jenkinsfile的示例:

node {
   // Mark the code checkout 'stage'....
   stage 'Checkout'

   // Get some code from a GitHub repository
   git url: 'git@github.com:Me/my-repo.git', credentialsId: '###'

   // Get the maven tool.
   // ** NOTE: This 'M3' maven tool must be configured
   // **       in the global configuration.
   def mvnHome = tool 'M3'

   stage 'Build'
   sh "${mvnHome}/bin/mvn clean install"
}

当我在此分支中提交某些内容时,将触发构建。问题是git检查主分支而不是当前正在构建的分支。

如何查看当前构建的分支?

到目前为止的解决方案

  1. 使用checkout scm代替git url: 'git@github.com:Me/my-repo.git', credentialsId: '###'这样您就会检查当前分支。
  2. 使用分支变量 - 请查看此信息以获取更多信息:Jenkins Multibranch pipeline: What is the branch name variable?

1 个答案:

答案 0 :(得分:1)

Jenkinsfile中,使用branch行上的git参数添加要结帐的分支名称:

git {...}, branch: 'branch-name'

某些构建触发器设置一个包含分支名称的环境变量(例如,Gerrit Trigger Plugin设置GERRIT_BRANCH),这样您就可以将branch设置为该环境变量而不是每个分支编码。