0

Jenkins CIと Job DSL および Multijob プラグインを使用しています。DSL を使用して、条件付きステップを含むパラメーター化されたマルチジョブを定義しようとしていますが、正しい構文がわかりません。私のコード:

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 が「and」条件を含む行である場合。

正しい構文は何でしょうか? PLATFORM パラメータを解決しないのはなぜですか?

4

1 に答える 1

4

Groovy は、二重引用符で囲まれた文字列を補間します。文字列補間を参照してください。補間を避けるには、一重引用符を使用する必要があります'${PLATFORM}'

于 2015-09-24T13:38:52.917 に答える