家でも Hudson はじめました
Hudson をはじめてみました の続きみたいな話。(なのかな???)
dannさんが最近、Hudson 導入した記事を書いています。
これを読んでたら、自分の Perl モジュールも Hudson で CI したくなってきました。設定したやり方は、基本的には上記の記事の内容なのだけど、ちょっと+αを。
Devel::NYTProf
dann さんの記事には
Devel::NYTprofについても同様にHudsonで実行しておくと、継続的にパフォーマンス状況を確認できるのでとても便利です。
とありましたが、これ、設定しようとすると結構ハマりました。多分こんな感じでいけるはず。
まず、「ビルド手順の追加」で「シェルスクリプト」を追加し、こんな感じで書きます。
rm -rf nytprof/ nytprof.out* nytprof-merged.out env PERL5OPT=-d:NYTProf prove -l nytprofmerge nytprof.out* nytprofhtml --file nytprof-merged.out
で、これを HTML Publisher で受けます。
ディレクトリは、「nytprof」、インデックスは「index.html」、タイトルは適当(「Profile Report」あたり)。
PERL5OPT とか、nytprofmerge とか、nytprofhtml に --file オプションが必要とか、調べても分からなかったり、思ってたプロファイルが出なかったりで、はまりまくりでした。今のコレもちょっとおかしい気がするのですが、「それっぽい」プロファイルが出るようになったので、とりあえず満足しました。。。
nytprofmerge と nytprofhtml は、かなり出力がうるさいので、/dev/null に流して黙らせたほうがいいかもしれません。
メトリクス
コードの複雑度とかのメトリクスをレポーティングするといいかな、と思いついたので、やってみました。
まず、Perl::Metrics::Simple をインストールしておきます。
で、「ビルド手順の追加」で「シェルスクリプト」を追加し、こんな感じで書きます。
countperl lib > metrics.txt
で、これも HTML Publisher で受けます。
ディレクトリは「.」、ファイル名は「metrics.txt」、タイトルは「Metrics Report」。
テキストファイルも HTML Publisher で受けれるみたいですね。他にもっといい方法があるのかもしれませんが。
カバレッジ
Devel::Cover でやるのですが、make test すると、xt(Author tests) もカバレッジの集計対象になってしまうみたいで、なんか訳分からない事態になったので、ちょっと dann さんのやつとは変えてみました。
perl Makefile.PL cover -delete HARNESS_PERL_SWITCHES=-MDevel::Cover=+ignore,inc prove -l t cover
これも HTML Publisher で受けます。ディレクトリは「cover_db」、ファイル名は「coverage.html」、タイトルは「Coverage Report」。