我正在尝试创建一个创建多分支管道作业的作业DSL,该作业正在成功创建,但是在多管道作业中缺少一些配置,所以我尝试使用“配置”块。
配置块确实是创建的,但它创建了一个重复的jenkins.branch.BranchSource“标记”,我想我遗漏了一些东西‘我尝试了大量的操作,但对我没有任何作用。有什么建议吗?
这是我的groovy:
multibranchPipelineJob('TestDocker_pipeline_DSL') {
branchSources {
git {
remote(gitUrl)
credentialsId('Dev_Builder_ssh')
//includes("(V[0-9]+.[0-9]+([.]+[0-9]+)*)|(master)")
}
configure {
it / sources / data / "jenkins.branch.BranchSource" << "jenkins.plugins.git.GitSCMSource" {
id("8fd33e1d-07b6-4cc4-8f1c-a18d955b4b6e")
remote(gitUrl)
credentialsId('Dev_Builder_ssh')
traits{
"jenkins.scm.impl.trait.RegexSCMHeadFilterTrait"{
regex("V[0-9]+.[0-9]+([.]+[0-9]+)*)|(master)")
}
}
}
}
}
factory {
workflowBranchProjectFactory {
scriptPath('main/Docker/DockerJenkinsfileSlave.groovy')
}
}
orphanedItemStrategy {
discardOldItems {
numToKeep(3)
}
}
}这是正在创建的作业XML:

发布于 2019-05-27 10:30:04
在经历了很多挣扎之后,我认为我的问题是,我没有将一些标记定义为groovy中的插件,而删除"git“部分也有帮助。
因此,最后一个能工作的groovy是这样的:
branchSources {
configure {
it / sources / data / "jenkins.branch.BranchSource" << source (class: "jenkins.plugins.git.GitSCMSource", plugin:"git@3.9.2") {
remote(gitUrl)
credentialsId('Dev_Builder_ssh')
includes('*')
excludes('')
ignoreOnPushNotifications(false)
traits{
"jenkins.scm.impl.trait.RegexSCMHeadFilterTrait"{
regex("(V[0-9]+.[0-9]+([.]+[0-9]+)*)|(master)")
}
}
}
}
}这导致了这个非常有用的XML作业:

https://stackoverflow.com/questions/56321329
复制相似问题