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。
とりあえずこんなもんか。あとは好きなようにすればいい('ω`)