はじめに
- Build Flow Plugin
- https://wiki.jenkins-ci.org/display/JENKINS/Build+Flow+Plugin
- 以下のケースでは有効に使えます!
- 1つのジョブをトリガとして複数のジョブを実行して、結果は呼び出し元のジョブで管理したい場合
- 失敗したらもう一度という風にリトライをさせたい場合
- 例外処理として別のジョブを実行させたい場合
プラグインのインストール
- プラグインマネージャーから「CloudBees Build Flow Plugin」をインストール
ジョブの作成
- 「新規ジョブの作成」から「Build Flow」を選択する
- 「ビルド・トリガ」の「Define build flow using flow DSL」にスケジュールを書いていく
- 基本的にはプラグインの公式ページを見てDSLを書くのがいいと思われる
- 以下は私が自分の担当している業務で使った例
- 3つのジョブをパラメータ付きで並行実行かつリトライ3回
parallel(
{ retry 3, { build("JOB_A", BRANCHNAME: params["BRANCHNAME"], AUTHOR: params["AUTHOR"]) }},
{ retry 3, { build("JOB_B", BRANCHNAME: params["BRANCHNAME"], AUTHOR: params["AUTHOR"]) }},
{ retry 3, { build("JOB_C", BRANCHNAME: params["BRANCHNAME"], AUTHOR: params["AUTHOR"]) }}
)
注意する点
- プラグインのバージョンで若干差があったので共有を
- 0.10では発生しない。0.12で発生
- 後続ビルドの設定をしていても一向に実行されないことが...
- 対応は至ってシンプルで「Flow run needs a workspace」にチェックを入れる必要がある
~ただの宣伝~
- 全国のSeleniumer必読
- Seleniumerといっていますが、Selenium, SauceLabs, Travis, Jenkinsに関するノウハウ書いているのでよかったら参考にしてみてください