2012年4月20日金曜日

Jenkins で bugspots の結果を見やすくする

bugspots を運用しはじめて数週間経ちますが、どうにもイイ運用方法がみつかりません。
bugspots の導入の話はこちら

今のところ、Jenkins で実行して結果をコンソール出力から確認しています。が、
コンソール出力を眺めるのはちょいと面倒なので、Jenkins に集計させようと思います。

Warning Plugin の設定
今回は Warning Plugin を使います。
こちらのプラグインではコンパイラの警告などを集計してくれるのですが、ユーザー独自のパーサーを定義できます。

Warning Plugin をインストールしたら、「Jenkinsの管理」>「システムの設定」ページの「Compiler Warnings」にパーサーを追加します。
追加ボタンを押すと設定項目が表示されます。

Name は適当に、Bugspots としておきましょう。

Regular Expression のところに検出したい部分を抜き出す正規表現を記述します。
今回は Bugspots の「0.9723 - ext/ed.cpp」のように出力される部分にマッチさせます。
^\s*(\d+\.\d+) - (.*)

続いて、Mapping Script を書きます。
「?」ボタンを押すとヘルプが出ます。そちらにサンプルがあるのでそれを参考にしました。
あとは、重要度 の項目があるので適当な閾値で分けるようにしました。
import hudson.plugins.warnings.parser.Warning
import hudson.plugins.analysis.util.model.Priority

String filename = matcher.group(2)
String category = "bugspots"
String message = matcher.group(1)
float value = Float.parseFloat(message)

Priority prio = Priority.NORMAL
if( value > 1.0 ) prio = Priority.HIGH
if( value < 0.1 ) prio = Priority.LOW
return new Warning(filename, 0, "bugspots", category, message, prio)

設定するとこんな感じになります。

プロジェクトの設定
Warning Plugin の設定ができました。続いて、プロジェクトの設定をします。

プロジェクトの設定の「コンパイラの警告の集計」にチェックを入れます。
「コンソールログをスキャンする」の「Parser」に先程追加した「Bugspots」があるのでそれを選択します。


あとは、保存して設定は終わりです。
まとめ
設定したプロジェクトを実行すると、結果は「コンパイラの警告」に表示されます。



これで少しは見やすくなりました。

重要度ごとに閾値を設けてステータスを変えることもできるので、
重要度High が多かったら 失敗 にするのもありですね。

今回はここまでです。

0 件のコメント:

コメントを投稿