С помощью непрерывной интеграции (CI) разработчики программного обеспечения избавляются от необходимости преодолевать трудоемкий и хлопотный этап интеграции в конце проекта. Вместо того чтобы собирать все отдельные элементы вместе в конце, CI вставляет каждое изменение непосредственно в кодовую базу. Это требует дисциплины и эффективных процессов — в противном случае CI может принести больше вреда, чем пользы. Специально разработанное программное обеспечение упрощает весь процесс.
Если вы еще не уверены, подходит ли CI для вас и вашей команды, вы можете найти всю ключевую информацию и сравнение преимуществ и недостатков в нашей подробной статье о непрерывной интеграции.
Частично полностью независимые, а частично в сочетании с другими известными приложениями, инструменты CI предлагают поддержку в создании репозитория, тестировании и сборке, контроле версий и, конечно, в самой непрерывной интеграции.
8 популярных инструментов CI
В настоящее время в интернете доступно множество различных инструментов непрерывной интеграции, все они обладают различными функциями, призванными помочь разработчикам реализовать непрерывную интеграцию различными способами. Но не только функциональность отличает инструменты CI, они также существенно различаются по цене и вариантам лицензирования. Хотя многие из них с открытым исходным кодом и бесплатны, некоторые поставщики предлагают и коммерческие инструменты. Ниже представлен обзор некоторых наиболее популярных и лучших инструментов непрерывной интеграции и их соответствующих возможностей и функций.
Jenkins
Jenkins — это, пожалуй, один из самых известных инструментов непрерывной интеграции на рынке. Начиная с 2005 года (тогда он еще назывался Hudson), программное обеспечение постоянно развивается. Программа на базе Java предлагает множество функций, которые помогают не только в CI, но и в непрерывной доставке и непрерывном развертывании.
- Основана на Java
- Работает в контейнере EJB
- Более 1000 плагинов
- Также поддерживает непрерывную поставку и непрерывное развертывание
- Может быть объединен со многими различными системами управления версиями
- Управление через GUI (веб-интерфейс), REST API или команды командной строки
- Возможен облачный хостинг
- Бесплатно
- Открытый исходный код (лицензия MIT)
Если вы хотите попробовать Jenkins, наш простой и понятный учебник по Jenkins поможет вам начать работу.
Travis CI
Тем, кто работает с GitHub, наверняка понравится Travis CI, поскольку этот инструмент CI работает без проблем с популярной системой контроля версий. Программа может быть настроена с помощью простого файла YAML, который вы помещаете в корневой каталог проекта разработки. GitHub оповещает Travis CI о любых изменениях, внесенных в репозиторий, и поддерживает проект в актуальном состоянии.
- Основан на Ruby
- Независимость от платформы
- Работает с GitHub
- Конфигурирование с помощью YAML-файлов
- Бесплатно для проектов с открытым исходным кодом
- Стоимость $69-489 в месяц для коммерческих проектов
- Открытый исходный код (лицензия MIT)
Bamboo
Компания Atlassian, которая в настоящее время также предлагает услуги хостинга файлов под названием Bitbucket, предлагает инструмент непрерывной интеграции Bamboo с 2007 года. Помимо помощи разработчикам в интеграции, Bamboo также предлагает функции для развертывания и управления релизами. Инструмент может похвастаться простым в использовании веб-интерфейсом.
- На базе Java
- Независимость от платформы
- Простая интеграция с другими продуктами Atlassian
- Множество дополнительных модулей
- Возможность одновременного запуска нескольких тестов
- Связь через веб-интерфейс и REST-API
- Бесплатно для проектов с открытым исходным кодом, некоммерческих организаций и школьных классов
- В противном случае единовременная плата составляет $10-110 000, в зависимости от количества необходимых серверов
GitLab
GitLab CI — это компонент известной системы управления версиями GitLab. Помимо непрерывной интеграции, GitLab также предлагает непрерывное развертывание и непрерывную доставку. Как и Travis CI, GitLab CI использует YAML для конфигурации. Кроме того, работа с этим программным обеспечением относительно проста.
- Компонент GitLab
- Основан на Ruby и Go
- Конфигурирование с помощью YAML-файлов
- Также поддерживает непрерывную доставку и непрерывное развертывание
- Открытое ядро
- Доступен самостоятельный хостинг и облачный хостинг
- Бесплатная версия имеет ограниченные возможности
- Цены на другие версии составляют $3-99 в месяц и за пользователя
CircleCI
В целях защиты вашей конфиденциальности видео не будет загружаться, пока вы не кликните на него.
Инструмент непрерывной интеграции CircleCI работает совместно с GitHub и Bitbucket. Тестирование выполняется с помощью контейнеров или виртуальной машины. CircleCI уделяет большое внимание плавным и бесшовным процессам разработки, поэтому сборки без ошибок могут быть автоматически развернуты в других средах.
- Конфигурирование с помощью YAML-файлов
- Также поддерживает непрерывную разработку
- Доступны самостоятельный хостинг и облачный хостинг
- Работает в контейнерах Docker, виртуальных машинах Linux и виртуальных машинах macOS.
- Бесплатно для одного контейнера
- В противном случае стоимость составляет $50-3150 в месяц
CruiseControl
CruiseControl — один из старейших инструментов непрерывной разработки на рынке. Он был запущен еще в 2001 году и с тех пор постоянно развивается — в том числе, пионером непрерывной интеграции Мартином Фаулером. Помимо понятной панели инструментов, в распоряжении пользователей имеется множество плагинов, облегчающих работу.
- На основе Java
- Независимость от платформы
- Веб-ориентированная приборная панель
- Доступны версии для Ruby (CruiseControl.rb) и .NET (CruiseControl.NET)
- Открытый исходный код (лицензия BSD)
- Бесплатно
Codeship
CI-инструмент Codeship принадлежит компании CloudBee, в портфолио которой также есть Jenkins. Программа доступна в двух различных версиях: Версия Basic предлагает простой в использовании веб-интерфейс, а версия Pro настраивается с помощью файлов в репозитории. Если вы хотите работать с контейнером Docker, вам потребуется версия Pro.
- Веб-интерфейс (Pro)
- Конфигурационные файлы в репозитории (Pro)
- Поддерживает Docker (Pro)
- Бесплатно до 100 сборок в месяц для одного тестового конвейера
- В противном случае стоимость составляет $75-1,500 в месяц
TeamCity
Программное обеспечение TeamCity особенно впечатляет своими закрытыми коммитами, которые оно использует для тестирования изменений в коде перед их внедрением в основную версию. Только когда исходный код не содержит ошибок, он становится частью кодовой базы для всей команды. TeamCity выполняет тесты автономно в фоновом режиме, чтобы разработчик мог продолжать работу в это время.
- На основе Java
- Независимость от платформы
- Закрытые коммиты
- Бесплатно 100 сборок с тремя агентами сборки
- В противном случае единовременный платеж составляет $299-21,999
- 50% скидка для стартапов и бесплатно для проектов с открытым исходным кодом
Обзорная таблица: инструменты непрерывной интеграции с первого взгляда
Все инструменты CI имеют различные преимущества и недостатки. С помощью приведенной ниже обзорной таблицы вы можете сразу понять, какие программы наиболее подходят для ваших нужд. Например, вы можете быстро понять, поддерживает ли сервис непрерывную доставку или предлагает облачный хостинг.
|
Поддерживает CD |
Облачный хостинг |
Лицензия |
Цена платной версии |
Бесплатная версия |
Специальная функция |
Jenkins |
да |
да |
MIT |
— |
да |
Множество плагинов |
Travis CI |
нет |
да |
MIT |
$69-489 в месяц |
да |
Прямое соединение с GitHub |
Bamboo |
да |
да |
Собственный |
$10-110,000 единовременный платеж |
да |
|
GitLab CI |
да |
да |
MIT/EE |
$4-99 в месяц |
да |
Прямое соединение с другими продуктами Atlassian |
Circle CI |
да |
да |
Собственные |
$50-3,150 в месяц |
да |
Простой в использовании |
CruiseControl |
нет |
нет |
BSD |
— |
да |
Полностью бесплатные |
Codeship |
да |
да |
Собственный |
$75-1,500 в месяц |
да |
Pro & Basic версии |
TeamCity |
да |
нет |
Проприетарная |
$299-21,999 единовременная оплата |
да |
Закрытые коммиты |