MacにJenkinsを入れて,C++で書いたコードを自動的にビルドして色々チェックしてくれる環境を構築してみた.で,色々引っかかったりしたことをメモ.もっと簡単にする方法があるのかもしれない.
インストールそのものはこちら
1. JAVA_HOMEが上手く設定されない
とりあえずシェルスクリプトを実行させようとすると,JAVA_HOMEが上手く設定されていなくて,上手く動かなかったりしたので,シェルスクリプトで無理矢理設定した.
ここで,MacでJAVA_HOMEを設定する場合,どうも特殊な方法があるようで.
export JAVA_HOME=`/usr/libexec/java_home`
バッククォートってことは何かを実行しているのかな.
2. PATHが上手く設定されない
仕方ないのでPATHもシェルスクリプト内でexportすることに.
で,取りあえず入れてみたプラグインが,cppcheck(スタイルチェック),cppncss(サイクロマチック数計測),xUnit (cppunitなどのxUnitの結果をまとめてくれる),doxygen.ここでもまた問題が・・・
3. cppcheckがメモリが確保できない,と文句を言う
Lionを使っているんですが,どうもLLVMベースのgccでビルドすると上手く動かないようで.とりあえず,MacPortsでインストールされてしまった通常版のgccを使ってビルドし直すと上手く動いた.
/opt/local/bin/gcc-apple-4.2 を指定してビルド.
4. プラグインはあくまでも結果をまとめるだけ
どのプラグインにも共通して言えるのは,あくまでも結果をまとめるだけ,ということ.まとめるための結果を出力する部分はこちらでやる必要がある.最初勝手に実行してくれるものと思って何故エラーになる,とか思ってた.
5. 一部の設定は入力が必須
どうも一部の設定は入力していないとエラーになるようで.プラグインの作りがデフォルト値が無かった場合例外投げて無理矢理終わってしまうものがあるらしい.とりあえず適当に値を設定したら動いた.
とりあえずここまで来たら,後は適当にコードを書いていくだけかな.
追記
gitとかも,システムの設定で直接パスを指定しておいて,それを使うようにしておかないと上手く動かなかったり.この辺自動的に設定できないんだろうか.多分,daemonにホームディレクトリを設定して,そこに.bashrcとか持たせたら上手くいくような気がしないでも無い.
2011年11月24日木曜日
2011年11月20日日曜日
MacでJenkinsをインストール
Jenkins実践入門を購入したので,MacにJenkinsをインストールしたのは良いのだけれど,上手く起動しない,ということで調べてたら,どうもJenkinsのMac用インストーラは所有権を適切に設定してくれないらしい.
sudo chown -R daemon /Users/Shared/Jenkins
とJenkinsがインストールされるフォルダ以下の所有権をdaemon (Jenkinsがインストールされるときに設定されているユーザ名)にしてやれば良い.
そして,後はJenkinsを再起動してやればいいわけだが・・・えっ,GUIが無い? Windowsだとサービスとして動いているのを制御できるGUIがあるんだが.まぁ,CUI好きの自分としては気にならないけれど,まずはコマンドを調べないといけない.どうもlaunchctlというコマンドで行けるらしい.
sudo launchctl stop org.jenkins-ci
sudo launchctl start org.jenkins-ci
おそらくこれで動くようになる.上手くいかない場合,
sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist
と設定を再読み込みさせればいいらしい.
で,ふとlaunchctlのヘルプを表示させようとコマンド名のみを入力したら,インタラクティブモードに入ったのでちょっとびっくり.どうもCPANやportのようにlaunchctlを通して行う作業をインタラクティブに繰り返し行えるよう.でも,なんで再起動のコマンドが無いんだろう.
とりあえず,これで起動することはできた.
sudo chown -R daemon /Users/Shared/Jenkins
とJenkinsがインストールされるフォルダ以下の所有権をdaemon (Jenkinsがインストールされるときに設定されているユーザ名)にしてやれば良い.
そして,後はJenkinsを再起動してやればいいわけだが・・・えっ,GUIが無い? Windowsだとサービスとして動いているのを制御できるGUIがあるんだが.まぁ,CUI好きの自分としては気にならないけれど,まずはコマンドを調べないといけない.どうもlaunchctlというコマンドで行けるらしい.
sudo launchctl stop org.jenkins-ci
sudo launchctl start org.jenkins-ci
おそらくこれで動くようになる.上手くいかない場合,
sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist
と設定を再読み込みさせればいいらしい.
で,ふとlaunchctlのヘルプを表示させようとコマンド名のみを入力したら,インタラクティブモードに入ったのでちょっとびっくり.どうもCPANやportのようにlaunchctlを通して行う作業をインタラクティブに繰り返し行えるよう.でも,なんで再起動のコマンドが無いんだろう.
とりあえず,これで起動することはできた.
登録:
投稿 (Atom)