Подтвердить что ты не робот

Как настроить таргетинг на конкретную транзакцию SHA при развертывании capistrano

Мне интересно, как я могу настроить целевой SHA в Git для развертывания, используя Capistrano? Это должно быть что-то вроде

cap deploy --version=<sha targeted>

Кажется, не удается найти ответ на этот вопрос после большого поиска.

4b9b3361

Ответ 1

Для 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

Ответ 2

Ответ molf не работал у меня (используя capistrano 2.11.2). Мне пришлось использовать "ревизию" вместо ветки, например:

cap -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy

Ответ 3

Капистрано 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

Ответ 4

ask: branch, 'master'

Запрос для ввода, но по умолчанию используется "master", если вы нажмете return.