当 CruiseControl.rb 想要执行集成测试时,它会在项目中查找名为“cruise”的 rake 任务并执行它。
有没有办法将当前的修订号移交给该任务?集成测试后,我正在远程机器上使用 capistrano 部署应用程序。因为如果没有通过特殊修订,capistrano 将部署 HEAD 修订,我想告诉它使用 cc.rb 的最后检查修订...
有任何想法吗?
当 CruiseControl.rb 想要执行集成测试时,它会在项目中查找名为“cruise”的 rake 任务并执行它。
有没有办法将当前的修订号移交给该任务?集成测试后,我正在远程机器上使用 capistrano 部署应用程序。因为如果没有通过特殊修订,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,因此报告的修订版购买 git log 应该是准确的。
祝你好运!
mixonic 发布的答案应该没问题,但是如果您使用 Subversion,您应该执行svnversion
命令来获取修订号。