Gemnasiumに頼らずにGemのバージョン指定が古くなっていることを検知する
世の中には便利なWebサービスがたくさんあります。僕個人の意見で便利なものだと、Gemnasiumです。
これはGithubに上がっているプロジェクトのGemfileやgemspecを見て、依存関係にあるGemのバージョンをチェックしてくれるいいやつです。その上もしGemfileで指定されているものが最新版より古いとメールで通知してくれます。
ただこれを利用すると、publicリポジトリはフリーなのですが、プライベートは月$3、グループのリポジトリは月$9かかってしまいます。家賃払ったら口座にほとんどお金がない僕には大打撃です。
なのでプライベートなものなどはローカルで検知できるようにします。具体的には
$ bundle outdated
で検知します。
bundle outdatedを実行すると指定のGem Sourceにバージョン情報を取りに行き、現在の最新バージョンがいくつで、どれがそうでないのかをリストアップしてくれます。
あとはこれをJenkinsなりなんなり、定期的に実行するものに組み込んで、バージョン情報が古くなっているリポジトリを発見したらメールで飛ばすような仕組みをいれれば万事解決です。
まめ知識
bundler 1.0系よりbundler 1.1系の方がGem Sourceのfetchが断然早く、bundle installの速度が段違いになります。また、
gem "http://rubygems.org"
と指定するより
gem :rubygems
と指定する方が断然速いので、そのへんも見直しましょう。