Открыть сервис

Travis CI

Travis CI — это облачная распределённая система непрерывной интеграции (Continuous Integration, CI), используемая для автоматизации сборки, тестирования и развёртывания программного обеспечения. Сервис предназначен для интеграции с системами управления версиями, преимущественно с GitHub, и позволяет разработчикам автоматически запускать скрипты при каждом изменении кода в репозитории.

История

Travis CI был основан в 2011 году Берлином Шефером, Джошем Калдером и другими разработчиками. Изначально проект создавался как открытое программное обеспечение для сообщества Ruby on Rails, но быстро расширил поддержку на другие языки программирования. Первая публичная версия сервиса была запущена в 2011 году.

В 2012 году компания Travis CI GmbH получила финансирование от венчурных фондов и начала коммерциализацию продукта. В 2013 году был запущен платный сервис Travis CI Pro, предназначенный для частных репозиториев. В 2018 году компания объявила о переходе на новую платформу, основанную на контейнеризации и облачных вычислениях.

В 2019 году Travis CI был приобретён компанией Idera, Inc., владеющей рядом инструментов для разработки программного обеспечения. После приобретения сервис продолжил работу, но столкнулся с рядом изменений в политике ценообразования и функциональности.

Архитектура и принцип работы

Travis CI работает по модели «клиент-сервер». Серверная часть обрабатывает запросы от систем управления версиями, запускает сборки на виртуальных машинах или в контейнерах и передаёт результаты обратно. Клиентская часть представляет собой веб-интерфейс и API.

Основные компоненты

  • Веб-интерфейспанель управления, где разработчики могут просматривать статус сборок, логи и настройки.
  • API — программный интерфейс для интеграции с другими инструментами и автоматизации.
  • Агенты сборки — виртуальные машины (на базе Ubuntu, macOS, Windows) или контейнеры Docker, в которых выполняются скрипты сборки.
  • Очередь заданий — система управления задачами, распределяющая сборки по доступным агентам.

Процесс работы

  1. Разработчик отправляет изменения в репозиторий на GitHub.
  2. GitHub отправляет веб-хук (webhook) на сервер Travis CI.
  3. Сервер проверяет наличие конфигурационного файла .travis.yml в корне репозитория.
  4. Если файл найден, сервер запускает сборку на одном из агентов.
  5. Выполняются команды, описанные в конфигурационном файле (установка зависимостей, запуск тестов, сборка артефактов).
  6. Результаты сборки (успех/неудача, логи) отправляются обратно в GitHub и отображаются в веб-интерфейсе Travis CI.

Конфигурация

Настройка Travis CI осуществляется через файл .travis.yml, который размещается в корне репозитория. Этот файл содержит инструкции для сборки, тестирования и развёртывания.

Пример базовой конфигурации

```yaml language: python python:

  • "3.8"
  • "3.9"

install:

  • pip install -r requirements.txt

script:

```

Основные параметры

  • language — язык программирования проекта (например, python, node_js, ruby, java).
  • osоперационная система для сборки (linux, osx, windows).
  • distдистрибутив Linux (например, bionic, focal).
  • before_install — команды, выполняемые перед установкой зависимостей.
  • install — команды для установки зависимостей.
  • script — команды для запуска тестов или сборки.
  • after_success — команды, выполняемые после успешной сборки.
  • deploy — настройки для автоматического развёртывания.

Поддерживаемые языки и платформы

Travis CI поддерживает более 30 языков программирования, включая:

  • Python
  • JavaScript / Node.js
  • Ruby
  • Java
  • Go
  • PHP
  • C / C++
  • Rust
  • Scala
  • Swift

Сервис предоставляет виртуальные машины на базе Ubuntu (LTS-версии), macOS (для iOS-разработки) и Windows Server. Также поддерживается запуск сборок в контейнерах Docker.

Интеграция с системами управления версиями

Travis CI изначально разрабатывался для интеграции с GitHub. Позднее была добавлена поддержка Bitbucket, GitLab и Assembla. Интеграция осуществляется через веб-хуки и OAuth-аутентификацию.

