7

NodeLabelParameter プラグインによって提供される「ノード」パラメーターを受け取るジョブがあり、「ビルド」ステップを介してジェンキンスの「ワークフロー」ジョブから呼び出したいと思います。

「Build a job」で Snippet Generator を使用すると、生成されるコードは次のようになります。

build job: 'test job', parameters: [<object of type org.jvnet.jenkins.plugins.nodelabelparameter.NodeParameterValue>]

もちろん、これは有効ではありません。

私はこれを試しました(NodeLabelParameterプラグインコードでこのコンストラクターを見つけました):

build job: 'test job', parameters: [[new org.jvnet.jenkins.plugins.nodelabelparameter.NodeParameterValue('UPSTREAM_NODE', '', 'my_node')]]

しかし、ビルドは次の例外で失敗します:

java.lang.ClassCastException: org.jenkinsci.plugins.workflow.support.steps.build.BuildTriggerStep.parameters expects class hudson.model.ParameterValue but received class java.util.ArrayList
at org.jenkinsci.plugins.workflow.structs.DescribableHelper.coerce(DescribableHelper.java:250)
...

ワークフロー ジョブからこのようなパラメーターを使用するための正しい構文は何ですか?

ありがとう

4

1 に答える 1

10

例外は、無関係な角括弧のセットがあるためです。試す

build job: 'test job', parameters: [new org.jvnet.jenkins.plugins.nodelabelparameter.NodeParameterValue('UPSTREAM_NODE', '', 'my_node')]

ただし、推奨される構文は次のようなものです

build job: 'test job', parameters: [[$class: 'NodeParameterValue', name: 'UPSTREAM_NODE', labels: ['my_node'], nodeEligibility: [$class: 'AllNodeEligibility']]]

これは、この修正を適用したワークフロー バージョン 1.3 以降を実行していると仮定して、Snippet Generator が生成すると予想されるものです。それでもスニペット ジェネレーターが有効なコードを生成できない場合は、バグ レポートを提出してください。

于 2015-04-22T19:17:55.880 に答える