// codeart.ru / Обзоры / Пара слов про непрерывную интеграцию и xinc Форум

Пара слов про непрерывную интеграцию и xinc rss подписка

Автор: Evgeny Sergeev

Я большой сторонник agile development, многие идеи этой методологии реально помогают делать хорошие программы с меньшими усилиями. Недавно меня заинтересовал вопрос непрерывной интеграции (Continuous Integration). В этой заметке я хочу поделиться некоторыми соображениями на эту тему.

Для тех, кто не знает, непрерывная интеграция - это практика разработки программ, основанная на автоматизации процессов сборки, тестирования и публикации проектов. Более подробно об этом можно прочитать тут.

Чего хочется

Сейчас я работаю в паре с еще одним программистом (планируется увеличить команду до четырех человек), причем территориально мы находимся в разных городах, поэтому качество нашей работы напрямую зависит от того, насколько эффективно построено взаимодействие между нами. Сейчас для обмена кодом мы используем систему контроля версий bazaar (нравится возможность делать локальные коммиты). Сборка и публикация выполняется вручную. А хотелось бы делать все автоматически.

Очень надеюсь, что непрерывная интеграция решит часть вопросов. Процесс я себе представляю следующим образом:

Почему хочется

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

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

Как сделать

Технически все будет реализовано на xinc. И вот почему:

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

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

  1. Как установить CruiseControll на Fedora 13 Linux
  1. Женя респект! (:
    Я пока до Continuous Integration не дорос. Временные затраты на первичном этапе отодвигают исследования в этом направлении.

    Насчет “Настраивается необходимое окружение” - Кто это делает? Заведение хоста в апаче, создание бд, пользователей, разворачивание дампов, прописывание конфигов…
    Вероятно руками, это и как раз узкое место получается: один шаг до идеальных Night Builds. (:

  2. тоже пробовал в свое время XINC,
    по моему Бергман его сильно забросил
    все усилия сосредоточены были в сторону phpUnderControl

    попробуйте http://buildman.limb-project.com/
    он проще в установке и настройке
    и поддержка phing
    сводится к запуску phing -f build.xml

  3. @dkrnl, настройка необходимого окружения делается через phing, там что хочешь можно написать

  4. @Slach, заинтересовал buildman. Действительно очень простой, а функционала вполне достаточно для моих задач.

  5. Я использовал Hudson для фоновых тестов и уведомлений. Достаточно просто и в общем-то удобно. Жалко только что для такой простой задачи запускается жирная JVM.

    Ещё Hudson умеет кидать задачи на несколько машин, но мне не понадобилось.

Leave a Reply

« В защиту наследования Как установить CruiseControll на Fedora 13 Linux »

 

алмазный диск для болгарки . | Настройка атс Panasonic KX-TES824RU санкт-петербург . | ооо "сириус" .