今すぐ始められる継続的インテグレーションXPのプラクティスのうちの一つ、“継続的インテグレーション”についての詳細はこちら。継続的インテグレーションテスト部分も含めて「全てが自動化された」「再現可能な」ビルドを、「日に何度も」行うことだそうです。スクリプト言語だとデプロイはあってもビルドって殆ど無いですよね。“自動的に日に何度もテストを行うこと”という風に勝手に縮小理解しました。Server)というやつが沢山あって非常に機能も豊富です。rakeじゃ駄目なのかしら?」などと思ったのでそれをちょっとだけサポートするコマンドを作ってみました。http://gems.github.comこれでsaimaaというコマンドが入りました。使い方saimaaは-cでshellで実行したいコマンドを引数に取って実行します。/tmp"コマンドが成功(0を返す)した場合、何もしません。directoryコマンドが失敗(0以外を返す)した場合、標準出力にコマンドの標準出力と標準エラー出力を返します。directory引数はプロジェクト名として認識されます。(このジョブのタイトルみたいなものです)通知saimaaは-nで通知のためのコマンドを引数にとって、-cで実行したコマンドの標準出力を標準入力として実行します。みたいなのと同じです。|___/最初に実行したコマンドが成功した場合、通知コマンドは実行されません。example何に使うの?だからどうした的なコマンドですが、要するに下記の用に使うことを念頭に置いています。[spec]が失敗した時だけnotify@example.comにメール飛ばす。前述のfigletもそうですが、通知コマンドは標準入力を取るコマンドならば何でもかまいません。(growlnotifyとか)実際のcronの設定としてはこんな感じです。ossuary毎時間、0分と10分にそれぞれtrunkのコードにrspecとcucumberのテストを走らせています。コマンドの実行結果をプロジェクト名毎に保存するようになっています。(今のところ特にインターフェースはありません)shでワンラインでかけそうな、どうということは無いコマンドですが、僕の中での継続的インテグレーションの要件を一応みたしています。githubの組み合わせは自作コマンドを配布するとても楽な組み合わせなので最近多用しています。いったパスの通ったところに配置してくれるし、gemコマンドでインストール、アンインストールも楽です。興味がおありの方はちょっとためしてみてもらえるとありがたいです。開発サーバーに入って30分もあれば継続的インテグレーションが始められる筈です。