Как настроить непрерывную интеграцию и непрерывное развертывание для проектов Django? - PullRequest
2 голосов
/ 27 марта 2010

Я изучаю, как настроить CI и непрерывное развертывание для небольшого командного проекта для веб-приложения на основе Django. Вот потребности:

  • Разработчик проверяет код на размещенном сервере SVN (unfuddle.com)
  • Сервер CI обнаруживает новую регистрацию, проверяет исходный код, создает, запускает функциональные тесты.
  • Если все тесты пройдены, разверните код на веб-сервере в Amazon EC2.

На данный момент CI-сервер также отвечает за выполнение функциональных тестов. Я понял, что могу использовать Husdon в качестве CI-сервера, использовать Selenium для выполнения функциональных тестов и использовать Fabric для развертывания сборки на удаленном веб-сервере в облаке Amazon.

Я новичок в разработке Django и не очень знаком с инструментами с открытым исходным кодом. Мои вопросы:

  1. Я могу найти некоторую информацию для интеграции Хадсона с селеном, но я не смог найти много информации о том, как интегрировать Fabric и Hudson. Эта установка жизнеспособна? Вы видите проблемы?
  2. Как интегрировать и развертывать изменения базы данных? Скорее всего, на ранней стадии мы будем менять схему базы данных очень часто с изменениями кода. Я использовал Visual Studio, и проект базы данных сделал его очень простым для развертывания. Интересно, есть ли «устоявшийся, хорошо поддерживаемый» способ сделать это?

Спасибо !!

1 Ответ

1 голос
/ 27 марта 2010

Не могу вам сильно помочь с непрерывной интеграцией / развертыванием - на моей работе мы использовали CruiseControl, и он действовал очень, как вы описали, но я не имел никакого отношения к его настройке.

Однако в ответ на ваш второй вопрос об изменениях базы данных текущее состояние в Django заключается в использовании South , который только что выпустил версию 0.7. Он хорошо работает в среде CI, поскольку переносы БД хранятся вместе с кодом для каждого приложения, поэтому сервер CI может быть настроен на их автоматический запуск перед запуском тестов.

...