1

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

有没有办法将当前的修订号移交给该任务?集成测试后,我正在远程机器上使用 capistrano 部署应用程序。因为如果没有通过特殊修订,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,因此报告的修订版购买 git log 应该是准确的。

祝你好运!

于 2009-07-24T11:39:06.223 回答
0

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

于 2009-08-06T20:41:11.950 回答