Команда онлайн-сервиса Контур.Бухгалтерия сделала из дорожного светофора индикатор состояния тестов релизной ветки на TeamCity. Подобная идея была когда-то описана на Хабре, разработчики Контур.Бухгалтерии модифицировали ее и воплотили в жизнь.
Поскольку релизная ветка — это обновления сервиса, которые вскоре станут доступны пользователям, важно, чтобы все тесты там были «зелеными», то есть успешно пройденными. Если есть хотя бы один красный тест, выкладывать обновления нельзя. Светофор — наглядный индикатор состояния тестов.
Техническими подробностями поделился Вячеслав Овчинников, один из техлидов сервиса и инициатор идеи:
«В статье на Хабре предлагалось подключать светофор по USB к компьютеру с установленной программой, которая опрашивает состояние тестов и передает результат на светофор. Мы сделали иначе: вмонтировали в светофор Raspberry Pi — маленький компьютер на linux, а к нему подключили реле. Компьютер сам запускает проверку состояния тестов и подает сигнал на реле. Написано все это на node.js. Teamcity предоставляет готовый api. Два запроса по сети — и все готово. Это избыточное решение, но поскольку компьютер мы не покупали, нам оно подошло. Зато получилась автономная система: наш светофор не нужно держать рядом компьютером, как это пришлось бы делать, если бы использовали идею с USB».
Раньше состояние тестов проверяли вручную, теперь это делает светофор. Он висит на выходе из open space и виден всей команде разработки. Как только появляются красные тесты, светофор сигнализирует об этом красным светом. Минимизируется риск того, что пользователям будет выложено обновление с ошибками.