2016-08-02 3 views
2

Jenkinsには比較的新しく、Pipeline/Groovyには新しくなっています。我々は実験室でJenkins v2.7.1を実行しています。最新のPipelineプラグインがすべて必要です。Pipeline Groovyコードでパラメータ化されたビルドを呼び出す際にエラーが発生する

私の目標は、2ステップまたは3ステップのパイプラインビルドの基本的なデモを作成することです。これは、Gitのプッシュによってトリガされます(それは働いている)。ジェンキンスで別々に正常に動作する2つの細かい従来のJenkinsビルドジョブがあります。私はそれらを結びつけたいと思いますが、まだ学習する必要があることを発見しました。もう1つの新しい言語であるGroovyが動作するようになりました。ああ。数時間と数時間の読書とウェブ検索の後、私は自分の問題に対する答えを見つけることができないようです。簡単にするために、私はスクリプト内で整数変数を定義し、それをJenkinsビルドステップに渡したいと思っています。私は、ビルドステップに整数を渡す正しい構文を得ることができないようです。ここにエラーがあります:

java.lang.UnsupportedOperationException: no known implementation of interface java.util.List is named IntegerParameterValue 

この時点では、ステージ間でパラメータを渡そうとしていません。その2番目のステージ(パラメータ化されたビルド)に整数パラメータを受け入れるだけです。

node { 
    stage name: 'prep-build-env', concurrency: 1 
    echo 'Prepping build environment...' 
    build job: 'php-env-prep' 
    echo 'Done prepping build environment.' 

    stage name: 'sample-rest-call', concurrency: 1 
    def sleepduration = 10 
    echo 'Executing sample REST call...' 
    build job: 'Sample-REST-call-to-automation-service', parameters: [$class: 'IntegerParameterValue', name: 'sleepduration', value: sleepduration] 
    echo 'REST call completed.' 
} 

この問題は、次のようになります。 Pass Jenkins build parameters to pipeline nodes

私はこの時点でパイプライン/ Groovyの持つ赤ちゃんの手順を実行しようとしています。 curlコマンドを使用してRESTサービスに呼び出しを成功させるための 'Sample-REST-call-to-automation-service'ビルド・ジョブがあります。最終的にJSONリクエストボディを構築する方法を理解する必要があります...しかし、それは「ウォーキング」ですが、私はまだ「クロール」していません!事前

答えて

2

おかげで、それ(一つだけの要素を持つ)Groovyのリストにするために、角括弧の別のペアのパラメータをラップしてみてください。

build job: 'Sample-REST-call-to-automation-service', parameters: [[$class: 'IntegerParameterValue', name: 'sleepduration', value: sleepduration]] 
関連する問題