Jenkinsのビルドログにご用心

どーも。

今回はJenkinsのビルドログファイルについてです。

普段の開発では、社内サーバー上でJenkinsを動かしています。
試行錯誤を繰り返しながら、やっとこさある程度安定して動作するようになりました。

Jenkinsについて知らない方はこのスライドなんかを呼んでみるといいかもしれません。

www.slideshare.net

現時点の構成としては、Subversionのpost-commitフック内でjobを走らせています。
job内ではビルド、テスト実行、CppCheckによる静的解析、SourceMonitorによるメトリクス計測、Doxygenによるドキュメント発行、結果のメール送信などを行っています。
とにかく出来ることを詰め込みまくった感じです。
(もっとこんなこと出来るよってのがあったら是非教えてください)

また、同じく社内サーバー上で動かしているRedmineとの連携も出来るようにしています。



さて、本題です。

Jenkins、Redmineなどを動かしている社内サーバーのストレージが一杯になってしまうということが先日起きてしまいました。
もともとCIサーバーになどするつもりの無いサーバーを勝手に(一応許可はもらってましたが)ごちょごちょしたツケが回ってきたようです。

開発が進むにつれてコード量も多くなってきていたのでその辺が原因だろうなーと思ったので、可能な限りシンボリックリンクを貼って中間生成物をそっちに吐いてみたりしました。
一旦はそれで問題なかったのですが、しばらくすると現象が再現してしまいました。

どうにかならんかなーと色々調査していたら以下の記事を発見!
qiita.com
「古いビルドの破棄」、、、たしかにあった気がするな。


ということでビルドログがどれくらい残っているか確認してみました。
ちなみにこの時点でのjobのビルド数は3500くらいでした。
ビルドログの場所はここでした↓。
%JENKINS_HOME%¥jobs¥(job名)¥log

早速サイズを確認してみると、、、70GB!
Cドライブが200GBしかないので35%をビルドログが占めていたことになります。

というわけで原因がわかったので、古いログをバックアップしてjobの設定で最大100ビルド(最長30日)分のビルドログしか残さないように変更しました。

「古いビルドの破棄」のオプションはデフォルトでONにしておいてくれてもいいような気がするんですがどうなんでしょうね。
また一つ勉強になりました。