簡短的回答是「你不要」。該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}"
我不喜歡它,因爲它不是很乾淨,但它完成了我需要完成的工作。