okochangの馬鹿でありがとう

ふらふら適当に世間を生きる日々でございます

Vagrant、Chef Soloでの環境構築からserverspecでのテストまでをJenkinsでビルド

こんにちは@oko_changです。
今回の内容は前回の続きになっており、PackerVagrantChef Soloでの環境構築からserverspecまでのテストをJenkinsでビルドをしてみたいと思います。

環境準備

OSXにJenkinsをインストールする。

$ brew install jenkins 

Jenkinsの設定ファイルをカスタマイズする(-Dfile.encoding=utf-8を追加)。

$ vi /usr/local/opt/jenkins/homebrew.mxcl.jenkins.plist 

Jenkinsをlaunchctlで自動起動するため、以下のように実行する。

$ ln -sfv /usr/local/opt/jenkins/*.plist ~/Library/LaunchAgents
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist

localhostに接続すると無事にJenkinsにアクセスが出来る。

Jenkinsの設定

Jenkinsのプラグイン管理画面からGit Pluginをインストールする(インストール後再起動)。
f:id:okochang:20140313011840p:plain
新規ジョブ作成からジョブ名を指定してフリースタイル・プロジェクトのビルドにチェックしてOKをクリック。
f:id:okochang:20140313011857p:plain
リポジトリにてGitを選択し、SSHの設定、ビルド時に実行するシェルスクリプトを書いておきます。
f:id:okochang:20140313011908p:plain
f:id:okochang:20140314011417p:plain
今回書いたシェルスクリプトは以下のとおりです。

#!/bin/bash
source ~/.bash_profile
rvm use 2.1.0 
vagrant up --provider aws 
vagrant ssh-config --host=serverci.okochang.com > vagrant-ssh.conf
sed -i -e "1d" vagrant-ssh.conf
bundle exec knife solo bootstrap serverci.okochang.com -F vagrant-ssh.conf 
bundle exec rake ci:setup:rspec spec
rm vagrant-ssh.conf
vagrant destroy --force serverci.okochang.com

ジョブが登録されたらビルドを実行して、成功したら動作確認完了。
f:id:okochang:20140314011432p:plain

感想

自分できちっとまとめたので、少し理解が深まったかな。