Rails环境是cruisecontrol.rb的先决条件

时间:2009-07-08 07:18:20

标签: ruby cruisecontrol

我没有rails环境,但我想使用cruisecontrol.rb作为我的Continous Integration环境。

跟随http://cruisecontrolrb.thoughtworks.com/documentation/getting_started然后

的指示
./cruise start 

我在这里得到了错误:(抱歉,格式化程序比直接在此处发布更好)    http://pastebin.ca/1487868

似乎CC.rb在启动时正在进行一些数据迁移/备份工作,我可以通过注释掉相应的代码来解决这个问题:

#cruisecontrolrb / db / migrate / 002_move_custom_files_to_directory_in_user_home.rb         
DATA_ROOT = ARGV[0]
RAILS_ROOT = File.expand_path(".")     
if File.directory? 'projects'          
  #mv 'projects', DATA_ROOT + '/projects'  #comment out this line, it will work perfect fine
else
  mkdir_p DATA_ROOT + '/projects'
end

我调试了一个litter位,发现上面的代码执行时,DATA_ROOT和Dir.pwd是〜/ .cruise。所以

mv 'projects', DATA_ROOT + '/projects' would become 
mv ~/.cruise/projects ~/.cruise/projects which is obvious not correct

你会建议解决这个问题?要将DATA_ROOT重新定义到我想要的地方吗?

1 个答案:

答案 0 :(得分:1)

有几种解决方法,最简单的方法是在项目的根目录中创建cruise_config.rb文件。看起来应该是这样的:

Project.configure do |project|
  project.rake_task = "spec"
end

只需将“spec”替换为您拥有的任何rake任务。如果你不使用rake(比如说你使用的是蚂蚁),你可以这样做:

Project.configure do |project|
  project.build_command = "ant test"
end

只需用命令行命令替换“ant test”,如果成功则返回0,否则返回1。 (蚂蚁,制作,耙,都这样做)