[英]Capistrano deploy from multiple git repository
我有2台服务器。 托管的Rails应用服务器和git存储库服务器。 两台服务器通过Internet连接(不在同一主机上)。
rails项目与capistrano一起部署。 有时远程git存储库已关闭,我无法部署最新更新。 我还在Rails服务器上克隆了存储库,因此当远程存储库服务器关闭时,我可以将更改推送到Rails服务器上的存储库。
什么是配方,所以我可以选择要提取的存储库。
谢谢
一种解决方法是即时设置:repository
变量。
也许设置一个在deploy:update
之前调用的任务,该任务使用git ls-remote #{repository} #{branch}
来检查存储库是否存在并响应。
这样的事情(未经测试,可能无法正常工作!) :
set :repos, ["git@github.com:whatever/project.git", "git@yourserver.com/repos/project.git"]
set :branch, "master"
task :select_repository do
repos.each do |repo|
if capture("git ls-remote #{repo} #{branch}") =~ /refs\/heads\/#{branch}/
set :repository, repo
return true
end
end
end
before "deploy:update" do
select_repository
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.