Я пытаюсь создать задание DSL, которое создает задание с несколькими филиалами, Задание создается успешно, но в многоконвейерном задании отсутствуют некоторые конфигурации, поэтому я попытался использовать блок «настроить».
Блок конфигурации действительно был создан, но он создал дубликат «тега» 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 создается:
Что ж, после долгих мучений я думаю, что моя проблема заключалась в том, что я не определил некоторые из ТЕГИ как плагины в groovy DSL, и удаление раздела «мерзавец» также помогло.
Итак, Final groovy, который, наконец, сработал, был таким:
branchSources {
configure {
it / sources / data / "jenkins.branch.BranchSource" << source (class: "jenkins.plugins.git.GitSCMSource", plugin:"[email protected]") {
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:
У меня была точно такая же ошибка, я не уверен, почему это не самая распространенная проблема, Job DSL создает (по крайней мере, в последней версии) все записи, относящиеся к плагину, с версиями соответствующего плагина в XML, предотвращая тег соответствия XML от поиска правильного тега, поэтому он автоматически создает новый.