RubyGemsなどのライブラリをOSSで公開した時の醍醐味として、Travis CIやCode Climateなどのコードの品質担保のしくみを無料で使うことができるということがあります。ということで先日公開した
『events_jp』として公開したを今回、次のツールに連携させてみました!
(1) travisCI (2) Coveralls (3) Code Climate (4) RubyGems.org (5) Gemnasium (6) deppbot
(2016/6/27 22:20) deppbotを追加
🐠 (1) Travis CI
『Travis CI』はGitHubにPushすると、
RubyのバージョンやDBのバージョンなど複数の環境でテストを自動で実行してくれる超有名なCIサービスです。
対応している言語は次のとおりです。有名どころはほとんど対応してそう。
C、C++、Clojure、Erlang、Go、Groovy、Haskell、Java、 JavaScript(Node.js)、Objective-C、Perl、PHP、Python、Ruby、Scala
まずは、『Travis CI』でGitHubアカウントでユーザー登録します。
そして、ユーザー登録が完了したら、『Profile - Travis CI』でsync now
して、連携許可のスイッチをONにします。
ユーザー登録したら、連携対象のプロジェクトフォルダ直下でローカルで次のコマンドを実行。
# gem のインストール |
.travis.yml
が作成されたら、こんな感じで編集。
language: ruby |
詳しい設定や編集方法はこちらがわかりやすいです。
githubでgemを公開する時に使いたいバッジ - くりにっき
Travis CI: Building a Ruby Project
設定画完了したら、.travis.yml
が正しいかをGem
『travis-ci/travis-lint』
でチェックします。
gem install travis-lint |
設定画完了したら、.travis.yml
などをGitHubにPushするとTravis CIがテストを開始してくれます。
git add .travis.yml |
travis open
を実行するとブラウザが開いて、travisの実行プロセス/結果を確認できます。
あとはその結果をバッチとしてGitHubのREADMEに貼り付けることができます。バッチのタグはTravisから取得できます!
🐹 (2) Coveralls
『Coveralls』は、テストのカバレッジ率を通知してくれるサービスです。
開発をしていく過程でテストがおざなりにならないように管理できます。対応している言語は次のとおりです。
Ruby/Rails、Python、PHP、Node.js、C/C++、Scala
まずは『Coveralls』にログインしてADD REPO
して、連携対象のリポジトリを設定します。
設定したら、Gemfile
に以下を追加してbundle install
を実行。
group :test do |
あとspec/spec_helper.rb
か、test/test_helper.rb
に次の設定を追記。
if ENV['CI'] |
あとはGitHubにPushして、Travis CIが実行されるとCoverallと連携してくれます。
git add -A |
『Coveralls』でも同じくバッチを設定できます。
Coveralls内の対応するリポジトリのページの右上の『BADGE URLS』をクリックしてタグをREADMEに追記します。
🐰 (3) Code Climate
『Code Climate』はコードの重複や複雑すぎる部分などを静的解析してくれて、
結果を表示してくれるGemです。コードの品質を向上させるためのアドバイスをくれるサービスです! 対応している言語は次の3つ。
Ruby, JavaScript, and PHP (beta)
『Code Climate』にGitHubアカウントでログインして、Publicなリポジトリなら、
自分のリポジトリを登録すると自動で静的解析をしてくれるので特に設定は必要ありません。
ソースコードの中から問題がある部分をA-Dで判定してくれたり、4点満点でソースコードの品質を判定してくれたりします。
バッチのタグも右側のバッチをクリックすると取得できるのでREADMEに追加しましょう!
もし、Codeのカバレッジも含めて連携させたい場合はまずGemfile
に次のように追加します。
group :test do |
次にspec/spec_helper.rb
か、test/test_helper.rb
に次の設定を追記。
if ENV['CI'] |
Codeclimateの対象リポジトリのページの右側にCodeCoverageの設定があるのでクリックすると、CODECLIMATE_REPO_TOKEN
があるのでその設定を.travis.ymlのscript
の設定を修正。
(xxxxにTOKENを入れてください。この設定は本当は良くない気がします。もっといい方法知っている人がいたら教えてください)
script: CODECLIMATE_REPO_TOKEN=xxxx bundle exec rspec |
これでカバレッジも含めて一括でチェックできます!
👽 (4) RubyGems.org
こちらもRuby限定ですが、RubyGems.orgの自分が公開しているgemのページからもバージョン情報が書かれたバッチを取得することができます。
まずは右下のメニューの『Badge』をクリックして、タグを取得してREADMEに追記します。
地味にPlugin Authorとしてテンションが上がります^^
🗽 (5) Gemnasium
『Gemnasium』は使っているGemが最新かどうかをチェックしてくれるRuby限定のサービスです。
使い方は『Gemnasium』にGitHubアカウントでログインして、対象のリポジトリを選択して同期します。
あとはリポジトリと同期するとGemのバージョンを判定して結果を出してくれます。
ちなみにバッチは右側の設定(歯車アイコン)をクリックして、タブのBadgeを選択すると取得できます。
🗻 (6) deppbot
『deppbot』は、RailsのGemでセキュリティに関する
アップデートがあった場合に自動的にGitHubでPull Requestを作ってくれるbotサービスです。
開発しているのは RedDotRubyConf のオーガナイザーの
@winstonyw と台湾が産んだ天才Rubyist @JuanitoFatas。
ちなみに、ふたりとも日本語が分かるのでサポートもバッチリです^^
🐝 その他おもしろそうなサービス
Scrutinizer
CIでテストを実行してくれるだけではなく、コード解析や自動でソースコードレビューをしてくれるそうです。しかもpublicリポジトリは無料!
CodeShip
CIやDeployをやってくれるサービス。特徴はこんな感じです!
(1) OSSなら完全無料で使える (2) privateリポジトリでも5リポジトリ、100回/月のbuildまで無料で実行 (3) SlackやHipChat、メール、Campfireなどに通知を出せる (4) SSHでログインでき、ブラックボックスにはならない
VADDY
このサービスは、CIツールと連携してWebサイトの脆弱性診断をしてくれるサービスです。日本発のサービスで、現在はスキャン回数無制限で無料で
使えるようです。まずは試してみるとおもしろそう。
Inch CI - Documentation badges
Rubyのプロジェクト限定ですが、ソースにどれだけコメントが書かれているかを計測してくれるサービス。ある程度人気が出て
コメントをしっかり管理するようになったら使いたいですね。
Semaphore
プロジェクトをタイムライン風に表示してくれたり、CI、デプロイ、通知周りをサポートしてくれるサービス。
アクティビティなどをバッチにして表示してくれるそうです(未確認)
Analytics for GitHub - Bitdeli
GitHubのリポジトリのアクセス解析をしてくれるサービスだそう。バッチを追加するだけですので、簡単に導入できます!
🤔 コマンドラインからTravisにログイン
コマンドラインからTravisにログインしたい場合は、次のコマンドを実行します。(GitHubのIDとPWを利用)
travis login --pro |
🏀 参考リンク
githubでgemを公開する時に使いたいバッジ - くりにっき
Travis CIとCoverallsとCode Climateを使ってGitHubリポジトリにバッジを付ける - アインシュタインの電話番号
codeclimate/ruby-test-reporter - GitHub
Middleman Blog を Travis-CI で GitHub Pages に継続デプロイ - ja.ngs.io
CoverallsのCoveralls BadgeをGitHubに表示する方法
🚜 変更来歴
(11-25 22:05) CodeShipを追加
(11-26 21:20) VADDYを追加
(12-06 14:55) 記述の微調整
(2016/6/27 22:20) deppbotを追加