Инициирование и обновление субмодуля Capistrano

Я использую Capistrano (как часть Bedrock) для развертывания Wordpress.

Я также использую Composer для управления зависимостями php и моими плагинами WordPress, и моя тема управляется git как подмодуль.

У меня все настроено, и я успешно развернул WordPress на своем удаленном сервере.

Проблема в том, что я управляю своей собственной темой с помощью подмодулей git. Я не могу найти способ инициировать и обновить субмодуль во время развертывания по умолчанию или как отдельную задачу. Я бы предпочел, чтобы это было отдельной задачей, поскольку я не слишком часто изменяю подчеркивающие файлы проекта.

  1. Я нашел эту суть, которая создает задачу сделать то же самое, но с использованием более старой версии Capistrano.

  2. Я попробовал этот метод, но он не работает при попытке создать символические ссылки на релиз.

  3. Я попытался включить подмодули с set :git_enable_submodules, 1 в моем deploy.rb файл, но, кажется, отсутствует в Capistrano V3.x.

  4. Я нашел эту ветку, где автор 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

Другие вопросы по тегам