无法为jenkins git sum插件设置特征

时间:2018-03-29 19:10:56

标签: jenkins jenkins-job-dsl

我想将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节点。

1 个答案:

答案 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'()
    }
  }
}