Инициирование и обновление субмодуля Capistrano
Я использую Capistrano (как часть Bedrock) для развертывания Wordpress.
Я также использую Composer для управления зависимостями php и моими плагинами WordPress, и моя тема управляется git как подмодуль.
У меня все настроено, и я успешно развернул WordPress на своем удаленном сервере.
Проблема в том, что я управляю своей собственной темой с помощью подмодулей git. Я не могу найти способ инициировать и обновить субмодуль во время развертывания по умолчанию или как отдельную задачу. Я бы предпочел, чтобы это было отдельной задачей, поскольку я не слишком часто изменяю подчеркивающие файлы проекта.
Я нашел эту суть, которая создает задачу сделать то же самое, но с использованием более старой версии Capistrano.
Я попробовал этот метод, но он не работает при попытке создать символические ссылки на релиз.
Я попытался включить подмодули с
set :git_enable_submodules, 1
в моемdeploy.rb
файл, но, кажется, отсутствует в Capistrano V3.x.Я нашел эту ветку, где автор Capistrano объясняет, почему поддержка субмодуля была удалена, и другой комментатор опубликовал эту суть, которая дает мне эту ошибку
Tasks: TOP => git:create_release => git:update => git:clone
,
Что делают другие люди, чтобы обеспечить простое развертывание с Capistrano, которое включает подмодули git?
1 ответ
Я также использую подмодуль git в capistrano 2, который я использовал:
set :git_enable_submodules, 1
работал отлично.
когда я перешел в Capistrano 3.x i начал использовать:
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
также работает как шарм.
подробности смотрите здесь:
https://github.com/capistrano/capistrano/blob/master/lib/capistrano/tasks/git.rake#L34 https://github.com/capistrano/capistrano/blob/master/lib/capistrano/tasks/git.rake#L56