Qiitaで流れてきた記事に、PHP開発でCIするならScrutinizer使ってみようというのがありました。気になってサイトを見てみると、Rubyにも使えることがわかったので、自作のjkr2255/prop_logic
に導入してみました。
基本機能などはほぼ同じなのでそちらに任せることにして、自分がやってみて気になった点や、Ruby特有の事情だけまとめてみます。
ユーザー登録
ユーザー登録のプロセスは、次の3段階でした。
- GitHubログイン
- 名前やメールアドレスの登録
- メールアドレスの認証
GitHubやTravis CI同様、「パブリックリポジトリに使うだけなら完全に無料」ですので、支払い情報をそもそも登録する必要もありませんでした。
プロジェクトごとの設定
RSpecが入っていれば自動で回してくれるので、とりあえずは何も設定しなくても動くかもしれませんが、標準では Ruby 1.9.3が選ばれてしまいました。今回のprop_logic
はRuby 2.0.0以降に対応するものですので1、そこは設定が必要でした。
設定方法としては、Travisのように.scrutinizer.yml
ファイルを作ることもできますし、Webインターフェースからも設定できます。
カバレッジの取得
Rubyでカバレッジを取得する場合、scrutinizer-ocular
というGemを入れる必要があります。.gemspec
の.add_development_dependency
で追加した上で、spec_helper.rb
に2行を追加します。
require 'scrutinizer/ocular'
Scrutinizer::Ocular.watch!
それを使うように設定したら、以下のようになりました。
checks:
ruby: true
filter:
excluded_paths:
- 'spec/*'
build:
environment:
ruby: '2.2.3'
tests:
override:
-
command: 'bundle exec rspec spec'
environment:
'SCRUTINIZER_CC_FILE': 'my-coverage'
coverage:
file: 'my-coverage'
format: 'rb-cc'
測定結果
このようになりました。強制ではないとはいえ、ローカルにRubocopを入れていたこともあって、スコア9.5、そしてテストカバレッジも99%を記録しました2。例によってバッジも用意してあるので、README.md
に貼り付けることもできます。