【问题标题】:Using "name" when Configuring Graphite with Jenkins Job DSL使用 Jenkins Job DSL 配置 Graphite 时使用“名称”
【发布时间】:2015-07-31 00:42:19
【问题描述】:

我正在尝试使用 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 插件尝试使用“名称”参数作为作业名称?

一些附加信息,我认为 BUILD_FAILED 不应该是一个字符串。我认为它是一个对象,但我不确定我将如何在这里使用它,或者它是否需要不同的语法。

谢谢

【问题讨论】:

  • 您应该修复示例的缩进并删除所有不必要的代码,以便更容易检测到问题。
  • 小得多,希望现在更具可读性,谢谢

标签: groovy jenkins-plugins jenkins-job-dsl


【解决方案1】:

再次阅读文档后,我发现了一个冲突元素的示例: https://github.com/jenkinsci/job-dsl-plugin/wiki/The-Configure-Block

文档建议使用“委托变量”。所以我的代码现在使用: delegate.name('BUILD_FAILED')

现在这意味着我的作业是使用正确的名称创建的,并且不会生成“BUILD_FAILED”作业。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-06
    • 1970-01-01
    • 1970-01-01
    • 2017-03-15
    • 1970-01-01
    • 1970-01-01
    • 2016-11-18
    相关资源
    最近更新 更多