2015-04-28 113 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任務

耙::任務[「部署」。重新啓用