我使用Capistrano(作为Bedrock的一部分)来部署Wordpress。
我也使用Composer来管理php依赖项和我的WordPress插件,我的主题由git作为子模块管理。
我已经完成了所有设置,并且已成功将WordPress部署到我的远程服务器。
问题是我使用git子模块管理自定义主题。我无法在默认部署期间找到初始化和更新子模块的方法,或者作为单独的任务。我更喜欢将它作为一项单独的任务,因为我不会过于频繁地更改下划线项目文件。
我发现this gist创建了一个相同的任务,但它使用的是较旧版本的Capistrano。
我尝试了this method,但在尝试创建发布符号链接时失败了。
我尝试在set :git_enable_submodules, 1
文件中启用deploy.rb
的子模块,但Capistrano V3.x似乎缺少这些子模块。
I found this thread,其中Capistrano的作者解释了为什么删除了子模块支持而另一位评论者发布了this gist,这给了我这个错误Tasks: TOP => git:create_release => git:update => git:clone
。
其他人如何使用包含git子模块的Capistrano进行简单部署?
答案 0 :(得分:1)
我也使用了capistrano 2中使用的git子模块:
set :git_enable_submodules, 1
先发制人。
当我搬进Capistrano 3.x时,我开始使用:
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