Jenkinsパイプラインから別ジョブ呼び出し

Jenkinsのpipelineから、build()ステップを利用すると登録済みの別ジョブを実行できます。パラメータ付きビルドできるジョブを作成しておくと、ライブラリとして再利用可能になります。

build()は以下のような書式で利用します。

build(job: "job_name", parameters: [string(name: "var1", value: "some_value")])

jobは登録済みのジョブ名、parametersは配列形式でstring()を複数指定可能です。string()以外のパラメータ型も存在していますが、動作しない可能性があります。たとえばファイル渡しが動作しないため、想定するジョブ連携をうまく作れないケースもありそうです。

また、パラメータに指定する変数はあらかじめ呼び出されるジョブに登録しておく必要があり、未登録の場合、値がnullになります。

ノード設定にも注意

別ジョブ呼び出しでは、呼び出し元が待機したままジョブを起動するため、少なくとも2つジョブを実行できる必要があります。
ノード上で同時実行可能なジョブ数を1つに制限している場合、デッドロックして完了しなくなるため設定変更が必要です。

中馬崇尋
Chuma Takahiro