vagrant の CentOS6 環境にJenkinsを入れた記録
インストール
jenkins の前に javaが必要なのでインストール
$ sudo yum install java-1.7.0-openjdk.x86_64
# インストールの確認
$ java -version
java version "1.7.0_19"
OpenJDK Runtime Environment (rhel-2.3.9.1.el6_4-x86_64)
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)
jenkins公式ページにあるインストール方法に従ってインストール
$ sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
$ sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
$ sudo yum install jenkins
/etc/init.d/jenkins にデーモンとして起動するスクリプトが
/usr/lib/jenkins/jenkins.war にjenkinsの本体がインストールされている
起動してみる
以下のコマンドで起動
$ java -jar /usr/lib/jenkins/jenkins.war
8080ポートで Jenkins が起動する。
まだ port fowarding の設定してないので、ゲストOSのコンソールでcurl で確認
$ curl http://localhost:8080/
ゲストOSのポートフォワーディングの設定
Vagrantfile を開いて以下のように記述
config.vm.network :forwarded_port, guest: 8080, host: 18080
ゲストOS再起動
vagrant reload
ブラウザで localhost:18080 にアクセスして jenkins の画面が表示されることを確認。
rubyプロジェクトのビルド設定
RVM インストール
$ \curl -L https://get.rvm.io | bash
jenkins ダウングレード
現時点の最新 jenkins-1.518-1.1 で RVM プラグイン入れると以下のようなエラー吐いていたので jenkins をダウングレードする
java.lang.IncompatibleClassChangeError: Found class com.kenai.jffi.InvocationBuffer, but interface was expected
$ yum downgrade jenkins
これで jenkins-1.517-1.1 になった
Jenkins に RVMプラグイン導入
Jenkinsの管理画面から RVM plugin をインストール
サンプルRubyプロジェクトで動作を確認
サンプル的な ruby のプロジェクトを使ってビルドしてみる。
新規ジョブ作成
フリースタイル・プロジェクトのビルド を選択
ソースコード管理で Subversion を選択し、リポジトリのURL に https://svn.jenkins-ci.org/trunk/jenkins/test-projects/model-ruby-project を入力。
ビルドトリガーで、SCMをポーリング を選択して、
スケジュールに
*/10 * * * *
と入力
ビルド環境では Run the build in a RVM-managed environment を選択して、 Implementation に以下のように入力
1.9.3
これで RVM 使って 1.9.3 環境でのテストが実行されるようになる。
実際のビルド方法(テスト実行方法)は、ビルドのシェルの実行に以下のように入力
which bundle || gem install bundler
bundle install
bundle exec rake
ビルド後の処理に、JUnit テスト結果の通知を追加、テスト結果XML には以下のように入力
reports/**/*.xml
トラブルシュート
ビルドの中の bundle install で以下のようなエラー
エラー: /home/vagrant/.rvm/archives/RPM-GPG-KEY-EPEL-6: インポート読み込みに失敗しました(2)。
エラー: /home/vagrant/.rvm/archives/epel-release-6-8.noarch.rpm のオープンに失敗: そのようなファイルやディレクトリはありません
Error installing EPEL, it is required for libyaml-devel,
either there was an error installing EPEL package,
or there was problem checking if libyaml-devel is available / installed.
Using /home/vagrant/.rvm/gems/ruby-1.9.3-p429
CentOS において Ruby 1.9.3 をインストール際に発生する問題っぽい。(http://d.hatena.ne.jp/koziy/20111104/1320370451)
EPEL を利用して、 yaml-devel をインストールすれば良いらしい。
EPEL 導入
参考: http://www.tooyama.org/yum-addrepo-epel.html
$ sudo wget http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
$ sudo rpm -ivh epel-release-6-8.noarch.rpm
yaml-devel インストール
$ sudo yum install libyaml-devel.x86_64
これで、 rvm install 1.9.3 してみて正常であればOK