简短的回答是“你不要”。该deploy
勾调用部署:update_code
部署:update_code,{:除了=> {:no_release =>真}}
复制项目到远程服务器。这是任何部署的第一阶段;将更新的代码和资产移动到部署服务器。然而,你很少直接调用这个任务;相反,您应该调用deploy’ task (to do a complete deploy) or the
更新的任务(如果您想单独执行“重新启动”任务)。
您需要确保将scm变量设置为您使用的源代码管理软件(默认为subversion),并将:deploy_via变量设置为您要用于部署的策略(默认为:查看)。
这确实在一个下面一举:
- 结帐代码
- 拉上代码
- 移动代码到远程服务器
- 清理本地代码
(根据您的部署设置有一些变化)。
但是, 我能够利用下载和上传命令来解决这个问题。
tmp_path = "/tmp/#{release_name}/public"
download "#{current_path}/public/javascripts", "#{tmp_path}/javascripts/":via => :scp, :recurisve => true
system "jammit -o #{tmp_path}/javascripts -C#{tmp_path}/javascripts/assets.yml"
upload "#{tmp_path}/javascripts/common.js", "#{current_path}/public/javascripts", :via => :scp
system "rm -rf #{tmp_path}"
我不喜欢它,因为它不是很干净,但它完成了我需要完成的工作。