Git, Beanstalk, Подход к развертыванию WordPress Ultimate - PullRequest
3 голосов
/ 24 августа 2011

Я использую Git и Beanstalk для локальной разработки WordPress, а затем развертываю на производственном сервере процесс развертывания Beanstalk. Но как мне синхронизировать изменения, сделанные на рабочем сервере, с моим локальным репозиторием разработки / git? Изменения на сервере будут происходить каждый раз, когда кто-то устанавливает плагин.Есть ли способ перенести эти изменения обратно в локальный?

Я ценю любую помощь с пониманием начинающего.Спасибо!

Ответы [ 3 ]

2 голосов
/ 24 августа 2011

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

Я установил gitolite в качестве нашего удаленного репозитория.Он качается.

Наша модель ветвления работает примерно так, с WordPress в качестве контекста:

master - # this is the _vanilla_ install of wordpress with no modifications
prod - # the branch that the production server pushes/pulls to
dev - # dev environment pushes/pulls to, in our case a server
alpha - # really early development, ideas, etc - my personal branch that i work on mostly
features (opt) - # as needed, I'll make feature branches then merge them into the other branches.

Наш продукт, который обрабатывает около 40-45 различных статических файлов в день, имеет крон, которыйавтоматически добавляет / фиксирует измененные пользователем файлы и данные ежедневно.Это забирает все пользовательские изменения и (в вашем случае) запускает установку плагинов.Это здорово, потому что у вас есть история их установок.

Фактические изменения в кодовой базе обычно исследуются в альфа-версии, а затем объединяются в dev.Мы создали несколько хуков, где, когда мы push переходим к ветви dev, сервер dev автоматически pulls вводит новый коммит. Затем они синхронизируются.

После того, как он был протестирован в среде разработкиЯ синхронизирую свою локальную производственную ветку с удаленной, которая, как уже говорилось, получает пользовательский коммит каждый день.Затем я merge или cherry-pick сделаю коммит в продукт, затем push, чтобы подтолкнуть к гитолиту.После этого прод-сервер pulls и все довольны.

Это звучит как большая работа, но на самом деле это было очень эффективно, особенно после некоторого скриптового хука.Я все еще нахожусь в процессе настройки нашего развертывания (например, я могу почти полностью избавиться от ветки alpha и отработать локально от dev/feature), но мы получаем потрясающий бонус, фактически имея ежедневные снимкирабочий сервер и возможность синхронизации всех веток в любое время.

Кроме того, что касается вашей ветки master - оставить это как обычную установку WordPress - это круто, потому что вы действительно можете протестировать обновления новой версии.без труда.Вы можете просто проверить мастер, затем запустить обновление и медленно интегрировать настройки.

1 голос
/ 24 августа 2011

Изменения в идеале не должны производиться на мой взгляд. Разве вы не можете найти способ установки плагинов, с помощью которого вы добавляете плагин в репозиторий git и помещаете его в prod? Я понимаю, что вы, вероятно, говорите об установке плагина из WordPress UI, который добавляет его в PROD, но я чувствую, что вы должны получить содержимое плагина, добавить его в репозиторий и нажать в PROD.

Если это вообще невозможно, вы должны убедиться, что содержимое плагина фиксируется при установке нового плагина в PROD, а затем вы можете git pull контент синхронизировать.

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

Я думаю, что короткий ответ заключается в том, что этот процесс ломается с WordPress. Я еще не нашел решения, в котором wordpress, доступ к которому осуществляется через ftp, может добавить измененные файлы в репозиторий и стать новой версией.

Позвольте мне вернуться на минутку. Я имею в виду без вмешательства пользователя. Если вы отобразите свой ftp как диск и / или подключите ваш производственный сайт к вашей машине в вашей магистрали, а затем зафиксируете изменения, вы сможете перенести события, происходящие на вашем производственном сервере WordPress, в свой репозиторий.

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

Как есть, ситуация ограничивает и требует больше работы. Я полагаю, я мог бы попытаться создать свой собственный автоматический механизм извлечения и регистрации, но это звучит утомительно. Если кто-нибудь знает лучший способ (помимо запуска серверов с SSH), мне было бы интересно услышать решение.

...