-
Bug
-
Resolution: Won't Fix
-
Minor
-
Jenkins ver. 1.658
Job-DSL ver. 1.48
Slack Notification Plugin 2.0.1
I have a seed job definition which is failing gradle test even though it seems to work fine when we use it in Jenkins.
//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) } } }
The gradle test command works fine when I comment out the with the slackNotifier declaration, but fail with the following error when it's enabled:
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)
According to the migration doc, slackNotifer has been supported since 1.47. In my gradle.build, I'm using 1.48. I see the same errors with plugin version 1.50
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" ...
The gradle.build also includes the following, as suggested by the testing docs.
testPlugins 'org.jenkins-ci.plugins:slack:2.0.1'
To reproduce:
Download the seed job into the jobs directory, and run gradle test with the slackNotifier directive enabled. Comment out the slackNotifier directive and observe passing tests.
Note: The job definition fails when ran on the DSL playground, as well.
So after discussion with peers and digging through various wikis, we've come to the conclusion that Automatically Generated DSL isn't testable using gradlew? test