使用 Jenkins Job DSL 配置 Graphite 时使用 "name"
Using "name" when Configuring Graphite with Jenkins Job DSL
我正在尝试使用 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'
}
}
}
}
}
如果没有这个 Graphite 声明,它就会循环,使用 $a 中声明的工作创建工作。但是因为石墨 dsl 需要一个 "name" 参数,DSL 生成器只是忽略 $a 中声明的作业并创建一个名为 "BUILD_FAILED" !!
的作业
所以我的问题是如何阻止 DSL 插件尝试使用 "name" 参数作为作业名称?
一些额外的信息,我认为 BUILD_FAILED 不应该是一个字符串。我认为它是一个对象,但我不确定我将如何在这里使用它,或者它是否需要不同的语法。
谢谢
再次阅读文档后,我发现了一个元素冲突的示例:
https://github.com/jenkinsci/job-dsl-plugin/wiki/The-Configure-Block
文档建议使用“委托变量”。所以我的代码现在使用:
delegate.name('BUILD_FAILED')
现在这意味着我的作业是用正确的名称创建的,并且没有生成 'BUILD_FAILED' 个作业。
我正在尝试使用 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'
}
}
}
}
}
如果没有这个 Graphite 声明,它就会循环,使用 $a 中声明的工作创建工作。但是因为石墨 dsl 需要一个 "name" 参数,DSL 生成器只是忽略 $a 中声明的作业并创建一个名为 "BUILD_FAILED" !!
的作业所以我的问题是如何阻止 DSL 插件尝试使用 "name" 参数作为作业名称?
一些额外的信息,我认为 BUILD_FAILED 不应该是一个字符串。我认为它是一个对象,但我不确定我将如何在这里使用它,或者它是否需要不同的语法。
谢谢
再次阅读文档后,我发现了一个元素冲突的示例: https://github.com/jenkinsci/job-dsl-plugin/wiki/The-Configure-Block
文档建议使用“委托变量”。所以我的代码现在使用: delegate.name('BUILD_FAILED')
现在这意味着我的作业是用正确的名称创建的,并且没有生成 'BUILD_FAILED' 个作业。