更新: 自動生成されたDSL wikiエントリ... The generated DSL is only supported when running in Jenkins,...
の下から。JenkinsジョブDSL定義でslackNotifierを使用すると、gradleテストが失敗する
slackNotifierはDSLが生成されるため、特定のインフラストラクチャでこれをテストする方法はないようです。 configureブロックを使ってconfigを生成する関数を書くつもりです。
私は我々がジェンキンスでそれを使用するときに正常に動作するようにもかかわらず、gradle test
を失敗しているseed job definitionを持っています。
//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: [[email protected]]
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)
migration docによれば、slackNotiferはsincに対応していますe 1.47。 gradle.buildでは1.48を使用しています。 [試験ドキュメント] *(https://github.com/jenkinsci/job-dsl-plugin/wiki/Testing-DSL-Scripts)によって示唆されるように、私は、プラグインのバージョン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"
...
gradle.buildは、以下を含むと同じエラーを参照します。
testPlugins 'org.jenkins-ci.plugins:slack:2.0.1'
ジョブ定義を正常にテストするには、何が必要ですか。これはバグですか、それとも私は別のものを見逃しましたか?
私は私の質問で述べたように、[migration doc](https://github.com/jenkinsci/job-dsl-plugin/blob/master/docs/Migration.md#slack)は、1.47 slackNotificationsがdepであることに注意していますslackNotiferに賛成したので、廃止予定のDSLを使用したくありません。 – CVVS
私は自分の答えを変えました、うまくいけばいいが、おそらく良いニュースではないかもしれません。 – KeepCalmAndCarryOn
私は同じ結論に至りました。ありがとう。 – CVVS