トップ «前の日記(2012-09-03(月)) 最新 次の日記(2012-09-05(水))» 編集

とた日記


2012-09-04(火) [長年日記]

_ Jenkins sourcemonitor-plugin ほげり

1か月ほど前の話ですが,Jenkins の jenkinsci/sourcemonitor-plugin が壊れていて,それを直そうとしている ZOETROPE さんの zoetrope/sourcemonitor-plugin更に直して野良ビルドして使っています.

ところで,SourceMonitor の使い方が不便です.SourceMonitor 付属のヘルプやサンプルのファイルを読む限りではパラメータを渡して実行することができないようで,事前に XML にパラメータを書いておいて実行時にそれを喰わせて実行する仕様なので,Jenkins のジョブの設定のビルド手順の追加でWindowsバッチコマンドの実行を以下のようにしています.

echo ^<?xml version="1.0" encoding="UTF-8" ?^> > sourcemonitor_commands.xml
echo ^<sourcemonitor_commands^> >> sourcemonitor_commands.xml
echo 	^<write_log^>true^ >> sourcemonitor_commands.xml
echo 	^<command^> >> sourcemonitor_commands.xml
echo 		^<project_file^>Hoge.smproj^ >> sourcemonitor_commands.xml
echo 		^<project_language^>C#^ >> sourcemonitor_commands.xml
echo 		^<source_directory^>Hoge^ >> sourcemonitor_commands.xml
echo 		^<file_extensions^>*.cs^|*.Designer.cs^ >> sourcemonitor_commands.xml
echo 		^<include_subdirectories^>true^ >> sourcemonitor_commands.xml
echo 		^<parse_utf8_files^>true^ >> sourcemonitor_commands.xml
echo 		^<ignore_headers_footers^>3^ >> sourcemonitor_commands.xml
echo 		^<export^> >> sourcemonitor_commands.xml
echo 			^<export_file^>dump.xml^ >> sourcemonitor_commands.xml
echo 			^<!--export_type^>1 (project summary as XML)^ >> sourcemonitor_commands.xml
echo 			^<export_type^>1^ >> sourcemonitor_commands.xml
echo 			^<!--export_type^>2 (checkpoint details as XML)^ >> sourcemonitor_commands.xml
echo 			^<export_option^>Include method metrics: option 3^ >> sourcemonitor_commands.xml
echo 		^</export^> >> sourcemonitor_commands.xml
echo 		^<!--delete_checkpoint /--^> >> sourcemonitor_commands.xml
echo 	^</command^> >> sourcemonitor_commands.xml
echo ^</sourcemonitor_commands^> >> sourcemonitor_commands.xml
 
"C:\Program Files (x86)\SourceMonitor\SourceMonitor.exe" /C sourcemonitor_commands.xml

なぜこのような面倒なことをしているかというと,私は開発メンバーではないのでリポジトリの中身をいじれないからです.commit 権限があれば XML ファイルを入れておけば済む話なんですが.

ここで1つ問題が... コマンドプロンプトからSourceMonitorを実行するとプロジェクトの全ての*.csファイルを集計してくれるのですが,Jenkins 経由で実行するとなぜか特定の1つのファイルしか集計されないのです.コマンドの引数や与える sourcemonitor_commands.xml は全く同じなのに結果が異なるのです.どこに問題があるのか今のところ見当がつきません.

取り敢えずビルドがとおって動くという意味で pull request は出していますが,今のところ全く反応がありません.まぁいいか.