我正在尝试创建作业DSL,以创建多分支流水线作业, 作业已成功创建,但是多管道作业中缺少一些配置,因此我尝试使用“配置”块。
确实创建了configure块,但是它创建了 jenkins.branch.BranchSource 的重复“标签”。我想我缺少了一些东西。我尝试了很多操作,但对我没有用。 有什么建议吗?
这是我的普通DSL:
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:
答案 0 :(得分:0)
在经过很多努力之后,我认为我的问题是我没有将某些 TAGS 定义为Groovy DSL中的插件,并删除了“ git ”部分也有帮助。
因此,最终可行的最终方法是:
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工作: