Прочитал на хабре "Введение в Continuous Integration". Мне кажется неправильной сама идея коммитить что попало, а потом мастерить роботов, которые будут периодически всё это тестировать и рассказывать о неудачах. Если основная идея в том, чтобы исходный код всегда был работоспособен, такой робот просто бесполезен, и даже чтобы максимально быстро неполадки обнаруживать, будет эффективнее тестировать перед коммитом, а не после.
У нас используется Mercurial, который позволяет писать хуки для многих событий. В частности, перед коммитом проверяется синтаксис изменённых файлов, перед выталкиванием накопленных изменений в репозиторий запускаются тесты. Если что-то не так, операция прерывается. Таким образом, в репозиторий просто не попадает код, который всё сразу ломает. Для предотвращения логических ошибок, которые тестами не отслеживаются, есть стабильная и нестабильная ветка исходного кода.
Допускаю, что в больших проектах компиляция может занимать так долго, что никому не захочется перед каждым выталкиванием это делать. Но и это, мне кажется, от неправильной организации: (1) выталкивать надо не после каждого изменения, и (2) правильное разделение проекта на модули решает эту проблему. И, в любом случае, времени на сборку вряд ли уйдёт больше, чем на разруливание хаоса, возникшего в связи с пропущенной в репозиторий поломкой.
2010/02/02
Подписаться на:
Комментарии к сообщению (Atom)
Ярлыки
Архив блога
-
▼
2010
(20)
-
►
Январь
(16)
- Google хочет модернизировать DNS
- Об объединении усилий оппозиции
- Lucid Lynx и шифрование
- О понимании умом
- Lucid Lynx
- Mona Mur & En Esch
- HTML5 видео в массы
- О запрете одиночных пикетов
- О том, что ложки нет
- О файловых хранилищах
- HTML5 audio
- Python и else
- О применении XSLT к RSS
- О "Стратегии 31"
- Видео в Опере
- О федеральном телевидении
-
►
Январь
(16)
-
►
2009
(130)
-
►
Ноябрь
(15)
- Об RSS лентах на mevio.com
- Об ответственности для автошкол
- О креационизме и эволюции
- Google Chrome и прокси
- Universal Edit Button для Chrome
- Об использовании системных функций в браузерах
- Про Google App Engine и "naked domains"
- V 2009 vs 1983
- О новом языке Go
- О системе на флэшке
- NB: автоматический запуск screen
- О браузерах и динамических библиотеках
- gaewiki
- О новых окнах
- О переходе на Google App Engine
-
►
Ноябрь
(15)
Обо мне
- Justin Forest
- I work for a software company as a software engineer, in my spare time I do promotion for the Russian Industrial Scene.
0 коммент.:
Отправить комментарий