capistrano3 + git で submodule も一緒にデプロイしたい場合

生まれて初めて(?)git submodule を使った気がする。
capistrano3 で submodule を含むリポジトリをデプロイしようとすると、
submodule の内容は空っぽになってました。
capistrano2 だと、

set :git_enable_submodules, 1

これでいけるんだけど、、、と思って調べていたら、task を追加してあげるという方法があるらしい。

以下に、task のコードをそのまま引用。

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

これを、lib/capistrano/tasks/git.cap として保存する、と。
試したんだけど、なんかうまくいかない。なんでじゃ!と思って Capfile を見ると
末尾に以下のような記述があった。

# Loads custom tasks from `lib/capistrano/tasks' if you have any defined.
Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r }

拡張子が rake のファイルを読み込むようになってた。。
ということで、lib/capistrano/tasks/git.rake に名前を変更したら、うまくいったというお話。(´・ω・`)