1

CruiseControl.rb が統合テストを実行したい場合、プロジェクト内で「cruise」と呼ばれる rake タスクを探して実行します。

現在のリビジョン番号をそのタスクに渡す方法はありますか? 統合テストの後、カピストラーノを使用してリモート マシンにアプリをデプロイしています。特別なリビジョンが渡されない場合、capistrano は HEAD リビジョンをデプロイするため、cc.rb の最後にチェックされたリビジョンを使用するように指示したいと思います...

何か案は?

4

3 に答える 3

2

CC.rb リビジョンが必要な場合は、次の方法で行うことができます。

desc 'Cruise'
task :curise do
  puts "Building revision #{ENV['CC_BUILD_REVISION']} from #{File.dirname(__FILE__)}"
end
于 2009-11-16T16:13:43.033 に答える
1

rake cruiseチェックアウトを含むディレクトリで実行されます。ソース管理が git の場合、リビジョンの抽出は簡単です。

IO.popen('git log -1|grep -i \'^commit\ \'').read.split[1]

Cruise は、HEAD ではなく、ビルドを要求したリビジョンと一致するチェックアウトで実行されているため、buy git log で報告されたリビジョンは正確である必要があります。

幸運を!

于 2009-07-24T11:39:06.223 に答える
0

mixonicが投稿した答えは問題ないはずですが、Subversionを使用する場合は、svnversion代わりにコマンドを実行してリビジョン番号を取得する必要があります。

于 2009-08-06T20:41:11.950 に答える