Как нацелиться на конкретный коммит SHA с развертыванием capistrano - PullRequest
37 голосов
/ 28 мая 2009

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

cap deploy --version=<sha targeted>

Не могу найти ответ на этот вопрос после долгих поисков.

Ответы [ 4 ]

63 голосов
/ 28 мая 2009

Для 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
17 голосов
/ 17 августа 2012

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

cap -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy
12 голосов
/ 10 июня 2015

Capistrano 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
1 голос
/ 14 мая 2016

спроси: филиал, 'мастер'

Запрашивает ввод, но по умолчанию «мастер», если вы нажимаете клавишу возврата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...