Capistrano子模块初始化和更新任务

时间:2014-05-19 16:15:24

标签: wordpress git capistrano capistrano3

我使用Capistrano(作为Bedrock的一部分)来部署Wordpress。

我也使用Composer来管理php依赖项和我的WordPress插件,我的主题由git作为子模块管理。

我已经完成了所有设置,并且已成功将WordPress部署到我的远程服务器。

问题是我使用git子模块管理自定义主题。我无法在默认部署期间找到初始化和更新子模块的方法,或者作为单独的任务。我更喜欢将它作为一项单独的任务,因为我不会过于频繁地更改下划线项目文件。

  1. 我发现this gist创建了一个相同的任务,但它使用的是较旧版本的Capistrano。

  2. 我尝试了this method,但在尝试创建发布符号链接时失败了。

  3. 我尝试在set :git_enable_submodules, 1文件中启用deploy.rb的子模块,但Capistrano V3.x似乎缺少这些子模块。

  4. I found this thread,其中Capistrano的作者解释了为什么删除了子模块支持而另一位评论者发布了this gist,这给了我这个错误Tasks: TOP => git:create_release => git:update => git:clone

    < / LI>

    其他人如何使用包含git子模块的Capistrano进行简单部署?

1 个答案:

答案 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