如何使用 Jenkins JobDSL 在 Git 插件中设置 'Check out to specific local branch'?
How to use Jenkins JobDSL to set 'Check out to specific local branch' in Git Plugin?
我有以下内容:
job {
scm {
git {
remote {
url(GIT_URL)
}
branch('master')
}
}
}
它工作得很好,但我希望它能将 'Check out to specific local branch' 设置为 'master'。这是怎么做到的?
我在 https://github.com/jenkinsci/git-plugin/blob/master/src/main/java/hudson/plugins/git/GitSCM.java 中没有找到任何可以使用的东西,但我可能遗漏了一些东西。
作业 DSL 当前不支持该选项,但您可以使用 configure block 修改生成的配置 XML:
job {
scm {
git {
remote {
url(GIT_URL)
}
branch('master')
configure { node ->
node / 'extensions' << 'hudson.plugins.git.extensions.impl.LocalBranch' {
localBranch('master')
}
}
}
}
}
自已接受的答案写入以来,已添加对 'Check out to specific local branch' 的支持:
job {
scm {
git {
remote {
url(GIT_URL)
}
branch('master')
extensions {
localBranch 'master'
}
}
}
}
还有另一种实现命名本地分支的方法:
multibranchPipelineJob(pathToJob) {
branchSources { ... }
configure {
def traits = it / sources / data / 'jenkins.branch.BranchSource' / source / traits
traits << 'jenkins.plugins.git.traits.LocalBranchTrait' {
localBranch('**')
}
}
}
我有以下内容:
job {
scm {
git {
remote {
url(GIT_URL)
}
branch('master')
}
}
}
它工作得很好,但我希望它能将 'Check out to specific local branch' 设置为 'master'。这是怎么做到的?
我在 https://github.com/jenkinsci/git-plugin/blob/master/src/main/java/hudson/plugins/git/GitSCM.java 中没有找到任何可以使用的东西,但我可能遗漏了一些东西。
作业 DSL 当前不支持该选项,但您可以使用 configure block 修改生成的配置 XML:
job {
scm {
git {
remote {
url(GIT_URL)
}
branch('master')
configure { node ->
node / 'extensions' << 'hudson.plugins.git.extensions.impl.LocalBranch' {
localBranch('master')
}
}
}
}
}
自已接受的答案写入以来,已添加对 'Check out to specific local branch' 的支持:
job {
scm {
git {
remote {
url(GIT_URL)
}
branch('master')
extensions {
localBranch 'master'
}
}
}
}
还有另一种实现命名本地分支的方法:
multibranchPipelineJob(pathToJob) {
branchSources { ... }
configure {
def traits = it / sources / data / 'jenkins.branch.BranchSource' / source / traits
traits << 'jenkins.plugins.git.traits.LocalBranchTrait' {
localBranch('**')
}
}
}