Я использую Capistrano (3.7.1) для развертывания приложения Rails 5 в VPS. У меня есть 2 основных филиала, которые я использую в git: master
, для стабильного, готового к производству кода и develop
, для кода WIP. Я хотел развернуть ветвь develop
на промежуточном сервере, но, похоже, он не работает.Capistrano не может разворачиваться из не-ведущей ветки
В deploy.rb
:
# This is the failing task
task :check_revision do
on roles(:app) do
unless 'git rev-parse HEAD' == "git rev-parse origin/#{fetch(:branch)}"
puts "WARNING: HEAD is not the same as origin/#{fetch(:branch)}"
puts 'Run `git push` to sync changes.'
exit
end
end
end
В production.rb
:
set :branch, 'master'
В staging.rb
:
set :branch, 'develop'
Каждый раз, когда я пытаюсь развернуть, это не удается, следующим образом:
$ cap staging deploy
... initial steps, skipped over ...
WARNING: HEAD is not the same as origin/develop
Run `git push` to sync changes.
Но это явно не тот случай, когда я получаю:
$ git rev-parse HEAD
38e4a194271780246391cf3977352cb7cb13fc86
$ git rev-parse origin/develop
38e4a194271780246391cf3977352cb7cb13fc86
, которые являются явно то же самое.
Что происходит?
Измените строку на это и попробуйте: 'if \' git rev-parse HEAD \ '== \' git rev-parse origin/# {fetch (: branch)} \ '' – Deep