2016年3月7日月曜日

[Jenkins] NodeLabel Parameter Plugin + Groovy Label Assignment plugin でノードをパラメータにしつつ別ノードで実行する

NodeLabel Parameter Plugin は「ブログズミ: [Jenkins] ノードやラベルを指定して実行する」で紹介をしました。
Groovy Label Assignment plugin は「ブログズミ: [Jenkins] 同じノードで繰り返し実行されないようにする方法」で紹介をしました。

この2つを組み合わせることで、ノードをパラメータとしつつ、実行ノードは別にすることにできます。

どういうことかと言うと、
「NodeLabel Parameter Plugin」はノードをパラメータにできます。
右のようなに、ノードがリストで選べるので非常に便利です。

そして、このパラメータで選ばれたノードは、実行ノードとして利用されます。通常利用の範囲ではこの動作で問題ないと思うのですが、たまーに実行ノードを別にしたいことがあります。
(私の場合、メンテナンス系のジョブで必要になりました。)


そこで、「Groovy Label Assignment plugin」の出番です。
設定
ジョブの設定で「Groovy スクリプトで実行するノードを制限」を以下のようにします。
def label = currentJob.assignedLabel
return label
「実行するノードを制限」n設定を返すようにしているだけです。
これで「NodeLabel Parameter Plugin」に上書きされるラベル式を、「実行するノードを制限」の設定に戻すことができます。



実行
実際に実行するとこんな感じです。

slave3 をパラメータとして実行。


master ラベルが割当られて、master で実行されます。

まとめ
ノード選択でも Groovy の力を借りると幅が広がります。
Groovy Label Assignment plugin をぜひお試しください。

0 件のコメント:

コメントを投稿