Как стать автором
Обновить

Интеграция с TeamCity

Время на прочтение2 мин
Количество просмотров4.3K
В процессе разработки проекта на Ruby 1.9 нам потребовалось использовать систему непрерывной интеграции.

CruiseControl.rb в своё время не подошёл из-за несовместимости с Ruby 1.9, в результате мы остановились на бесплатной TeamCity Professional под Linux.

Начальная настройка тривиальна, потребует лишь распаковки дистрибутивов TeamCity и JRE, а также настройки переменной JRE_HOME.

Прямо из коробки мы можем получить запуск тестов Test::Unit, RSpec, с оценкой покрытия rcov.

Но нам потребовалось большее, например, использовать кастомные тесты.

Рассмотрим тривиальный пример — тесты на компилируемость (например, исходного кода, файлов в формате YAML etc.).

image



Естественным способом для запуска наших тестов будет использование Rake. Вот пример задачи для типичного Rails-приложения:

  1. module TeamCity
  2.   class Messaging
  3.     class << self
  4.       def teamcity?
  5.         defined?(Rake::TeamCityApplication)
  6.       end
  7.       def method_missing(symbol, *args)
  8.         Rake::TeamCityApplication.send_msg(
  9.           Rake::TeamCityApplication.tc_message_factory.send(symbol, *args)
  10.         ) if teamcity?
  11.       end
  12.     end
  13.   end
  14. end
  15. desc 'Compiles all sources'
  16. task :compile do
  17.   include TeamCity
  18.   sources = FileList.new('**/*.rb').exclude(/restful\-authentication\/generators\//).to_a
  19.   Messaging.create_tests_count(sources.size)
  20.   sources.each do |filename|
  21.     Messaging.create_test_started("Compiling #{filename}")
  22.     result = system("ruby -c #{filename}")
  23.     unless result
  24.       Messaging.create_test_failed("Compiling #{filename}", "Error compiling #{filename}", '')
  25.     else
  26.       Messaging.create_test_finished("Compiling #{filename}", 0)
  27.     end
  28.   end
  29. end


Теперь создаём проект TeamCity с целью rake compile и вуаля, всё работает;)
______________________
Текст подготовлен в Хабра Редакторе от © SoftCoder.ru
Теги:
Хабы:
+20
Комментарии22

Публикации

Изменить настройки темы

Истории

Работа

Ruby on Rails
10 вакансий
Программист Ruby
8 вакансий

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн