Развертывание подмодуля 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, чтобы исправить это.

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