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
循环的所有迭代,但部署命令的调用只运行在第一个项目,经过以下两个调用调用只是无所事事。
任何人有想法?
是否所有部署作为单个主体的3个应用程序?如果没有,用户可能会看到一些错误,因为其中一部分已经出现并且与其余部分不兼容。任何人都知道解决方案 –