Всем привет. Прошу совета по организации процесса тестирования и сборки пакетов для небольшого клиент-серверного приложения на Python.
У нас небольшая группа (3 человека), параллельно разрабатываются 3-4 ветки. Разработка и тестирование организована на виртуалках в системе oVirt, дистрибутив - производный от RHEL 6. Репозиторий кода организован на Git в Redmine, репозиторий пакетов - ftp-сервер на одной из машин.
Процесс разработки организован следующим образом:
- Разработчик вносит изменения в код;
- Собирает локально на своей машине пакет со своей веткой и обновляет репозиторий пакетов;
- Откатывает тестовые ВМ до «чистых» снепшотов и перезагружает их;
- Устанавливает на соответствующие ВМ клиентский и серверный пакеты;
yum clean all yum install <package>-<ver>-<release>.<branch>.noarch.rpm
- Запускает программы;
- На ВМ заранее клонирован репозиторий с кодом, поэтому, если возникают ошибки, разработчик-тестер делает:
cd ~/<проект> git fetch origin git checkout <нужная ветка> cd /usr/lib/python2.6/site-packages/<проект> rm -rf <проблемный модуль>.py* ln -s ~/<проект>/<проблемный модуль> vim ~/<проект>/<проблемный модуль>
- Начинает редактировать исходники на тестовой машине и снова всё перепроверять, если ошибка найдена - коммитить;
Так повторяется до 4-5 раз в день, в зависимости от фазы цикла (написание кода или отладка кода). На каждую итерацию тратится до 15 минут - накладные расходы.
Никто из участников разработки не имеет представления о том, каким образом этот процесс может быть оптимально организован. Поэтому просим поделиться опытом.