Простое развертывание для одного разработчика с помощью Mercurial и NetBeans? - PullRequest
0 голосов
/ 25 октября 2010

Я кодирую веб-сайт, используя PHP-фреймворк Codeigniter.

Я использую Mercurial для контроля версий.

У меня есть 3 системы, с которыми я работаю.Я пишу код на компьютере с Windows 7, используя Netbeans 6.9.1.Я иногда делаю коммиты и отправляюсь в репозиторий на Bitbucket.org исключительно для целей резервного копирования и контроля версий.

У меня есть «бета» -сайт (на общей коробке Linux с собственным выделенным IP-адресом).адрес), который я загружаю на FTP, где я могу проверить, что все работает так, как задумано, на реальном сайте под управлением Linux.

Как только я доволен этим, я загружаю на свой «живой» сайт, который находится на его собственном выделенном сервере.Опять же, я просто использую FTP для загрузки файлов с моего сервера разработки.

Я понимаю, что все это неправильно.Прежде всего, я должен пойти и изменить некоторые вещи на бета-версии и живых машинах, чтобы они ссылались на правильное доменное имя, а не на localhost.С другой стороны, я не использую Mercurial, чтобы помочь с этим.Я предполагаю, что вместо загрузки с FTP я мог бы использовать Mercurial, чтобы «захватить» определенную ревизию, которую я пометил как готовую к развертыванию.Я также думаю, что я мог бы сделать что-то в Netbeans по-другому, чтобы упростить процесс.

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

Есть ли стандартный способ сделать то, что я ищу?Я видел ссылки на некоторые сторонние приложения для «непрерывной интеграции», но я не уверен, что мне нужно что-то подобное.

Я немного растерялся относительно того, что для меня было бы ПРОСТОЕсделать это сделало бы мою жизнь проще .... любая помощь очень ценится :) Спасибо!

1 Ответ

1 голос
/ 25 октября 2010

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

Если изменения не чувствительны, вы можете добавить две дополнительные ветви для тестового и рабочего серверов, где только применяются изменения конфигурации. Каждый раз, когда вы изменяете что-то по умолчанию и развертываете его для тестирования, вы просто объединяете default с верхом теста и добавляете mercurial различные параметры конфигурации в процессе. Тогда развертывание сервера будет вызовом hg archive в правильной ветви.

Типичная история изменений будет выглядеть так:

O----o-o-o-o-o-o-o-o---o      default
 \          \           \
  T1--------T2-----------T3   test
   \                      \
    P1---------------------P2 production

где в T1 и P1 заполняются параметры для тестирования и производства. Вы также можете использовать эту настройку ветки, чтобы завершить разработку своего сайта, где вы по умолчанию взламываете, и распространять только стабильные изменения в тесте и производстве. 1011 *

Если изменения чувствительны, вы можете создать не версионный скрипт развертывания (или лучше версионный скрипт развертывания и не версионный файл конфигурации), который исправляет вывод hg archive.

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

Обратите внимание, что эта модель отлично работает в среде, где на сервере не вносятся изменения. Если вы вносите изменения в продукт на сервере, вам необходимо скопировать файлы с сервера обратно в среду разработки (с правильной версией), чтобы проверить, что было изменено на сервере. Если вы хотите внести изменения также на сервере, вы можете установить Mercurial также там.

...