Как мне настроить таргетинг на конкретный коммит SHA с помощью развертывания capistrano?
-
06-09-2019 - |
Вопрос
Мне интересно, как я могу настроить SHA конкретного коммита в Git для развертывания, используя Capistrano?Это должно быть что-то вроде
cap deploy --version=<sha targeted>
Кажется, не могу найти ответ на этот вопрос после долгих поисков.
Решение
Для Capistrano 2.9–3.0:
cap -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy
Для более старых версий Capistrano, вы можете развернуть конкретный git commit/tree/branch/tag, выполнив следующие действия:
cap -s branch=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy
В некоторых случаях может возникнуть необходимость указать в качестве аргумента и среду. production
это просто пример.
cap production -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy
Другие советы
ответ molf мне не помог (с использованием capistrano 2.11.2).Мне пришлось использовать «ревизию» вместо ветки, вот так:
cap -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy
Капистрано 3
В вашей deploy.rb
или файл, специфичный для этапа, например config/deploy/production.rb
set :branch, ENV.fetch('REVISION', 'master')
Это позволяет вам указать конкретную ревизию git.Он принимает SHA, а также все, что приводит к реальной версии (например,git-тег, аннотированный тег или ветка).
Используйте его в командной строке, установив REVISION
переменная среды, например
bundle exec cap production deploy REVISION=80655da8d80aaaf92ce5357e7828dc09adb00993
bundle exec cap staging deploy REVISION=my-topic-branch
спросить: ветка, 'хозяин'
Запрашивает ввод, но по умолчанию используется «главный», если вы нажмете клавишу возврата.