1

我没有 rails 环境,但我想使用 Cruisecontrol.rb 作为我的持续集成环境。

按照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

我调试了一点点,发现执行上述代码时,DATA_ROOT 和 Dir.pwd 是 ~/.cruise。所以

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

你会推荐什么来解决这个问题?将 DATA_ROOT 重新定义到我想要的位置?

4

1 回答 1

1

有几种方法可以解决这个问题,最简单的可能是在项目的根目录中创建一个 Cruise_config.rb 文件。它应该看起来像这样:

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

只需将“spec”替换为您拥有的任何 rake 任务。如果您不使用 rake(假设您使用的是 ant),则可以执行以下操作:

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

只需将“ant test”替换为命令行命令,如果成功则返回 0,否则返回 1。(ant, make, rake, 都这样做)

于 2009-07-08T08:38:33.897 回答