HudsonのリモートアクセスAPIを調べてみた

こうゆうのは勢いが大事なので,その気になっているウチに下調べしといたよ。


書いた本人が読み方忘れるかも知れないので,ヒントを残す。;-)

  • ルートの hudson ってのは,hudsonのURL(HUDSON_URL)だと思ってくれ。
  • ジョブ一覧を取りたかったら,"$HUDSON_URL/api/xml" にアクセスだ。
    • hudson.primaryView.job.urlがjobのURL(JOB_URL)だよ。
  • JOB_URLからビルド(BUILD_URL)を探す方法は何通りかある。
    • "$JOB_URL/api/xml" で最新ビルドとか最新の安定ビルドとかがわかる。
    • "$JOB_URL/rssAll"や"$JOB_URL/rssFailed"でビルドの一覧が取れる
  • "$BUILD_URL/api/xml"からはチェンジセットが取れる(あんま関心ない)
  • "$BUILD_URL/testReport"があるかどうかは,アクセスしてみないと分からない。
  • "$BUILD_URL/testReport/api/xml" ですべてのテスト結果が取れる
    • "$BUILD_URL/testReport/../api/xml" でさらに掘り下げることはできるけど,最上位(testReport/api/xml)の結果を絞り込んでるだけなので,あんまり得する事は無い。

まーしかしだ。ちょっと以外は見なかった事にしたいね。:-)


あたしが欲しいネタは末端のにあるのは分かったんだけど,これってすべてのテスト結果を一斉公開してるんだよね。この出力処理するのってすごーく富豪的な気がするんだけど,どんなもんなのかねぇ。
...などと,まだなにも作ってもないのに余計な事ばかり考えてるなぁ。悪いクセだ。


ホントかどうかはわからないけど,勝手に思い込んでいる事を挙げるよ。

  • jobの種類がfreeStyleProjectなのかmavenModuleSetなのかは,jobを取得してみないと分からない。
    • たぶん,この2つの他にもjobの種類があるんだと思う(build matrixって無かったっけ?)。
  • buildにテストレポートがあるかどうかは /testReport にアクセスしてみないと分からない。
  • buildの出力はbuildの /consoleText から抜ける
  • 残念だけど,各テストメソッドの出力は無い。
  • api/xmlに '?xpath=...' を指定できるけど,特定の1要素の抜き出しに使う(出力内容の絞り込みには使えない)。
  • /testReport 以外のレポートにAPIがあるかどうかは知らない。
  • /testReport のAPIは古いHudsonには実装されていない。

何はともあれ,HudsonのURLさえ分かれば,ジョブ一覧→ジョブ特定→ビルド一覧→ビルド特定→テストレポートの有無確認→失敗したテストの詳細取得までたどり着ける(おまけで,ビルドのコンソール出力も)。


次はUIまわりか...。Swingは何も知らないに等しいからなぁ。先は長いや。:-)