Git push после фиксации svn для автоматического развертывания на Heroku?


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

Наш код живет в репо SVN, но я использую heroku для развертывания своего приложения (которое использует GIT)

В настоящее время я делаю следующее локально:

    svn update
    git add .
    git commit -m "foo"
    git push heroku master

Однако я хотел быавтоматизировать этот процесс, так что, когда кто-либо в команде совершает новый код, он автоматически перемещается на heroku и может быть просмотрен на нашем сайте dev.

Есть ли простой способ сделать это? Возможно, создание EC2 например, ssh'ING в него post commit (с помощью скрипта hook) и выполнение вышеуказанных команд? Но это решение кажется слишком сложным..

2 2

2 ответа:

Да, это кажется слишком сложным, я бы просто предложил вместо этого окончательное движение к git.

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

Т. е. переносить каждое изменение на Heroku (и использовать его в качестве транспортного уровня) не очень хорошая идея, иногда вам нужно подтолкнуть что-то к товарищам по команде, чтобы разделить незавершенную работу, и совершенно очевидно, что если вы отправите его в таком состоянии в Хероку, ты завалишь свою заявку. Поэтому было бы просто проще иметь один (другой) общий РЕПО (origin) и толкать все туда, и только если какая-то важная часть закончена и подтверждена всеми членами команды, вы можете просто с помощью двух строк кода (или с помощью скрипта оболочки) получить новейшее состояние и нажать на Heroku.

В настоящее время создание общих репозиториев git-это просто легкая задача. Если у вас есть учетная запись хоста с SSH-доступом, вы можете создать ее с помощью gitolite установка и управление репозиториями и пользователями. И это совершенно бесплатно.

Другая возможность-использование некоторых git-провайдеров, таких какGitHub илиAssambla скорее всего, вы можете найти бесплатные/дешевые планы для размещения небольших проектов.

Может быть, вам стоит взглянуть на SVN post-commit hook : в репозитории сервера SVN вы можете добавить сценарий оболочки с именем post-commit в PATH_TO_REPO/hooks/, который можно запускать после каждого коммита вашей команды.

Этот скрипт должен содержать команды git для отправки в heroku.