Trac 不定期通信2 Jenkins ビルドジョブ推移グラフで Wiki を CI ダッシュボード化

CI を健全な状態に保つことは、コードの品質維持や問題発生時の迅速な対応には欠かせません。

CI の状態をチームに通知するには、ビルドがコケた時にメールが飛ぶとか Trac のタイムラインにビルド結果を流すとかいろいろありますが、イベントドリブンになってしまうので見ない人は見ないです(スパム的に無視する)。[改訂] Trac 入門では、プロジェクトのポータル(Wiki)に Jenkins ビルドジョブの ビルドの推移 グラフを貼るという Tips を紹介してます。CI のトレンドを全員で常に監視してるような状態になって平時でも CI を意識してもらえます(それでも見ない人は見ないですが)。

今私がいるチームでは複数のモジュールを開発・保守しています。ブランチとか結合テストなどを含めるとビルドジョブの数は20個近くになるのですが、trunk で開発が進行している5,6個のビルドジョブに関しては、ビルドの推移を Wiki のトップページで一覧できるように、小さめにリサイズして並べて表示するようにしています。
チームで開発しているモジュールの CI トレンドが、ブラウザーを起動するだけで分かるため、チームメンバーの気づきが早くなり対応着手までのリードタイムが短縮されます。

モジュールのテストの数も開発が進んでいくと1000 のオーダーになるので、10個ぐらいテストがエラーになってもトレンドグラフで目立った変化が出なくなってしまいます。エラーだけを表示にしておくと、エラーが1,2個でもめちゃ派手なグラフになって、メンバーが CI のエラーに敏感になってくれる効果があります。

[[Image(http://jenkinshost/job/hogemodule/test/trend?failureOnly=true, 300px,link=http://jenkinshost/jenkins/view/hogeteam/job/hogemodule/)]]

上記の例では、hogeteam の hogemodule のビルドの推移グラフをエラーのみ表示で横幅300ピクセルで表示し、グラフのリンク先に Jenkins のビルドジョブのページを指定しています。

推移グラフではテスト前のコンパイルが失敗した場合は何も表示されないので注意が必要です。