GitHub + TravisCI で継続的リリースをしよう

TwitterIrcGateway という id:mayuki 先生が大昔から作っている大変便利なアプリケーションを TravisCI でビルドし、 GitHub Releases でバイナリを公開する仕組みを作りました。

本当は本家にマージしたいんだけど、 Travis CI の設定をまゆきち先生にやってもらわないといけないのと、あと mono でビルドすると TwitterIrcGateway.exe が動かない (タスクトレイに入っていくやつ、 CLI の方は動く) という問題があったりで PullRequest だせてないです。

その際に作った大変便利なスクリプトを共有しますので、御活用ください。ただ jq に依存していてちょっとダサい。

たとえば .travis.yml を以下のように書くだけで良い感じにリリースできるようになる。

after_success:
  - tar cvfz TwitterIrcGateway.tar.gz TwitterIrcGateway
  - sh ./release.sh $GH_TOKEN TwitterIrcGateway.tar.gz shunirr TwitterIrcGateway $TIG_VERSION >/dev/null 2>&1

プログラムをコンパイルし、バイナリを配布する形のアプリケーション、いままでどこで配布すればよいか分からなかったけれど、これからは Github Releases を使えば良いし、 Travis CI を使って継続的にリリースすることが出来る。

さっきの .travis.yml をちょっと書き換えて、開発は develop ブランチで行なって、 master ブランチにマージされたらリリースするみたいな感じの運用にすれば良い感じになりそう。

追記

TIG のリリースバイナリ配布は一旦止めてます。 Git 版をどうぞ