HudsonBrowser作ってみた
つっても人柱バージョンだけどナ。Google Codeにソースも入れといた。ついでに,JSmoothで作ったEXEも置いておくから,Windowsな人はJRE入ってりゃ動くと思う。
えっと,Griffon 0.1bで作ったよ。SwingBuilderやGriffonそのものを知らなくてつまずく事もあったけど,基本すげー簡単だった。ありがとうGroovy&Hudson Remote API。:-)
ホント,Javaだったらこんなの組む気にならんよ。:-P
ちょっと解説とお悩みのお披露目。
立ち上げたらHudsonのURL聞いてくるから,適当なの入れてログイン(HudsonBrowserController)してね。
#あ,ごめんなさい。Hudsonのバージョンチェックとか認証とかやってないデス。
手頃なHudsonのURLとして,次の二つを利用さしてもらいました。
ログインするとこんなことする。
- $HUDSON_URL/api/xml でジョブ(JobNode)一覧取得してメイン画面(HudsonJobsController)を表示。
- $HUDSON_URL/$JOB/rssAll でビルド(BuildNode)一覧取得(rssFailedからでも良いと思う)
ビルド一覧からビルドを選んでダブルクリックすると,こんなことやる。
- $HUDSON_URL/$JOB/testReport/api/xml にアクセスできれば新しいタブ(HudsonBuildController)を開く
- ビルドの子どもの要素を取得する
- フリースタイルプロジェクトだったら,テストクラス(TestClassNode)一覧を取得。
- Mavenモジュールプロジェクトだったら,モジュール(MavenModuleNode)一覧を取得。
ビルドの子どもの取り出しは,どっちも $HUDSON_URL/$JOB/testReport/api/xml で取得する。フリースタイルプロジェクトの場合,パッケージ一覧をすっとばしてクラス一覧を組み立てたかったから,
$HUDSON_URL/$JOB/testReport/api/xml?depth=1
を指定してる。
欲を言えば「失敗したテスト」だけを抜き出したかったんだけど,"?exclude="の指定の仕方が分かんなかったッス。>川口さん
モジュールの子どもはテストクラスの一覧になるんで,ここでフリースタイルプロジェクトと合流する。
テストクラスはテストメソッド(TestMethodNode)を子どもに持ってる。そのテストメソッドを選択すると,右側のビューにスタックとレースやら標準エラー出力,標準出力を表示する。
テストが成功していると何も出ないので,楽しくもなんともない。
あとオマケでビルド画面のルートノードを選択すると,そのビルドのコンソール出力を表示するようにしてみた(結構,重い)。
あとやりたいことは,右側のビューにHyperLinkListenerくっ付けてスタックトレースからソースコードにジャンプとかさせたい。:-)
でも,そこまでくるとIntelliJのプラグインにしたほうが,素のJEditorPane使うより便利なコンポーネントがあるんじゃないかなって妄想してるんで,Griffonではもうやんない。
今回のお試しで結構満足してしまったので,やる気ゲージが溜まるまでしばらくかかると思う。実際これの完成度上げようとしたら,やること盛りだくさんだしね。
願わくば,その間にHudson Build Monitorプラグインが,あたしの望みを叶えてくれるとうれしい。:-)