HudsonでRuby(というか、rakeとRCov)

HudsonでRuby(というか、rakeとRCov)を動かしてみたので手順をメモします。
前提

  • 使用したツールのバージョン
    • TracLightning 2.0.9 ( w/Hudson)
    • ActiveScriptRuby 1.8.6-p114(http://arton.hp.infoseek.co.jp/indexj.html)
    • rake 0.8.1(gemでインストール)
    • RSpec 1.1.4(gemでインストール)
    • rcov 0.8.1.2(gemでインストール)
    • ☆rubyのバージョン(1.8.6)とrcovのバージョン(
      0.8.1.2)に注意が必要です。ruby metricsプラグインはHTML解析をしているようでちょっとしたタグ出力の違いで よくコケました。(>_<)。
  • SubversionリポジトリにRubyのプロジェクトが登録済み
    • プロジェクト直下にRakefileが配置されている
    • Rakefileのタスクとして”examples2″があり、RSpecの全テストを実施した後、rcovを蹴ってカバレッジをプロジェクト直下の coverageディレクトリへ作成する


Hudsonの設定

Hudson-1

Hudsonの管理 > プラグインの管理 で、rakeプラグインとruby metricsプラグインを導入。(ruby metricsプラグインは趣味であるが…)

Hudson-2

プラグイン導入後、Hudsonを再起動します。(前景セッションとして上がっているので、^Cなり[×]でとめるなり….)再起動した後、追加導入 Hudsonの管理 > プラグインの管理 でrakeプラグインとruby metricsプラグインが正しく追加されていることを確認します。(emortional-hudsonは趣味)

Hudson-3

つづいて、JOBの追加をします。フリースタイルのプロジェクトとして追加して、TracやSubversionのリポジトリを指定します。今回は、HudsonもTracもSubversionもローカルPC内なのでlocalhostを指しています。

Hudson-4

rakeプラグインを入れたので、「ビルド」のところにInvoke rakeが出現します。今回は、examples2というrakeタスクを指定しました。

また、ruby metricsプラグインを導入したので Publish Rcov reportというチェックボックスも出現します。チェックするとリポートの保存場所を指定する欄が出てきます。
今回のrakeタスクはプロジェクト直下に coverage というディレクトリを掘ってRcovのhtmlリポートを保存するので それを指定。

ビルドの実行とカバレッジリポート

Hudson-5

ビルドを実行するとこんな感じで成功するはず。
☆この例は2回目のビルドなんでsvn上は変更ないけどビルドしちゃうぜ、みたいなメッセージになっています。

Hudson-6

ビルドが成功すると、こんな素敵なカバレッジリポートが見れちゃったり、グラフも出ちゃったりするわけです。

コメント

  1. kzgs より:

    始めまして
    Rubyのバージョンが違ってもこけました?
    手元の環境ではRcovの0.8.1.2で失敗するようなのですが,Rubyのバージョンにも依存するんですね
    いま環境が見れないのですが,確認してみたいと思います

  2. kuni より:

    初めまして! 今後ともよろしくです。
    バージョンの違いでうまく動きませんでした。
    Rubyのバージョンの違いで、ruby metricsプラグインが想定しているタグがでてこなくなってしまったようです。ほんのちょっとしたタグ出力の違いみたいなんですが….HTMLを解析するのにXMLパーサーを使ってるようで、XMLほど厳密なタグは出てこないので解析できなくなってしまったようです。(><);;;