Одним из способов решения этой проблемы является установка переменной :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