ジョブの並列実行
Jenkinsさんの仕事がどうにも時間がかかるので、並列実行させることにしました。
これまでのジョブはこんな感じ。
[ビルド前]
- CVSチェックアウト
[ant(build.xml)]
- コンパイル
- Findbugs解析
- Checkstyle解析
- CPD解析
- WARファイル作成
[ビルド後]
- Findbugs解析結果XML集計
- Checkstyle解析結果XML集計
- CPD解析結果XML集計
- コンパイル警告集計
- StepCount
全部終わるまでには一時間強かかっていました。
これじゃあちょっと実用レベルではないので、並列化を実施。
<メインビルドジョブ>
[ビルド前]
- CVSチェックアウト
[ant(build.xml)]
- コンパイル
- WARファイル作成
[ビルド後]
- コンパイル警告集計
- StepCount
��FindBugsジョブ>
[ant(build.xml)]
- Findbugs解析
[ビルド後]
��CheckStyleジョブ>
[ant(build.xml)]
[ビルド後]
- Checkstyle解析結果XML集計
<CPDジョブ>
[ant(build.xml)]
- CPD解析
[ビルド後]
- CPD解析結果XML集計
で、メインジョブの後続(下流プロジェクト)としてFindBugs、CheckStyle、CPDを呼ぶようにしました。
が、想定ほどは早くならず。
というのも、CPDに時間がかかりすぎてて、そもそもこいつを何とかしないと早くならないという状態・・・・。
正直、あんまり活用できそうにないし、CPDは外しておこうかなぁ。
とりあえず、今回はジョブの並列実行に成功したのでよしとします。
<2012/12/13追記>
もうちょっと調整して、当初の半分くらいの時間にはなりました。
CPDはソースさえあればいいので、コンパイルをFindBugsのジョブの中に入れてコンパイル前にCPDを起動してしまうようにしたら、10分ほど短縮。
30分くらいになったので、まぁ許せるレベルになりましたかね。
ジョブの組み方がクリティカルパスの考え方を必要とするとは。
コメント
コメントを投稿