繁体   English   中英

Capistrano从多个git仓库部署

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM