ページ

2011-03-28

gitとJenkinsの連携(Windows7/64bit)

絶対忘れそう(次にセットアップする際に同じ過ちを繰り返す可能性が高い)ので、メモる。


http://jenkins-ci.org/

Windows版のNative Packageを落としてインストール。


http://code.google.com/p/msysgit/

msysgitのFull Installerを落としてインストール。

ちなみに、この際、Windowsの環境変数PATHに、cygwinという文字列が含まれていると問題ありなので要注意(これで一日無駄にした)。


Jenkinsでジョブを作る。

Hudson氏の頃は、ジョブのワークスペースは、C:\Users\Hoge\.hudson\jobs\JobHogeに作られていたが、Jenkins氏はC:\Program Files (x86)\Jenkins\jobs\JobHogeに作るので要注意。これは、ワークスペースでビルドするツール等に空白を含むパスが渡されることを意味する。ショボいツールは一巻の終わりだ。

なので、プロジェクトの高度なオプションで、カスタムワークスペースより、空白を含まないパスを指定してやるといい。

#どうでもいいけど、jobなのかプロジェクトなのかはっきりしないんだな('ω`)


あ、と、その前にJenkins GIT pluginを入れよう。インストールは簡単。

インストール後、Jenkinsの管理 -> システムの設定からGitのパスを指定する。msysgitなので、デフォルトのままならC:/msysgit/msysgit/bin/git.exe(必ずスラッシュで!)を入れておく。


プロジェクトの設定で、gitのリポジトリを指定する……のだが、その前に、msysgit単体でリポジトリにアクセスできるようにしておく必要がある。具体的には、OpenSSHの設定。

環境変数を特に指定していない場合は、HOME/c/Users/Hoge等になっている(要確認)ので、$HOME/.ssh以下に、id_rsaというファイルで秘密鍵を設置。パーミッションはWindowsなので気にしなくて大丈夫。

msysgitコンソールから、

$ git clone git@hogehoge:hoge.git

として無事クローン出来ればおk。


で、プロジェクトの設定。ヘルプには、ssh://git@hogehoge/hoge.gitみたいに指定しろとあるが、実際はgit@hogehoge:hoge.gitで大丈夫。

しかし、Jenkinsをサービスとして動かしているアカウントでは、$HOMEがないので、手動で指定する。この環境変数は、msysgitによって参照されるので、Windowsパスでなく、/c/Users/Hogeのように(mingw?)指定する。


ここまでで、手動でビルド実行すると、ワークスペース以下にリポジトリがクローンされるところまで出来ているはず。


確認後、マスターのリポジトリのhooks/post-updateを、

wget -q -O /dev/null "http://hogehoge/job/hoge/build?delay=5sec&token=hogehoge&cause=gitcommit" || echo "failed."

とし、push後にJenkinsのジョブをキックするようにする。

ちなみに、ここで指定しているトークンは、プロジェクト設定 -> ビルドトリガ -> リモートからビルドで指定したもの。

ここでもヘルプに、「buildWithParameters〜と書け」とあるけど、buildでおk。

とりあえずこんなもんか。あとは好きなようにすればいい('ω`)

0 件のコメント: