Из коробки Capistrano 3й версии не умеет клонировать репозиторий с сабмодулями. А проекты с сабмодулями есть и деплоить их как-то надо. Решением может быть мой плагин для Capistrano - capistrano-git-submodule-strategy .
1. в Gemfile добавляем
2. в Capfile добавляем
3. в deploy.rb настраиваем
Использование
Чтобы использовать его достаточно подключить к своему проекту и чуть-чуть настроить.1. в Gemfile добавляем
gem 'capistrano-git-submodule-strategy', '~> 0.1'Не забываем выполнить bundle.
2. в Capfile добавляем
require 'capistrano/git-submodule-strategy'
3. в deploy.rb настраиваем
set :scm, :git set :git_strategy, Capistrano::Git::SubmoduleStrategyПо умолчанию метаданные (папка .git) не деплоятся. Чтобы деплоить код вместе с метаданными нужно добавить специальный флаг:
set :git_keep_meta, true
Особенности
1. Для основного репозитория используется кеш. То есть при первом деплое во временную папку клонируется оригинальный репозиторий с флагом --mirror, а затем просто делается update зеркала. А релиз создаётся путём локального клонирования из зеркала.
2. К сожалению пока для сабмодулей кеш не поддерживается. То есть сабмодули всегда клонируются из оригинальных репозиториев.
No comments:
Post a Comment