我想将jenkins.plugins.git.traits.BranchDiscoveryTrait
特征添加到我们的种子工作中。但我没有让它运行。
从理论上讲,这应该有效,但事实并非如此。如何设置这些属性?
multibranchPipelineJob(projectNsPath) {
displayName(projectId)
branchSources {
branchSource {
source {
git {
remote(projectUrl)
configure { node ->
node / traits {
'jenkins.plugins.git.traits.BranchDiscoveryTrait'()
}
}
}
}
strategy {
defaultBranchPropertyStrategy {
props {
noTriggerBranchProperty()
}
}
}
}
}
orphanedItemStrategy {
discardOldItems {
numToKeep(20)
}
}
}
1)从documentation开始,配置块应该选择其定义的节点,所以
git {
configure { node ->
...
}
}
node
必须是<source plugin="git@3.8.0" class="jenkins.plugins.git.GitSCMSource">
元素,但它是根元素。
2)如果我使用完整路径node / sources / data / 'jenkins.branch.BranchSource' / source / traits << 'jenkins.plugins.git.traits.BranchDiscoveryTrait'()
,它会创建第二个source
节点。
答案 0 :(得分:0)
configure
下方的git
上下文中没有branchSource
方法,它仅适用于git
下方的scm
上下文。使用API查看器查找方法的可用性。
但您可以使用顶级配置块来生成特征:
multibranchPipelineJob('example') {
branchSources {
branchSource {
source {
git {
remote('https://github.com/jenkinsci/job-dsl-plugin.git')
}
}
strategy {
defaultBranchPropertyStrategy {
props {
noTriggerBranchProperty()
}
}
}
}
}
configure { node ->
node / sources / data / 'jenkins.branch.BranchSource' / source / traits {
'jenkins.plugins.git.traits.BranchDiscoveryTrait'()
}
}
}