Использование Subversion и отправка на промежуточную стадию, а затем на Live Sever

Мы хотим добавить промежуточный сервер и систему контроля версий в наш конвейер разработки. Наш сайт представляет собой сложное веб-приложение, работающее на удаленном сервере Linux с PHP, MySQL и Apache. Мы только что установили Subversion в офисной локальной сети и заставили ее работать в Dreamweaver CS5. Наши машины для разработки работают под управлением Windows.

Вопрос в том, как лучше всего добавить в эту настройку промежуточный сервер. У нас небольшая команда, 3 разработчика, поэтому нам не нужно чрезмерно надежное / сложное решение. Чего я не понимаю, так это того, как протолкнуть изменения из нашего репозитория Subversion (который находится на одной из машин разработчика) на промежуточный или рабочий сервер.

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

  2. Я хочу автоматически загружать файлы на промежуточный сервер, когда разработчики передают их в Subversion. Как это может быть сделано?

  3. Затем мне нужен автоматизированный процесс загрузки файлов с промежуточного сервера на Live-сервер. Это та часть, которую я действительно не понимаю. Тем более, что я не хочу, чтобы Subversion была установлена ​​в Live. Как это обычно делается?

  4. ВСЕ файлы с промежуточного сервера отправлены в Live? Или есть способ подтолкнуть только те, которые изменились с момента предыдущего нажатия?

  5. Я надеялся использовать Windows XAMPP для настройки промежуточного сервера, но наш Live-сервер - это Linux, а в некотором коде нашего сайта есть пути к файлам, специфичные для Linux, которые, похоже, не будут работать в Windows. Как обычно решается эта проблема? Единственное решение - создать новый промежуточный сервер Linux? Я бы предпочел избежать этого, если возможно.

  6. На нашем сайте пользователи могут загружать изображения, которые хранятся в отдельной папке вне корня сайта. Может ли Windows XAMPP работать с такой настройкой? Наша самая большая проблема сейчас - убедиться, что тот же код работает в Linux / Windows. Чего нужно остерегаться? Возможно ли это вообще теоретически?

Спасибо!


person Liquidgraph    schedule 01.12.2010    source источник
comment
Слишком много вопросов в одном. Можете ли вы немного уменьшить объем?   -  person D'Arcy Rittich    schedule 01.12.2010


Ответы (2)


  1. Не требуется. Хуки могут работать на вашем сервере контроля версий. Перехватчики должны иметь возможность отправлять сборку на промежуточный сервер.

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

  3. Автоматическая загрузка означает отсутствие контроля над тем, когда отправлять сборку. В большинстве случаев промежуточные сборки не работают. Я бы посоветовал вам включить в свой рабочий процесс такой «инструмент непрерывной интеграции», как BuildBot. Это позволит сообщить о сломанных сборках и текущем состоянии вашей сборки. При желании вы всегда можете использовать этот механизм для автоматической загрузки хороших сборок на промежуточный сервер.

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

  5. XAMPP действительно работает с окнами. Проверьте это в Google. Тем не менее, ваша промежуточная и живая среда должны быть полностью одинаковыми, потому что это то, для чего предназначена промежуточная среда.

  6. По идее должно работать. Вам нужно будет протестировать вашу конкретную функциональность.

person pyfunc    schedule 01.12.2010

Для вопросов 1 и 2 вы используете ловушку после фиксации в репозитории Subversion (не обязательно на веб-серверах), которая скопирует последнюю версию на ваш промежуточный сервер.

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

4, 5 и 6 - действительно разные вопросы, и их следует задавать отдельно.

person D'Arcy Rittich    schedule 01.12.2010