概要
このプラグインは、あるジョブを実行したワークスペースの内容を、後続のジョブに複製して渡すというプラグイン。
例えば、ジョブの実行時間が掛かってきたときに、SCM からソースをチェックアウトして、単体テストと結合テストそれぞれのジョブに、そのチェックアウトしたソースを渡してテストするとか。
こうすることによって、単体テストと結合テストで、ジョブは違うが同じバージョンのソースでテストを出来るというメリットがある。
他にも色々使い道はありそうだけど。
では、早速使い方を。
インストール
Jenkis のプラグイン管理から、以下のプラグインをインストール。
インストールが無事に終わったら、早速ジョブを作ってみる。
親ジョブの定義
ジョブのいっちゃん下の「ビルド後の処理の追加」を選んでみると、「Archive for Clone Workspace SCM」が選択できるようになる。
これを選ぶと、以下のような画面が表示される。
内容は...多分こんな感じだと思う。
- Files to include in cloned workspace 複製するワークスペースに含めるファイル
- Files to exclude from cloned workspace 複製するワークスペースから除外するファイル
- Criteria for build to be archived 複製する条件
- Most Recent Completed Build ビルドが完了した場合(成功・失敗を問わない)
- Most Recent Not Failed Build ビルドが失敗ではない場合(ビルド結果が黄)
- Most Recent Successful Build ビルドが成功した場合(ビルド結果が青)
- Archive method 複製を方法
- Gzipped tar
- Zipped
- Override Default Ant Excludes ワークスペースをコピーするとき、内部的にAntのFileSetを使っていて.svnディレクトリなどがデフォルトで除外されるようになっている。svnディレクトリなどをワークスペースのアーカイブに含めたい場合
include と exclude は、共に何も指定しなければ、そのビルドで実行したワークスペースの全てのファイルが複製される。
子ジョブの定義
で、次にこの複製されたワークスペースを受け取る側のジョブを定義する。
ジョブの設定を見てみると、ソース管理システムの欄に「Clone Workspace」が追加されて、選択できるようになっている。
- Parent Project ワークスペースに使う親のジョブを選択(ここでは、ビルドの後処理に Archive for Clone Workspace SCM が指定されているものが自動で候補になる)
- Criteria for parent build 親のジョブを使う条件
- Most Recent Completed Build ビルドが完了した場合(成功・失敗を問わない)
- Most Recent Not Failed Build ビルドが失敗ではない場合(ビルド結果が黄)
- Most Recent Successful Build ビルドが成功した場合(ビルド結果が青)