GitHub

  • Travis CI автоматически синхронизируется с репозиториями GitHub.
  • Для каждого коммита или пул-реквеста может быть запущена сборка.
  • Статус сборки отображается в интерфейсе GitHub (зелёная галочка — успех, красный крест — неудача).

Bitbucket и GitLab

  • Поддерживаются через API и веб-хуки.
  • Требуют ручной настройки в настройках репозитория.

Типы сборок

Travis CI поддерживает несколько типов сборок:

  • Сборка по коммиту — запускается при каждом изменении в репозитории.
  • Сборка по пул-реквесту — запускается для проверки изменений перед слиянием.
  • Периодическая сборка — запускается по расписанию (например, ежедневно).
  • Сборка по тегу — запускается при создании тега в репозитории.

Платные и бесплатные тарифы

Travis CI предлагает несколько тарифных планов:

  • Бесплатный — для открытых репозиториев (public). Включает ограниченное количество параллельных сборок и время выполнения.
  • Travis CI Pro — для частных репозиториев. Предоставляет больше параллельных сборок, приоритетную поддержку и дополнительные функции.
  • Travis CI Enterprise — локальная версия сервиса, развёртываемая на собственных серверах организации.

С 2021 года компания Idera изменила условия бесплатного тарифа, ограничив количество бесплатных сборок для частных репозиториев. Для открытых проектов бесплатный тариф остался доступен.

Преимущества и недостатки

Преимущества

  • Простота настройки — минимальная конфигурация через файл .travis.yml.
  • Интеграция с GitHub — автоматическая синхронизация и отображение статуса сборок.
  • Поддержка множества языков — широкая совместимость с различными технологиями.
  • Облачная инфраструктура — не требует установки и обслуживания серверов.
  • Открытый исходный код — базовая версия сервиса доступна для самостоятельного развёртывания.

Недостатки

  • Ограниченная производительность — бесплатные сборки могут выполняться медленно.
  • Зависимость от облачной инфраструктуры — при сбоях сервиса сборки недоступны.
  • Изменения в политике ценообразования — после приобретения Idera условия стали менее выгодными для небольших команд.
  • Ограниченная поддержка Windows — сборки на Windows доступны только в платных тарифах.

Конкуренты

На рынке систем непрерывной интеграции Travis CI конкурирует с такими сервисами, как:

  • Jenkins — открытая система с возможностью локального развёртывания.
  • GitLab CI — встроенная система в GitLab, поддерживающая как облачные, так и локальные сборки.
  • CircleCIоблачный сервис с высокой производительностью и гибкой настройкой.
  • GitHub Actions — встроенная система CI/CD в GitHub, доступная для всех репозиториев.
  • Azure DevOpsоблачная платформа Microsoft с поддержкой CI/CD.

Применение

Travis CI используется в различных сценариях разработки:

  • Автоматизация тестирования — запуск модульных, интеграционных и функциональных тестов при каждом изменении кода.
  • Сборка и публикация артефактов — создание дистрибутивов, пакетов и образов Docker.
  • Развёртывание — автоматическая выкладка кода на серверы, в облачные платформы или в магазины приложений.
  • Проверка кода — запуск линтеров, статических анализаторов и проверок стиля.
  • Непрерывная интеграция — обеспечение постоянной готовности кода к слиянию и развёртыванию.

Интересные факты

  • Название «Travis» происходит от имени персонажа фильма «Бегущий по лезвию» — Трэвиса (Travis) — и не имеет отношения к одноимённому городу в Техасе.
  • Исходный код сервера Travis CI был открыт под лицензией MIT, но после приобретения Idera разработка открытой версии была приостановлена.
  • В 2020 году Travis CI был признан одним из самых популярных сервисов CI/CD среди проектов с открытым исходным кодом на GitHub.
  • В 2021 году сервис столкнулся с критикой из-за изменения тарифов и ограничения бесплатного доступа для частных репозиториев.

Источники

  • Официальная документация Travis CI
  • Статья «Travis CI: история и развитие» на портале Habr
  • Материалы конференции DevOpsDays 2019
  • Документация GitHub по интеграции с Travis CI
  • Статья «Continuous Integration with Travis CI» в журнале «Linux Magazine»

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →