2009-07-24 1 views
1

ausführen Wenn CruiseControl.rb einen Integrationstest durchführen möchte, sucht es innerhalb des Projekts nach einer Rake-Task namens "Cruise" und führt sie aus.CruiseControl.rb: CruiseRake-Task mit aktueller Revision als Parameter

Gibt es eine Möglichkeit, die aktuelle Revisionsnummer an diese Aufgabe zu übergeben? Ich stelle eine App mit capistrano auf einem Remote-Computer nach Integrationstests bereit. Da capistrano die HEAD-Revision bereitstellen wird, wenn keine spezielle Revision übergeben wird, möchte ich sie bitten, die letzte geprüfte Revision von cc.rb zu verwenden ...

Ideen?

Antwort

1

rake cruise läuft in einem Verzeichnis mit einem Checkout. Wenn Ihre Quellcodeverwaltung git ist, ist das Extrahieren der Revision trivial.

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

Kreuzfahrt in einer Kasse ausgeführt wird, der die Revision entspricht, die Sie gebaut gefragt werden, nicht HEAD, so dass die Revision berichtet buy git log sollte genau sein.

Viel Glück!

0

Die Antwort, die mixonic gepostet werden sollte, sollte in Ordnung sein, aber wenn Sie Subversion verwenden, sollten Sie den svnversion Befehl ausführen, um stattdessen die Revisionsnummer zu erhalten.

2

Wenn Sie CC.rb Revision benötigen, können Sie es auf diese Weise tun:

desc 'Cruise' 
task :curise do 
    puts "Building revision #{ENV['CC_BUILD_REVISION']} from #{File.dirname(__FILE__)}" 
end