CruiseControl.rb が統合テストを実行したい場合、プロジェクト内で「cruise」と呼ばれる rake タスクを探して実行します。
現在のリビジョン番号をそのタスクに渡す方法はありますか? 統合テストの後、カピストラーノを使用してリモート マシンにアプリをデプロイしています。特別なリビジョンが渡されない場合、capistrano は HEAD リビジョンをデプロイするため、cc.rb の最後にチェックされたリビジョンを使用するように指示したいと思います...
何か案は?
CruiseControl.rb が統合テストを実行したい場合、プロジェクト内で「cruise」と呼ばれる rake タスクを探して実行します。
現在のリビジョン番号をそのタスクに渡す方法はありますか? 統合テストの後、カピストラーノを使用してリモート マシンにアプリをデプロイしています。特別なリビジョンが渡されない場合、capistrano は HEAD リビジョンをデプロイするため、cc.rb の最後にチェックされたリビジョンを使用するように指示したいと思います...
何か案は?
CC.rb リビジョンが必要な場合は、次の方法で行うことができます。
desc 'Cruise'
task :curise do
puts "Building revision #{ENV['CC_BUILD_REVISION']} from #{File.dirname(__FILE__)}"
end
rake cruise
チェックアウトを含むディレクトリで実行されます。ソース管理が git の場合、リビジョンの抽出は簡単です。
IO.popen('git log -1|grep -i \'^commit\ \'').read.split[1]
Cruise は、HEAD ではなく、ビルドを要求したリビジョンと一致するチェックアウトで実行されているため、buy git log で報告されたリビジョンは正確である必要があります。
幸運を!
mixonicが投稿した答えは問題ないはずですが、Subversionを使用する場合は、svnversion
代わりにコマンドを実行してリビジョン番号を取得する必要があります。