komagataです。
“プログラムプレゼンテーション”で継続的インテグレーションコマンドを作って発表しました。
saimaa - 今すぐ始められる継続的インテグレーション - p0t
継続的インテグレーションについては、CIサーバー(Continuous Integration Server)というやつが沢山あって非常に機能も豊富です。僕の仕事には少々大げさな気がしたのと、
「cronでsvn up && rakeじゃ駄目なのかしら?」
などと思ったのでそれをちょっとだけサポートするコマンドを作ってみました。
アクトインディではcapistranoのデプロイコマンドにrspecとcucumberのフックが掛けてあるのでテストが通らなければデプロイはできません。ですが、コミットはできるのでテスト通らないコードがコミットされるとすぐにこの仕組みでメールが飛んでくるのでなかなか便利です。
これを作って感じたのは、rubygemsとgithubはクロスプラットフォームのCUIプログラム(コマンド)を作る環境として素晴らしいなということです。(全開と似たようなこと言ってますが)
rubygemsはインストールするとPATHが通ってるところに実行できる場所にコマンドをコピーしてくれるんですよね。jewelerでgithubへのアップも簡単です。