Использование Fabric для развертывания текущей ветки git на героку

Я хотел бы сократить процесс развертывания на Heroku (т.е. git push)

Я использую git-flow для организации своей кодовой базы, поэтому обычно процесс выглядит так:

  1. начать новую ветку функций
  2. Сделайте кодирование
  3. Подтолкните эту ветку к моему экземпляру dev heroku - git push develop feature/somefeature:master)
  4. Слияние с веткой разработки
  5. Создайте новую ветку релиза
  6. Отправьте это в производственный экземпляр heroku - git push production release/1.2.3:master

Я хотел бы иметь возможность запускать команду Fab, например:

fab dev_deploy

который просто развернул бы текущую рабочую ветку в моем экземпляре dev

а также

fab prod_deploy

который сделает то же самое, но подтолкнет к производственному экземпляру. Я мог бы включить здесь некоторые проверки работоспособности, чтобы убедиться, что я нахожусь внутри ветки релиза и т. д.

мои потрясающие команды будут делать другие вещи (например, помещать статические ресурсы в нужное ведро S3 и т. д., запускать команды миграции на юг и т. д.)

Итак, все, что я действительно хочу знать, это как получить текущую рабочую ветку в качестве переменной внутри ткани...!?

Спасибо,

Парень


person Guy Bowden    schedule 07.12.2012    source источник


Ответы (2)


ОК - немного больше копания дало мне это:

from fabric.api import local
my_branch = local('git rev-parse --abbrev-ref HEAD', capture=True)

который делает именно то, что я хотел.

person Guy Bowden    schedule 11.12.2012

person    schedule
comment
Они оба запускают обычную команду «git branch», которая возвращает список локальных ветвей, текущая из которых обозначена звездочкой. Нет ли команды, которая просто получает текущую ветвь для последующей обработки? или мне придется получить этот список и использовать немного регулярного выражения, чтобы получить текущую ветку. - person Guy Bowden; 11.12.2012
comment
Регулярное выражение или что-то вроде branches.split('*') или, как вы предпочитаете, нарезать строки :) - person Jasper van den Bosch; 11.12.2012