環境
- Capistrano 3.11
最近はめっぽう聞かないが、gitにはサブモジュール(git submodules)という機能がある。
この機能自体は便利なんだろうけど、それをCapistrano経由でデプロイしようとすると厄介な話になってくる。というのもCapistranoはgit submodulesに公式で対応してないからである(2系は対応していたらしい
ってことはプラグイン入れないといけないね、ってことで探したらあった。その名も「capistrano-git-with-submodules」
インストール
Gemfileに
gem 'capistrano-git-with-submodules'
を追加して bundle install
で、Capfileに
require "capistrano/scm/git-with-submodules" install_plugin Capistrano::SCM::Git::WithSubmodules
を追加すればおk
あとは勝手にデプロイ時にサブモジュールもgit cloneしてくれる
注意点
公式サイトにも載っているが、3系とは3.7以降のみ対応している。それ未満のバージョンのCapistranoを使っている場合は同じ作者の「ekho/capistrano-git-submodule-strategy」を使う。