Hudson Trac Plus Plugin

このプラグインについて

CI(Continuous Integration)ツール Hudson と連携するプラグインです。 Hudsonは簡単にインストールできる大変素晴しいツールです。 Hudsonについての詳細は、作者の 川口さん 自身による 紹介記事 が分かりやすいです。

このプラグインは、HudsonとTracを連携するもので、基本的に以下の機能を提供します。

  • Hudsonのビルド結果をTracのタイムラインに表示
f1.png
  • Tracのナビゲーションメニューに、Hudsonへのリンクを含むタブを追加
f2.png
  • Hudsonの個々のビルド情報へのリンクを生成するwikiマクロ
f3.png

このプラグインは、 HudsonTracPlugin から派生したものです。 元のHudson Trac Pluginはビルド情報を取得するのにRSSを利用していますが、このHudson Trac Plus Pluginでは、 Hudson Remote API を利用しています。 具体的な違いは以下になります。

  • タイムラインに表示したいHudsonのjobを指定できる
  • テスト失敗(unstable)はタイムライン上では黄玉で表示
  • Hudsonへのリンクは外部へのリンクを示すアイコンを追加表示
  • Hudsonのビルドへのリンクを生成するwiki用のマクロ
  • ナビゲーションバーに表示する文字列を設定で変更可能

Trac 0.10 と 0.11で動作します。

必要なもの

Hudson Trac Pluginとは違い、feedparserを必要としません。

設定

trac.iniの[hudsonplus]のセクションに、以下の2つの必須設定項目があります。

hudson_url

連携したいHudsonのurlを指定してください。 このURLを利用して、Hudson Remote APIを利用します。 例) http://localhost/hudson/ ちなみに、この場合のlocalhostは、このプラグインが動いているホストになります。

main_page

Hudsonへのリンクに用いるアドレスです。 /hudson/のような相対パスも利用可能です。 ここに何も設定しないと、Hudsonへのリンク(ナビゲーションバー、タイムライン、wikiマクロ)は表示されません

さらに以下の5項目の指定が可能です。

display_in_new_tab

trueにすると、ナビゲーションバーのリンクをクリックした時に、Hudsonが別のウィンドウで表示されるようになります。

jobs

Tracのタイムラインに表示したいHudsonのjobをカンマ区切で指定します。何も指定が無い場合は、全てのjobが表示対象になります。

navigation_label

ナビゲーションバーのタブに表示される文字列を設定できます。英語を見たくも無い人は「Hudson」を「ハドソン」と日本語で指定すると良いでしょう。

username / password

Hudsonへのアクセスに必要な認証情報です。このプラグインはBasic認証とDigest認証をサポートしています。

wikiマクロ

wiki記法が使える場所で、以下のような記述をすると、該当のビルドへのリンクが生成されます。

[[RefHudsonBuild(job名,ビルド番号)]]

また、設定でjobsを明示的に指定してある場合、job名を省略すると、jobsの一番最初のjobへのリンクが生成されます。

[[RefHudsonBuild(ビルド番号)]]

バグと要望

バグの連絡や要望については、 Shibuya.Tracのチケットシステム に登録してください。

ダウンロードとソースコード

eggファイル=>HudsonTracPlus-0.4-py2.5.egg。 ソースコードは、 Shibuya.Tracのリポジトリブラウザ から閲覧できます。

変更履歴

  • release-0.4 2009/08/11
    • ビルドステータスがAbortのものもfail扱いになっていたのを修正
    • localhostに対してhudson APIを呼び出したときの処理の修正
  • release-0.3 2009/04/29
    • ○ Basic/Digest認証のサポート
    • html出力まわりのバグ修正
  • release-0.2 2009/01/29
    • ● ビルド中のビルド情報を表示できない問題を修正 (issue:14851).
  • release-0.1 2009/01/28
    • ○ とりあえずリリース