Развертывание с помощью Git / Github - PullRequest
19 голосов
/ 08 марта 2012

Мы пытаемся настроить среду автоматического развертывания с помощью Git / Github.У нас есть 3 разных среды;локально, тестируй и живи.Когда мы добавляем новую функцию в локальную систему, мы сначала загружаем файлы на тестовый сервер, чтобы проверить вновь созданную функцию.Если все в порядке, мы загружаем все файлы на сервер.Но этот процесс «загрузки» не является идеальным решением, так как мы иногда забываем загрузить некоторые файлы.Кстати, у нас также есть мобильное приложение для iPhone и Android, поэтому мобильная среда может стать для нас четвертой средой.

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

На тестовом сервере может быть много коммитов, но мы хотим отправить определенные коммиты на работающий сервер.,Мы не могли найти, как справиться с 3-4 средами и не связываться с кодами.Как мы будем отправлять правильные коды на живой сервер?Как мы будем управлять нашими тестовыми и живыми серверами?Есть ли хорошие источники, рассказывающие, как настроить различные среды и процессы развертывания с помощью Git / Github?Есть ли какие-нибудь статьи, в которых говорилось бы, что делать шаг за шагом?

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

РЕДАКТИРОВАТЬ 2012-03-09: IВы нашли http://beanstalkapp.com/ и http://springloops.com, и оба они кажутся очень хорошими в развертывании.Я не уверен, могу ли я доверять этим услугам, но они оба делают именно то, что я хочу.Я опробую оба и поделюсь своими результатами здесь, чтобы сообщить всем.

Ответы [ 5 ]

8 голосов
/ 28 марта 2012

Я наконец-то нашел то, что искал. http://beanstalkapp.com кажется лучшим выбором. Он имеет функцию автоматического развертывания и поддерживает Git. После недельного тестирования могу сказать, что он работает очень стабильно и быстро. Спасибо всем за помощь и попытку показать мне дорогу.

4 голосов
/ 08 марта 2012

Похоже, вам нужна система Continuous Integration .Я имел большой успех как с Jenkins , так и с Webistrano

Что касается "каких файлов мы должны копировать?"проблема.Вы уже используете git-теги?Если нет, начните использовать их!

2 голосов
/ 08 мая 2012

Я закончил тем, что создал свой собственный элементарный инструмент развертывания, который будет автоматически извлекать новые обновления из репозитория - https://github.com/jesalg/SlimJim - я не думаю, что он точно подойдет вашим потребностям, но вы можете прочитать, как он настроен и, возможно,Вы можете получить некоторые идеи из этого.

2 голосов
/ 08 марта 2012

Является ли Git правильным выбором, это хороший вопрос.

Но если вы собираетесь это сделать, вам следует прочитать страницу руководства gitworkflows .В частности, то, что он порекомендует, и что звучит правильно, учитывая вашу проблему выше, заключается в том, что вам нужно поместить каждую отдельную «вещь», которая будет разработана, в ветку темы / функции, а затем объединить эту ветку в правильное дерево, когда это будет сделано.Это позволяет вам отделить вещи так, чтобы вы объединили то, что нужно и стабильно, и не объединили то, что не нужно.

0 голосов
/ 08 марта 2012

В настоящее время я использую git таким образом и только что опубликовал статью в блоге о здесь .

Что я обычно делаю, это использую хук post-receive, чтобы искать отправленные коммитыв ветку релиза, и при обнаружении развертывает кодовую базу с помощью команды git archive.

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

Посмотрите на это и посмотрите, подходит ли вам это (включает простой сценарий развертывания bash)

Cheers

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