くりにっき

フルスタックキュアエンジニアです

githubでgemを公開する時に使いたいバッジ

f:id:sue445:20140811002422p:plain

と言われたので調子に乗って Rubicure で使ってるバッジをまとめてみます。

結構たくさんあるので必要に応じて使えばいいかと。

CIç³»

いろいろありますが無料で使えるのはこの辺。

詳しく知りたい人用

Travis CI (Ruby以外でも使える) Build Status

githubにpushしてもTravis側でテストが開始するのが遅いため個人的に最近は使いたくないのですが、複数のrubyのバージョンやDBの種類で簡単にマトリクステスト出来るのが自分の知る限りTravis CIしかないのでTravis CI使います。

他にあったらマサカリ指摘プリーズ

Travis CIの導入は下記参照

GithubにあるリポジトリをTravis CI連携する手順 #junitbook - くりにっき

バッジはREADMEの一番上の方に貼り付けておくのが見やすいと思います。

f:id:sue445:20140811002422p:plain

.travis,yml

自分はこういう風にすることが多いです

language: ruby
rvm:
  - 2.0.0
  - 2.1.2
bundler_args: --jobs=2
script:  bundle exec rspec
branches:
  only:
    - master
  • rvm : ビルドで使うrubyのバージョン
    • 最近は2系サポートしてればいい気がする(1.9系準拠だとキーワード引数使えないのがつらい)
    • 2.0 ã‚„ 2.1 だと 2.0.x, 2.1.x の一番新しいバージョンが使われる
  • bundler_args : bundle install に渡されるオプション
    • 上の設定だと bundle install --jobs=2 みたいに実行される
    • --jobs はbundler 1.5.0 rc1で追加されたオプションでbundle installを複数スレッド実行できる
    • nokogiriのようなnative extensionはコンパイルに時間がかかるため、なるべく時間を時間を短縮するために --jobs をつけてます
      • 普通は2回目以降のbundle installはダウンロード済のローカルにがあるので時間がかからないけど、Travis CIは毎回クリーンな環境からビルドを始めるため時間がかかる
    • とは言えTravis CIのビルドで使われるインスタンスのスペックもそんなに高くない(ような気がする)ので、そんなに大きな数字は使ってないです
  • branches / only / 〜 でビルドするbranchを指定

詳しい設定とか Travis CI: Building a Ruby Project

Tips : Travis CIで複数データベースでテストする方法

Gitpeach では

のようなファイルを置いて、ビルド時に config/database.yml にコピーすることで複数DBのテストをしています

language: ruby
env:
  - DB=mysql
  - DB=postgresql
before_script:
  - "cp config/database.yml.$DB config/database.yml"
  - "RAILS_ENV=test bundle exec rake db:create db:migrate"

実際にはrvmと合わせて (ruby 2.0.0 or ruby 2.1.2) x (mysql or postgresql) の計4パターンのテストをしてます

https://github.com/sue445/gitpeach/blob/master/.travis.yml

f:id:sue445:20140811004740p:plain

rubygems.org (Rubyのgemのみ) Gem Version

rubygems.orgの自分のgemのページで「Badge」からバッジのURLやmarkdownを取得できます

f:id:sue445:20140811005153p:plain

f:id:sue445:20140811005232p:plain

静的解析

Coveralls (Ruby以外でも使える) Coverage Status

テストカバレッジ*2を計測できます。

Githubのアカウントでログイン後に「ADD PRIVATE REPO」か「ADD REPO」でリポジトリを登録(publicリポジトリは後者)

f:id:sue445:20140811011742p:plain

登録直後に設定方法が表示されます

設定内容 https://github.com/sue445/rubicure/commit/0bd9573c12b75bd7fab278aa1a533df3221ec892

設定後に下の方の「GET BADGE URLS」からバッジのURLを取得できます

f:id:sue445:20140811012501p:plain

Code Climate (Ruby以外でも使える) Code Climate

コードの静的解析をして GPA (Grade Point Average = 評価値) 0〜4.0でスコアを出してくれます。*3

publicリポジトリなら無料で使えます。

githubのアカウントでログイン後に「Add Open Source Repo」でリポジトリを追加

f:id:sue445:20140811005959p:plain

codeclimateでもcoveralls同様テストカバレッジの計測ができます。設定内容もそんなに変わらないのでどっち使ってもいいと思います。(計測結果もそんなに変わらない)

設定内容 https://github.com/sue445/rubicure/commit/c436435e5c029be3dd58b7ed22acb1768c7412f3

GPAの円の下のバッジの画像からバッジのURLやmarkdownを取得できます

f:id:sue445:20140811010736p:plain

f:id:sue445:20140811010802p:plain

Gemnasium (Rubyのみ) Dependency Status

Gemfileやgemspecで使ってるgemが古くなっていたらメールで通知してくれます。

Githubのアカウントでログイン後に「ADD NEW PROJECT」でリポジトリを登録するだけ

f:id:sue445:20140811013237p:plain

Settings -> BadgeでバッジのMarkdownを取得できます

f:id:sue445:20140811013433p:plain

f:id:sue445:20140811013509p:plain

Inch CI (Rubyのみ) Inline docs

どれだけソースコード中にYARDなどでドキュメントを書いてるかを計測してくれる

トップからGithubのURLを入力するだけで設定完了

右上のバッジの画像をクリックすればURLやMarkdownが表示されます

f:id:sue445:20140811014633g:plain

おまけ

Waffle.io Stories in Ready

Githubのissueをカンバン風に管理できるサービス

githubのアカウントでログイン後にリポジトリを登録できます

Project Setting -> GeneralからバッジのMarkdownを取得可能

f:id:sue445:20140811015305p:plain

RubyDoc.info

バッジじゃないけど便利なのでこれも紹介。

rubygems.orgに公開されているgemのYARDをホスティングしてるっぽいサービス。rubygems.orgに公開してしばらくしたら公開されてる。

http://rubydoc.info/gems/rubicure/frames

githubのリポジトリを登録しても可能(rubygems.orgの巡回待つより早いが要手動更新)

右上のAdd ProjectでgitのURLを指定する。

f:id:sue445:20140811020955p:plain

[email protected]:<username>/<reponame>git の形式ではなく git://github.com/<username>/<reponame>.git の形式で登録する必要があるので注意

http://rubydoc.info/github/sue445/rubicure

便利なバッジの探し方

いろんなリポジトリを見るのが一番だと思う

まとめ

  • バッジを登録しておくと殺風景なREADMEも華やかになる
  • publicリポジトリであればだいたい無料で使えるので使うべき
  • githubのアカウント万能すぎる

*1:「ワーカー」と読みます

*2:C0カバレッジ

*3:数字が4.0に近いほど良いコード