octorelease という gem をつくった
serverspec とか specinfra の Changes を手で書くのがだるくなってきたので、自動化するために octorelease という gem をつくりました。
rubygems.org にもあげてあるので、gem install で入ります。
Rakefile の中に
require "bundler/gem_tasks"
require "octorelease"
みたいに書いて、
$ rake octorelease
すると、 こんな感じになります。
{% img /images/2014/01/rake-octorelease.png %}
何をしてるかというと、
rake release
した後に、前のバージョンとリリースするバージョンの間に含まれるプルリクエストを
git log
で拾って、各プルリクエストに
Released as vX.X.X.
とコメントをつけ、GitHub 上にリリースを作成し、リリースの本文にはプルリクエストへリンクを張る、ってなことをやってます。
プルリクへのコメントはこんな感じでつきます。
{% img /images/2014/01/octorelease-comment.png %}
これは、プルリクしてくれた人に対して、リリースしたよ、ということを知らせるために、以前から手動でコメントしてたんですが、ルーチンワークなので自動でやるようにしました。
リリースはこんな感じで作られます。
{% img /images/2014/01/octorelease-releases.png %}
同僚の linyows 作の capistrano-github-releases インスパイアです。