Django Framework → HowTo: continuous integration проекта на Django с помощью TeamCity
Введение
В процессе разработки, создавая новый функционал, всё чаще широкими мазками стал задевать старый код чем разрушал логику его работы. Это заставило всё-таки написать юнит и интеграционные тесты для старого кода и автоматизировать их запуск, т.к. гонять руками все тесты как-то грустно. Как раз вспомнилось недавнее руководство по CI Django в Jenkins и довольно старое по Webtest в Django. В итоге была совершена попытка поднять Дженкинса, но он как-то на моей убунте не взлетел и я грешным делом вспомнил про TeamCity. «Раз уж пишу в PyCharm и нашёл к нему подход, то, наверно, и TeamCity осилю, ведь конторка-то одна!» — подумалось мне… В общем-то я оказался прав, и, пока мне позволяет карма, решил подарить вам ультраполезный (и мегаподробный), в отличие от моего предыдущего, мануал :)
Итого: кому требуется руководство по поднятию интеграционного сервера TeamCity, и тестирование в нём Django проектов c тестами nose и webtest в виртуальном окружении python с автоматическим его (окружения) обновлением — добро пожаловать под кат.
Осторожно! Для работы TeamCity требуется (согласно документации) sun/oracle версия JVM…
Программирование → Расширение Google Crome для мониторинга сборок TeamCity
Ребята из JetBrains радуют нас своим замечательным Continuous Integration сервером TeamCity. Одна из самых главных задач такого сервера, является очень быстрый feedback, с чем TeamCity великолепно справляется. В коробке имеется много нотификаторов (IntelliJ Platform plugin, Windows Tray Notifier, Addin for Visual Studio, Eclipse Plugin, Syndication Feed) и для программистов этого хватает. Наш отдел тестирования не имеет желания запускать у себя Idea и подобные «страшные штуки», для того что бы видеть статус сборки.
PHP → Непрерывная интеграция и TeamCity
Непрерывная интеграция (англ. Continuous Integration) — это практика разработки программного обеспечения, которая заключается в выполнении частых автоматизированных сборок проекта для скорейшего выявления и решения интеграционных проблем. В обычном проекте, где над разными частями системы разработчики трудятся независимо, стадия интеграции является заключительной. Она может непредсказуемо задержать окончание работ. Переход к непрерывной интеграции позволяет снизить трудоёмкость интеграции и сделать её более предсказуемой за счет наиболее раннего обнаружения и устранения ошибок и противоречий.
В этом топике мы в общих чертах рассмотрим процесс реализации непрерывной интеграции на примере TeamCity Enterprise 6.0 EAP (build 15400) и обратим внимание на применении инструментов рассмотренных в прошлой теме: Обеспечение качества программного продукта.Разработка → Введение в Continuous Integration
Недавно я попал на новый проект, с задачей создать небольшое приложение с нуля. Разговариваю с тестером:
-А как тебе новые версии поставлять?
-Можешь как все остальные на проекте, через SVN.
-То-есть ты сама билдить будешь?
-Да нет… Бинарники оттуда беру.
Оказывается, очень много программистов, даже имеющих в подписях слова вроде Senior или Superior никогда в жизни не стыкались с понятием CI, или слабо себе представляют что это такое. Не найдя отдельных публикаций на Хабре на эту тему, решил восполнить пробел, а заодно и по возможности заработать желанный инвайт.
-А как тебе новые версии поставлять?
-Можешь как все остальные на проекте, через SVN.
-То-есть ты сама билдить будешь?
-Да нет… Бинарники оттуда беру.
Оказывается, очень много программистов, даже имеющих в подписях слова вроде Senior или Superior никогда в жизни не стыкались с понятием CI, или слабо себе представляют что это такое. Не найдя отдельных публикаций на Хабре на эту тему, решил восполнить пробел, а заодно и по возможности заработать желанный инвайт.
Ruby → Интеграция с TeamCity
В процессе разработки проекта на Ruby 1.9 нам потребовалось использовать систему непрерывной интеграции.
CruiseControl.rb в своё время не подошёл из-за несовместимости с Ruby 1.9, в результате мы остановились на бесплатной TeamCity Professional под Linux.
Начальная настройка тривиальна, потребует лишь распаковки дистрибутивов TeamCity и JRE, а также настройки переменной JRE_HOME.
Прямо из коробки мы можем получить запуск тестов Test::Unit, RSpec, с оценкой покрытия rcov.
Но нам потребовалось большее, например, использовать кастомные тесты.
Рассмотрим тривиальный пример — тесты на компилируемость (например, исходного кода, файлов в формате YAML etc.).

CruiseControl.rb в своё время не подошёл из-за несовместимости с Ruby 1.9, в результате мы остановились на бесплатной TeamCity Professional под Linux.
Начальная настройка тривиальна, потребует лишь распаковки дистрибутивов TeamCity и JRE, а также настройки переменной JRE_HOME.
Прямо из коробки мы можем получить запуск тестов Test::Unit, RSpec, с оценкой покрытия rcov.
Но нам потребовалось большее, например, использовать кастомные тесты.
Рассмотрим тривиальный пример — тесты на компилируемость (например, исходного кода, файлов в формате YAML etc.).
