Подтвердить что ты не робот

Развертывание с помощью Git/Github

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

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

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

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

EDIT 2012-03-09: Я нашел http://beanstalkapp.com/ и http://springloops.com и они оба кажутся очень хорошими при развертывании. Я не уверен, могу ли я доверять этим сервисам, но они оба делают именно то, что я хочу. Я буду тестировать оба и поделиться своими результатами здесь, чтобы сообщить всем.

4b9b3361

Ответ 1

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

Ответ 2

Похоже, вам нужна система Непрерывная интеграция. У меня был большой успех с Jenkins и Webistrano.

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

Ответ 3

Правильно ли выбран git, это хороший вопрос.

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

Ответ 4

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

Ответ 5

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

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

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

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

Приветствия