Java 使用Jenkins工作流多分支插件拉取当前分支
我已经设置了Jenkins,我正在使用Jenkins工作流多分支插件。我已将其配置为在GitHub repo中侦听任何分支的提交 这是在其中一个分支中提交的Java 使用Jenkins工作流多分支插件拉取当前分支,java,git,jenkins,jenkins-workflow,Java,Git,Jenkins,Jenkins Workflow,我已经设置了Jenkins,我正在使用Jenkins工作流多分支插件。我已将其配置为在GitHub repo中侦听任何分支的提交 这是在其中一个分支中提交的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
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签出的是主分支,而不是当前正在构建的分支
如何签出当前生成的分支
到目前为止的解决方案
签出scm
而不是git url:'git@github.com:Me/my repo.git',credentialsId:'####'
这样您将签出当前分支在
Jenkinsfile
中,使用git
行上的branch
参数添加要签出的分支的名称:
git {...}, branch: 'branch-name'
一些生成触发器设置包含分支名称的环境变量(例如,设置
GERRIT_branch
),这将允许您将branch
设置为该环境变量,而不是对每个分支进行硬编码。谢谢您的回答。我发现我可以使用checkout scm
而不是git
命令。它检查了当前的分支。哦,这比我的答案好多了。