Как мне настроить таргетинг на конкретный коммит SHA с помощью развертывания capistrano?

StackOverflow https://stackoverflow.com/questions/918011

Вопрос

Мне интересно, как я могу настроить 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

спросить: ветка, 'хозяин'

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top