「なんか外部CIサービスだるいなー」「リリースとかもうローカルの環境でやりたいなー」「マシン取っ替えてもすぐ環境作れるようにしたいなー」などなどの欲求があったのと、go1.4がリリースされたのもあってDockerで全部自動化してみた。

戦略としては
  1. Travis CIとかの連携は残すけど、手元でいつでも同様のテストを走らせられるようにしておく
  2. リリースは手元でバージョン指定すれば基本的に一発で通るようにしておく
実装は単純で、ubuntuベースのイメージに必要なgoのバージョンとツール類(goxcghr)を展開しておいて、pecoのディレクトリは後からdocker run -vでマウントできるようにしておく

使う時は先にイメージを作成しておく(キャッシュ使ってるから当然素早く走りますね!)

001

あとはpeco-dockerレポジトリについてくるスクリプトでCI的なテストとリリースができる。(リリースは本当にリリースはしっちゃって面倒くさいのでここではテスト画面だけ)

001

test.shの中身は基本的に"docker run peco-docker:go1.4 /test-docker.sh"というコマンドを実行しているだけです。

で、先ほどpeco v0.2.11 をリリースしましたバグフィックスと機能追加両方ありますので、是非お試しください。

というわけでdockerを使ってpecoさんを手元で色々できるようにしてみた、というお話でした。オーケストレーションは色々と微妙なところはあるけど、こういう単純な自動化にはdockerすごいフィットしてる感あるという感じがしましたね。