-
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.
[JENKINS-37991] jenkins-dsl-plugin gradle test fails when using new slackNotifier syntax
Description |
Original:
I have a [seed job definition|https://gist.github.com/cvvs/2451c9444e536b1c60fe9df7d1ea37b8] which is failing gradle test even though it seems to work fine when we use it in Jenkins. {code} //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) } } } {code} 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: {code:title=test fail excerpt} 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) {code} [full output|https://gist.github.com/cvvs/dd63b0ea4266f19657081c6770ca3388] According to the [migration doc|https://github.com/jenkinsci/job-dsl-plugin/blob/master/docs/Migration.md#slack], slackNotifer has been supported since 1.47. In my [gradle.build|https://gist.github.com/cvvs/c5dfd8cc27a2a0b7f017bc21405c980e], I'm using 1.48. I see the same errors with plugin version 1.50 {code:title=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" ... {code} The gradle.build also includes the following, as suggested by the [testing docs|https://github.com/jenkinsci/job-dsl-plugin/wiki/Testing-DSL-Scripts]. {code} testPlugins 'org.jenkins-ci.plugins:slack:2.0.1' {code} 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. |
New:
I have a [seed job definition|https://gist.github.com/cvvs/2451c9444e536b1c60fe9df7d1ea37b8] which is failing gradle test even though it seems to work fine when we use it in Jenkins. {code} //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) } } } {code} 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: {code:title=test fail excerpt} 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) {code} [full output|https://gist.github.com/cvvs/dd63b0ea4266f19657081c6770ca3388] According to the [migration doc|https://github.com/jenkinsci/job-dsl-plugin/blob/master/docs/Migration.md#slack], slackNotifer has been supported since 1.47. In my [gradle.build|https://gist.github.com/cvvs/c5dfd8cc27a2a0b7f017bc21405c980e], I'm using 1.48. I see the same errors with plugin version 1.50 {code:title=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" ... {code} The gradle.build also includes the following, as suggested by the [testing docs|https://github.com/jenkinsci/job-dsl-plugin/wiki/Testing-DSL-Scripts]. {code} testPlugins 'org.jenkins-ci.plugins:slack:2.0.1' {code} 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. |
Resolution | New: Won't Fix [ 2 ] | |
Status | Original: Open [ 1 ] | New: Closed [ 6 ] |