2015-04-28 67 views
1

我们正在开发一个系统,该系统允许我们与capistrano一起部署多个项目。我们有3个系统(前端,计费,应用程序),它们都有独立的代码库,并且分多个阶段部署在不同的服务器上。Capistrano调用多次部署?

使用capistrano_multiconfig创建一个具有多种配置的Capistrano回购,就像一个魅力。我可以单独运行每个命令,并且它们都可以在正确的阶段正确地部署到正确的服务器。

现在我想添加一个自定义任务,一次使用一个命令部署所有配置的项目。我粘贴了下面的命令代码。

set :projects, ['front', 'billing', 'app'] 

namespace :deploy do 
    desc 'Deploy all' 
    task :all do 
     set :env, ask('To what environment do you want to deploy?', 'staging'); 
     run_locally do 
      fetch(:projects).each { |project| 
       info "Now deploying #{project} to #{fetch(:env)}" 
       invoke "#{project}:#{fetch(:env)}" 
       invoke "deploy" 
      } 
     end 
    end 
end 

的问题是,只有上面的代码部署的第一个项目,该信息的命令执行针对.each循环的所有迭代,但部署命令的调用只运行在第一个项目,经过以下两个调用调用只是无所事事。

任何人有想法?

+0

是否所有部署作为单个主体的3个应用程序?如果没有,用户可能会看到一些错误,因为其中一部分已经出现并且与其余部分不兼容。任何人都知道解决方案 –

回答

3

你应该reenbale任务

耙::任务[“部署”。重新启用