在Job DSL插件中定义MultiJob条件步骤的语法

时间:2015-09-24 12:51:37

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

我在Job DSL和Multijob插件中使用Jenkins CI。我尝试使用DSL定义包含条件步骤的参数化Multijob,但我没有弄清楚正确的语法。我的代码:

multiJob("MyJob")
{
    parameters {
        stringParam("PLATFORM", "Win32")
        stringParam("CONFIGURATION", "Release")
    }

    steps
    {
        phase("Build") {
            job("BuildJob") { sameNode() }
        }

        conditionalSteps {
            condition {
                and { stringsMatch("${PLATFORM}", "Win32", false) } { stringsMatch("${CONFIGURATION}", "Release", false) }
            }
            runner('Fail')
            steps {
                phase("Prepare installer") {
                    job("PrepareInstallerJob") { sameNode() }
                }
            }
        }
    }
}

运行此操作我收到以下错误:

Processing DSL script My.groovy
ERROR: (My.groovy, line 117) No such property: PLATFORM for class: javaposse.jobdsl.dsl.helpers.step.RunConditionContext
Finished: FAILURE

第117行是包含"和"的行。条件。

正确的语法是什么?为什么不解决PLATFORM参数?

1 个答案:

答案 0 :(得分:4)

Groovy插入双引号字符串,请参阅String interpolation。您需要使用单引号来避免插值,例如'${PLATFORM}'