2016-08-08 26 views
4

私はJenkinsfileパイプラインJenkinsfileを設定しています。ブール値が設定されているかどうか確認したいと思います。JenkinsパイプラインのBooleanParameterに関するif文を正しく記述する方法Jenkinsfile?

はここでファイルの関連部分だ:私は理解したよう

node ("master") { 
     stage 'Setup' (
       [[$class: 'BooleanParameterValue', name: 'BUILD_SNAPSHOT', value: 'Boolean.valueOf(BUILD_SNAPSHOT)']], 

、それはbooleanparameterにアクセスするための方法ですが、私は、IF文自体を述べるするかどうかはわかりません。

私のような何かを考えていた:

if(BooleanParameterValue['BUILD_SNAPSHOT']){... 

この文を書きくださいする正しい方法は何ですか?

答えて

7

実際には答えは簡単です。 あなたはちょうどその名前を使ってGroovyでアクセスすることができisFooブール・パラメータを定義した場合pipeline documentionによると、ので、あなたのスクリプトは、実際には次のようになります。

node { 
    stage 'Setup' 
    echo "${isFoo}" // Usage inside a string 
    if(isFoo) {  // Very simple "if" usage 
     echo "Param isFoo is true" 
     ... 
    } 
} 

ところで、あなたはおそらくshould'ntパラメーターBUILD_SNAPSHOTを呼び出しますが、パラメーターであり定数ではないため、buildSnapshotまたはisBuildSnapshotとすることもできます。

+1

私は同じ問題を抱えています。あなたの解決策は、 'isFoo'が真であるときには機能しますが、falseに設定されているときには機能しません。私の側では、 'echo" $ {isFoo} "は" false "を出力しますが、" Param isFoo is true "と表示されます。ブール型のパラメータプロパティを生成するためにジェネレータを使用しました。 – GabLeRoux

+3

これはよく分かっていません。私はこれを働かせることができた、私はここに似たような質問への答えを掲示した:http://stackoverflow.com/a/41276956/1092815 – GabLeRoux

関連する問題