CruiseControl.rb:以当前版本为参数运行巡航耙任务

时间:2009-07-24 09:42:12

标签: rake capistrano cruisecontrol.rb

当CruiseControl.rb想要执行集成测试时,它会在项目中查找名为“cruise”的rake任务并执行它。

有没有办法将当前的修订号移交给该任务? 我在集成测试后在远程计算机上使用capistrano部署应用程序。因为如果没有通过特殊修订版,capistrano将部署HEAD修订版,我想告诉它使用cc.rb上次检查的修订版...

任何想法?

3 个答案:

答案 0 :(得分:2)

如果您需要CC.rb修订版,您可以这样做:

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

答案 1 :(得分:1)

rake cruise在包含结帐的目录中运行。如果你的源代码控制是git,那么提取修订版本是微不足道的。

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

巡航正在结帐中运行,该结账符合您要求构建的修订版,而不是HEAD,因此修改报告的购买git日志应该是准确的。

祝你好运!

答案 2 :(得分:0)

mixonic发布的答案应该没问题,但是如果你使用Subversion,你应该执行svnversion命令来获取修订号。