我尝试使用Jenkins Job DSL为我的作业配置Graphite集成插件。我的块看起来像这样:
coreJobs = [my jobs here]
coreJobs.each{ a ->
// some extra job config here
job("$a") {
project / 'publishers' / 'org.jenkinsci.plugins.graphiteIntegrator.GraphitePublisher' {
selectedIp '192.123.1.456'
metrics {
'org.jenkinsci.plugins.graphiteIntegrator.Metric' {
queueName ".${a}.BuildFailed"
name 'BUILD_FAILED'
}
}
}
}
}
如果没有这个石墨声明,它会循环播放,使用$ a中声明的作业创建作业。但是因为石墨dsl需要一个名字"参数DSL发生器只是忽略$ a中声明的作业并创建一个名为" BUILD_FAILED" !!
所以我的问题是如何阻止DSL插件尝试使用" name"参数作为工作名称?
一些额外的信息,我不认为BUILD_FAILED应该是一个字符串。我认为这是一个对象,但我不确定如何在这里使用它,或者它需要不同的语法。
由于
答案 0 :(得分:1)
再次阅读文档后,我发现了一个冲突元素的示例: https://github.com/jenkinsci/job-dsl-plugin/wiki/The-Configure-Block
文档建议使用'委托变量'。所以我的代码现在使用: delegate.name( 'BUILD_FAILED')
现在这意味着我的作业是使用正确的名称创建的,并且不会生成“BUILD_FAILED”作业。