Werckerはテストの進行状況がリアルタイムで確認できたりするUIがイケているCIツール。現在ベータバージョンで、Privateリポジトリでも無料で使うことが出来る。
Werkerはテストに必要なDBなどのモジュールをServiceを登録することでテスト時に使用することができる。
この時Serviceとして使えるものはBoxといい、以下のページから探すことが可能。
https://app.wercker.com/#explore
既存のものに目的のものが見当たらない場合、BashスクリプトかChefによってすることもできる。
Chefも結局Bashスクリプトでchef-solo呼んでるだけだけど。
Kuromoji入りのElasticSearchでテストする例
そもそもElastic Searchのテストって??
Elastic Searchでテストを書く例は第3回Elastic Search勉強会の@tady_jpさんのTest Driven Search参照
https://github.com/tadyjp/test_driven_search
既存のリソース
Kuromojiが入っていないBoxなら公開されている。
https://github.com/wunki/wercker-box-elasticsearch
自前でBoxを作る
Kuromoji という日本語形態素解析をしてくれるものを含んだ Elasticsearch 環境をBoxにしてみた例
name: kuromoji-elasticsearch
version: 0.0.6
inherits: wantedly/ubuntu12.04-chef@0.0.1
type: service
platform: ubuntu@12.04
description: elasticsearch with kuromoji plugin
keywords:
- elasticsearch
- kuromoji
- japanese search
packages:
- elasticsearch@1.0.1
- kuromoji@2.0.0
script: sudo chef-solo -c $WERCKER_SOURCE_DIR/solo.rb -j $WERCKER_SOURCE_DIR/solo.json -l debug
env:
WERCKER_ELASTICSEARCH_VERSION: 1.0.1
WERCKER_ELASTICSEARCH_URL: $$HOST$$:9200
WERCKER_ELASTICSEARCH_HOST: $$HOST$$
WERCKER_ELASTICSEARCH_PORT: 9200
のように wercker-box.yml を作る。
重要な部分は、
script: sudo chef-solo -c $WERCKER_SOURCE_DIR/solo.rb -j $WERCKER_SOURCE_DIR/solo.json -l debug
で、ここで何を行うかを指定している。
solo.json の中身はChefの話になるので割愛するが、興味がある人はリポジトリのソースコードを読んでみて欲しい。
ドキュメントに従ってBoxを登録すると、
のようになり、
services:
- wantedly/kuromoji-elasticsearch@0.0.6
と利用することができるようになる。