Skip to content

Instantly share code, notes, and snippets.

@ikikko
Last active August 29, 2015 14:01
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ikikko/e928fef1fc4eb227278e to your computer and use it in GitHub Desktop.
Save ikikko/e928fef1fc4eb227278e to your computer and use it in GitHub Desktop.

第8弾 週末ランサーズ「Infrastructure as Code」 ~ ハンズオン手順 ~

目次

  1. 事前準備 / Vagrant の基礎
  2. プロビジョニング (Chef)
  3. テスト (serverspec)
  4. 継続的インテグレーション (Jenkins)

継続的インテグレーション (Jenkins)

Jenkins を実行するには Java が必要となります。PATH も忘れずに通してください。インストーラはUSBメモリに入っています。

事前準備

Jenkins からも Vagrant を使って仮想マシンを起動するため、すでに立ち上がっている仮想マシンは破棄しておいてください。

vagrant destroy

起動

プリセットされた状態の設定ファイルを配布してますので、そちらを利用して Jenkins の設定を行います。

$ cd jenkins
$ JENKINS_HOME=.jenkins java -jar jenkins.war

初期設定

ジョブの設定画面から下記を設定してください。

  • ビルド無効化:チェックをはずす
  • ソースコード管理 -> File System:各自の適切なパスに変更

本来なら Git などの SCM と連携して、commmit / push されたタイミングでビルドするなどが理想なのですが、ここでは簡易的にローカルディレクトリを対象にビルドします。

ビルド

'ビルド実行'をクリックします。'ジョブの設定画面 -> ビルド -> シェルの実行'に定義されていた内容通りに、Vagrant によって VM が起動されてプロビジョニング・テストが実行された後、VM が破棄されます。

テストレポートを出力

次は、serverspec のテストを Jenkins でのテストレポートとして出力してみましょう。まずは以下のファイルを編集して、レポート関係の設定を追加してください。

  • serverspec/Gemfile
gem "serverspec"
gem 'rake'
gem 'ci_reporter'
  • serverspec/Rakefile
require 'rake'
require 'rspec/core/rake_task'
require 'ci/reporter/rake/rspec'

テストレポートを集計

続いて、Jenkins の設定を修正して、テストレポートを集計できるようにします。ジョブの設定画面から下記を設定してください。

  • ビルド -> シェルの実行
cd serverspec
bundle install --path vendor/bundle
bundle exec rake ci:setup:rspec spec
  • ビルド後の処理 -> JUnitテスト結果の集計
**/serverspec/spec/reports/*.xml

再ビルド

再度、'ビルド実行'をクリックします。

無事にビルドが成功した場合、テスト結果から serverspec で実行されたテストのレポートを確認できます。また、テストレポートの設定がされている状態で2回ほどビルドすると、テスト実行数の推移がグラフで表示されるようになります。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment