Развертывание подмодуля git с Capistrano 3
Мой репозиторий проекта включает Wordpress как подмодуль git. При развертывании через Capistrano 3 каталог подмодулей является бесплодным.
project
--wordpress
--images
Я использую GIT и :deploy_via, :remote_cache
Как я могу сказать Capistrano также развернуть субмодуль?
2 ответа
Я нашел отличный скрипт от Corny, который отменяет задачу git в Capistrano.
Поместите этот скрипт в 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 для развертывания репозитория git и его подмодулей.
В capistrano 3.1.x и более поздних версиях вы можете реализовать свою собственную стратегию SCM. Существует доступный гем, который помогает с подмодулем git, пожалуйста, смотрите: https://github.com/i-ekho/capistrano-git-submodule-strategy.
ПРИМЕЧАНИЕ: у вас могут быть проблемы с repo
папку, если вы уже пробовали с помощью стратегии Git по умолчанию. Просто перейдите в каталог deploy и удалите его, а затем снова запустите cap deploy, чтобы исправить это.