使用Capistrano 3部署git子模块
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Capistrano 3部署git子模块相关的知识,希望对你有一定的参考价值。
我的项目回购包括Wordpress作为git子模块。通过Capistrano 3进行部署时,子模块目录是贫瘠的。
project
--wordpress
--images
我正在使用git和:deploy_via, :remote_cache
如何告诉Capistrano还部署子模块?
答案
我找到了一个来自corny的优秀脚本,它覆盖了Capistrano中的git任务。
将此脚本放在lib/capistrano/tasks/git.cap
中并正常使用cap stage deploy
。
https://gist.github.com/corny/7459729
# Save this file as lib/capistrano/tasks/git.cap
namespace :git do
desc 'Copy repo to releases'
task create_release: :'git:update' do
on roles(:all) do
with fetch(:git_environmental_variables) do
within repo_path do
execute :git, :clone, '-b', fetch(:branch), '--recursive', '.', release_path
end
end
end
end
end
另一答案
可能与capistrano v3 deploy git repository and its submodules重复。
在capistrano 3.1.x及更高版本中,您可以实现自己的SCM策略。有一个可用的宝石,有助于git子模块,请参阅:https://github.com/i-ekho/capistrano-git-submodule-strategy。
注意:如果您已尝试使用默认的git策略,则repo
文件夹可能有问题。只需转到deploy目录并将其删除,然后再次运行cap deploy来修复它。
以上是关于使用Capistrano 3部署git子模块的主要内容,如果未能解决你的问题,请参考以下文章
加速资产:使用 Rails 3.1/3.2 Capistrano 部署预编译
如何配置 Capistrano 以从本地 Git 存储库进行部署?