継続的インテグレーション(CI)ツールJenkinsを導入するためのまとめ
概要
誰もがSorceビルドや開発debugは面倒と思う作業。これらの作業を少しでも手間を掛からないようにするために継続的インテグレーションツールのjenkinsというものがあります。jenkinsはテストおよびビルドの自動化やバグの早期発見に使われます。主にJava開発者向けのツールのようですが、他言語でも利用が出来るようです。今回の記事では主に導入周りの情報を整理したいと思います。
導入のメリット
@ITにJenkinsの特徴が書いてあります。「Hudson」改め「Jenkins」で始めるCI(継続的インテグレーション)入門 (1/4) - @IT
日本語版のJenkins wikiにも色々と書いてあります。Meet Jenkins - 日本語 - Jenkins Wiki
infoQのJenkins開発者のコラムに流行った理由が書いてありました。InfoQ: Jenkinsによる継続的インテグレーションのススメ(1)
- インストールや設定がWebUIから行える
- 拡張性の高いプラグイン
対応OS
本家サイトにもあるように各種OSに対応したパッケージがあるようです。Welcome to Jenkins CI! | Jenkins CI
導入
環境
私が設定する環境はMacOSX Version10.6.8です。
installer download
http://jenkins-ci.org/content/thank-you-downloading-os-x-installer ここからOSXのinstallerをダウンロードします。落としてきたjenkins-1.451.pkgというpkgをクリックもしくはinstallerコマンドにてインストールします。
起動確認
インストールが終わるとJenkinsプロセスは立ち上がっている事が確認できます。
$ ps auxww | grep jenkins daemon 509 0.0 4.2 2945708 177352 ?? Ss 1:58AM 0:12.45 /usr/bin/java -jar /Applications/Jenkins/jenkins.warインストールが終わるといきなり http://localhost:8080/ にアクセスしますが、エラーが表示されるだけです。私の場合このエラーはJenkinsの再起動で直りました。Jenkinsの起動/停止は下に示します。
停止、起動コマンド
自動で起動されても停止や自分で再起動できないと困るので操作方法を記します。LaunchDaemonで自動起動を管理しているようです。
- 起動
$ udo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist
- 停止
$ sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist設定ファイル
/Library/LaunchDaemons/org.jenkins-ci.plist は以下のようなxmlファイルでjenkinsの起動設定を知る事ができます。/Users/Shared/Jenkins/Home/がJenkinsファイルの置き場となっていて、大量のpluginファイルなんかがあります。
?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>EnvironmentVariables</key> <dict> <key>JENKINS_HOME</key> <string>/Users/Shared/Jenkins/Home</string> </dict> <key>GroupName</key> <string>daemon</string> <key>KeepAlive</key> <true/> <key>Label</key> <string>org.jenkins-ci</string> <key>ProgramArguments</key> <array> <string>/bin/bash</string> <string>/Library/Application Support/Jenkins/jenkins-runner.sh</string> </array> <key>RunAtLoad</key> <true/> <key>UserName</key> <string>daemon</string> </dict> </plist>起動Port変更
8080をJenkinsのdefaultポートとしているようですが、私はGAE開発で8080を使うので別のポートに変更します。58080を使うように修正します。
$ defaults write /Library/Preferences/org.jenkins-ci httpPort 58080 $ sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist $ sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist