Job-DSL 1.84 No signature of method: javaposse.jobdsl.dsl.jobs.MultibranchWorkflowJob.publishers()
Упражняюсь с плагином JCasC + Job-DSL для Jenkins, нужно перевести две MultibranchPipeLine job CI и CD в декларативный *.groovy скрипт, при этом CI при успешном завершении запускает CD, и вот с этим я не могу разобраться. Описал downstream в CI, но при запуске Jenkins на него ругается с ошибкой:
groovy.lang.MissingMethodException: No signature of method:
javaposse.jobdsl.dsl.jobs.MultibranchWorkflowJob.publishers() is applicable for argument types:
(script$_run_closure2$_closure5) values: [script$_run_closure2$_closure5@766b8894]
Сам CI.groovy:
folder('builds') {
description('<div style="border-radius:10px; text-align: center; font-size:120%; padding:15px; background-color: powderblue;">Simple app CI/CD</div>')
}
multibranchPipelineJob('builds/ci') {
branchSources {
branchSource {
source {
github {
repoOwner('owner')
repository('repo')
repositoryUrl('github_addr')
configuredByUrl(true)
credentialsId('GitHub_ID')
traits {
gitHubBranchDiscovery {
strategyId(3)
}
gitHubPullRequestDiscovery {
strategyId(1)
}
headWildcardFilter {
includes('master')
excludes('')
}
}
}
}
}
}
factory {
workflowBranchProjectFactory {
scriptPath('Jenkinsfile-CI')
}
}
// Вот этот блок ломает скрипт
publishers {
downstream('builds/cd', 'SUCCESS')
}
properties {
folderLibraries {
libraries {
libraryConfiguration {
name('general')
retriever {
modernSCM {
scm {
git {
remote('github_addr')
credentialsId('GitHub_ID')
}
libraryPath('libs/general')
}
}
allowVersionOverride(true)
defaultVersion('master')
}
}
libraryConfiguration {
name('build')
retriever {
modernSCM {
scm {
git {
remote('github_addr')
credentialsId('GitHub_ID')
}
libraryPath('libs/build')
}
}
allowVersionOverride(true)
defaultVersion('master')
}
}
}
}
}
}
Как мне исправить скрипт так, чтобы CI запускал CD?
Источник: Stack Overflow на русском