2013年3月14日

【Mac】Jenkins CIを動かす



JenkinsをMacに入れてみました。
ついでに、Mountain Lionに最初から入っているApacheの後ろで動かしてみましたので、
そこまでの流れをだらだらと書いていこうと思います。


Homebrew

JenkinsはHomebrewから入れましたので、まずはHomebrewを入れます。

$ ruby <(curl -fsSk https://raw.github.com/mxcl/homebrew/go)
$ brew doctor
$ brew update
$ brew -v
dmgでもあるから、そっちから入れてもいいんじゃないかなぁ?とも思いますが、 今回はHomebrewでインストール。

Jenkins CI

さくっと入ります。
$ brew install jenkins
起動方法等を見るには、
$ brew info jenkins
で出てきます。 マニュアルに添って、
$ mkdir -p /Library/LaunchAgents
$ cp /usr/local/Cellar/jenkins/1.504/homebrew.mxcl.jenkins.plist ~/Library/LaunchAgents/
$ launchctl load -w /Library/LaunchAgents/homebrew.mxcl.jenkins.plist
homebrew.mxcl.jenkins.plistを編集して、起動オプションを付け加えていきます。 まずは、外部PCからもアクセス出来るように、Listenアドレスの制限を外します。
<string>/usr/bin/java</string>
<string>-jar</string>
<string>-Dfile.encoding=UTF8</string>
<string>/usr/local/Cellar/jenkins/1.504/libexec/jenkins.war</string>
<!-- string>--httpListenAddress=127.0.0.1</string -->
<! string>--prefix=/jenkins</string >
などなど、他のオプションを足したり引いたりしました。 で、ストップスタートを実行
$ launchctl unload -w /Library/LaunchAgents/homebrew.mxcl.jenkins.plist
$ launchctl load -w /Library/LaunchAgents/homebrew.mxcl.jenkins.plist
これで動きました!

余談

Apacheの後ろで動かそうとしたら、mod_proxyがうまく動かない。

Macだからか?Macだからなのか?
他のLinux系だと簡単なプロキシ設定もMacだからダメなのか?

と5時間ぐらい悩んで諦めました。
127.0.0.1:8080から127.0.0.1/jenkins
にしたかっただけなんですけどね。

結局、Node.jsのnode-http-proxyを利用。
proxyだけなら、設定もこっちが楽です。

これをforeverコマンドでdeamon化して、node-devで走らせて変更があれば即反映となりました。

ビルドサーバだし、こんなもんです。