CircleCI — обзор нового сервиса Continuous Integration

в 6:09, , рубрики: continious integration, continuous integration, tdd, Веб-разработка, непрерывная интеграция, тестирование веб-приложений, метки: , , , ,

«Вы тестируете? — Возможно.
Все мы согласны, что тестирование – отличная штука, но в реальности доставляет много проблем. В настоящий момент мы занимаемся beta-тестированием партнерского CI сервиса, который предназначен для того, чтобы делать за вас всю тяжелую работу.
Мы работаем над созданием удивительного сервиса CI! Только представьте, что вы сможете использовать исключения для автоматизированного создания тестов! Да, мы работаем над этим!
Ответьте на это сообщение для получения доступа к beta-версии.»

— примерно такие слова в моем вольном переводе с английского я прочитал, зайдя однажды на всем известный airbrakeapp.com, чтобы посмотреть, какие ошибки успели найти юзеры в наших приложениях за ночь.

Прочитал и понял – мысли все-таки материализуются! Вот уже несколько месяцев мы раздумывали, чем тестировать наши коммерческие проекты? Для Open Source прекрасно подходит Travis CI, но в настоящий момент он не поддерживает закрытые репозитории на Github. Джош Калдеримис на февральском «тостере» обещал мне, что «вот-вот скоро» они сделают поддержку приватных репозиториев, но этого пока не произошло. Мы даже попытались поднять собственный CI-сервер на базе Cruise Control и Intergity, но плюнули на это дело, т.к. возникли некоторые трудности с настройкой, а времени разбираться не было. В общем, надо ли говорить, что я нажал «Ответить», не задумываясь?

Итак, что же представляет собой этот самый CircleCI?

Интерфейс и настройки

Первым делом я авторизовался через Github и увидел примерно такой интерфейс:

CircleCI — обзор нового сервиса Continuous Integration

На первый взгляд все просто: в сайдбаре слева в разделе «Available Projects» перечислены все проекты (включая приватные!), к которым имеет доступ мой аккаунт. Поставив галку на проекте, я могу перевести его в «Followed Projects» и CircleCI начнет его отслеживание.

Интерфейс настроек проекта весьма аскетичен, однако позволяет сделать все необходимые настройки. У нас, например, это выглядит так:

CircleCI — обзор нового сервиса Continuous Integration

CircleCI — обзор нового сервиса Continuous Integration

Как мне и обещали, тесты начались после пары кликов мышкой. CircleCI отслеживает все коммиты в отмеченные репозитории и как только появляется новый коммит – запускает билд. По результатам билда на емейл высылается довольно информативное письмо. Отслеживаемые ветки выбирать нельзя, вот как мне это прокомментировал Allen Rohner, один из создателей сервиса:

«All of our plans build all branches, but we're working on better email notifications on a branch, so only the people working in the branch get notified. If we didn't test the branch, how would you know when it's safe to merge?»

В общем, логично.

В настройках проекта я также нашел возможность создать токен для использования API сервиса, но почему-то в тот момент токен я создать не смог. Описание говорит о том, что API предоставляет полный read/write доступ к аккаунту и можно делать с ним все, что хочется. Более детального описания API пока нет, возможно, его еще не планируют показывать широкой публике.

Стоимость

Ну да, а вы думали все это бесплатно? CircleCI предлагает 14-дневный полнофункциональный триал, а также различные тарифные планы:

CircleCI — обзор нового сервиса Continuous Integration

В целом суть такая: от $14 в месяц за каждого разработчика (читай – аккаунт на Github) за самый простой план без параллельных тестов и с суппортом по емейлу. Более дорогие планы отличаются количеством параллельных тестов и уровнем суппорта (забавно, видимо я успел еще отхватить план за $14, а потом он стал стоить $18, результат чего вы можете наблюдать на скриншоте).

Есть еще план для тех, кто тестирует «время от времени», где нет абон. платы, а за каждый билд берут $1. Честно говоря не представляю, как это должно работать. Возможно, там билды нужно будет инициировать вручную.

Заключение

Отдельно хочу упомянуть уровень поддержки, которую мне оказали ребята. Они молниеносно отвечали на все мои вопросы, заданные через интерактивную форму, в течение пары дней сделали ряд улучшений по моему запросу и помогли с настройками проекта: рассказали, до какой версии обновить Selenium, как сделать так, чтобы использовалась нужная версия ruby и адаптера БД и т.д. В общем, видно, что разработчики напрямую заинтересованы в том, чтобы их продукт имел успех и от его использования оставались самые положительные впечатления. Благодаря тому, что общение происходит непосредственно с разработчиками (пока клиентов не много, вероятно), все очень оперативно и качественно.

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

Автор: dlukyanov

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js