Jenkins dsl 配置块制作重复的选项卡
Jenkins dsl configure block makes duplicate tabs
我正在尝试创建一个创建多分支管道作业的作业 DSL,
该作业已成功创建,但多管道作业中缺少一些配置,因此我尝试使用 "configure" 块。
确实创建了配置块,但它创建了 jenkins.branch.BranchSource 的副本 "tag" 我想我遗漏了什么'我尝试了很多操作但是没有什么对我有用。
有什么建议吗?
这是我的 groovy 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:
好吧,经过大量的努力,我认为我的问题是我没有将某些 TAGS 定义为 groovy DSL 中的插件并删除了“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 工作:
我正在尝试创建一个创建多分支管道作业的作业 DSL, 该作业已成功创建,但多管道作业中缺少一些配置,因此我尝试使用 "configure" 块。
确实创建了配置块,但它创建了 jenkins.branch.BranchSource 的副本 "tag" 我想我遗漏了什么'我尝试了很多操作但是没有什么对我有用。 有什么建议吗?
这是我的 groovy 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:
好吧,经过大量的努力,我认为我的问题是我没有将某些 TAGS 定义为 groovy DSL 中的插件并删除了“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 工作: