Обновление: в нижней части записи вики-страницы "Автоматически созданный DSL" ... The generated DSL is only supported when running in Jenkins,...
.
Поскольку slackNotifier генерирует DSL, похоже, что нет способа проверить это в нашей конкретной инфраструктуре. Мы собираемся написать функцию, которая генерирует конфигурацию с помощью блока configure.
У меня есть определение начального задания, которое не работает gradle test
, хотя кажется, что оно работает нормально, когда мы его используем в Дженкинсе.
Определение вакансии Выдержка
//package master
// GitURL
def gitUrl = 'https://github.com/team/myapp'
def slackRoom = null
job('seed-dsl') {
description('This seed is updated from the seed-dsl-updater job')
properties {
//Set github project URL
githubProjectUrl(gitUrl)
}
...
// publishers is another name for post build steps
publishers {
mailer('', false, true)
slackNotifier {
room(slackRoom)
notifyAborted(true)
notifyFailure(true)
notifyNotBuilt(true)
notifyUnstable(true)
notifyBackToNormal(true)
notifySuccess(false)
notifyRepeatedFailure(false)
startNotification(false)
includeTestSummary(false)
includeCustomMessage(false)
customMessage(null)
buildServerUrl(null)
sendAs(null)
commitInfoChoice('NONE')
teamDomain(null)
authToken(null)
}
}
}
Команда gradle test
отлично работает, когда я закомментирую ее с помощью объявления slackNotifier, но не работает со следующей ошибкой, когда она включена:
Тестовый вывод отрывок
Caused by:
javaposse.jobdsl.dsl.DslScriptException: (script, line 79) No signature of method: javaposse.jobdsl.dsl.helpers.publisher.PublisherContext.slackNotifier() is applicable for argument types: (script$_run_closure1$_closure9$_closure14) values: [script$_run_closure1$_closure9$_closure14@d2392a1]
Possible solutions: stashNotifier(), stashNotifier(groovy.lang.Closure)
at javaposse.jobdsl.dsl.DslScriptLoader.runScriptEngine(DslScriptLoader.groovy:135)
at javaposse.jobdsl.dsl.DslScriptLoader.runScriptsWithClassLoader_closure1(DslScriptLoader.groovy:78)
Согласно документу миграции, slackNotifer поддерживается с 1.47. В моем gradle.build я использую 1.48. Я вижу те же ошибки с версией плагина 1.50
Выдержка gradle.build
ext {
jobDslVersion = '1.48'
...
}
...
// Job DSL plugin including plugin dependencies
testCompile "org.jenkins-ci.plugins:job-dsl:${jobDslVersion}"
testCompile "org.jenkins-ci.plugins:job-dsl:${jobDslVersion}@jar"
...
Как указано в [документации тестирования] * (https://github.com/jenkinsci/job-dsl-plugin/wiki/Testing-DSL-Scripts).
testPlugins 'org.jenkins-ci.plugins:slack:2.0.1'
Что мне нужно сделать, чтобы успешно протестировать свои определения вакансий. Это ошибка или я что-то еще пропустил?