Travis CI — хмарна CI/CD платформа, яка автоматизує збірку, тестування та розгортання мобільних додатків без управління власною інфраструктурою. Сервіс інтегрується безпосередньо з GitHub та Bitbucket, запускаючи збірки при кожному push або Pull Request. За даними Travis CI, 2025, платформа обробляє понад 10 млн збірок щомісяця. Налаштування виконується через єдиний YAML файл .travis.yml у корені репозиторію.
Головне
Travis CI — це хмарний сервіс безперервної інтеграції, який автоматично запускає збірки та тести при змінах у Git репозиторії. Після підключення репозиторію через GitHub або Bitbucket Travis CI відстежує нові коміти, Pull Request та створення тегів, виконуючи конфігурацію з .travis.yml в ізольованому віртуальному середовищі.
Процес роботи Travis CI складається з трьох етапів: тригер (push або Pull Request), налаштування середовища (install) та виконання завдань (script). Сервіс автоматично вибирає віртуальну машину з попередньо встановленим набором інструментів — для iOS доступні образи macOS із Xcode, для Android — образи Linux із Android SDK та рівнями API.
Travis CI підтримує Build Matrix — механізм паралельного запуску однієї конфігурації з різними параметрами. Наприклад, можна одночасно протестувати iOS додаток на Xcode 15 та Xcode 16, а Android додаток — на API 33 та API 34. Кожна комбінація виконується на окремій віртуальній машині, що скорочує загальний час валідації.
Travis CI відрізняється від Jenkins та GitLab CI орієнтацією на простоту налаштування та відсутність інфраструктурних витрат. Jenkins вимагає встановлення на власний сервер та налаштування агентів, GitLab CI — самокерованого або хмарного GitLab екземпляра. Travis CI працює за підпискою та не вимагає адміністрування серверів.
Порівняно з GitHub Actions, Travis CI надає більш зрілі образи macOS для iOS збірок та детальну документацію з мобільної розробки. GitHub Actions, навпаки, краще інтегрований з екосистемою GitHub та має більше community-акцій для специфічних завдань мобільної збірки.
Для Android розробки Travis CI пропонує готові образи з Android SDK 34, Gradle 8 та підтримкою емуляторів. Швидкість запуску збірки становить 45–90 секунд, що порівняно з конкурентами. Основне обмеження — ліміт паралельних збірок, який залежить від тарифного плану.
Архітектура Travis CI побудована на мікросервісах, які керують чергою завдань, виділенням віртуальних машин та обробкою результатів. При отриманні webhook від GitHub платформа поміщає завдання в чергу, знаходить вільну віртуальну машину з відповідним мовним образом та виконує команди з .travis.yml.
Кожна збірка виконується в ізольованому середовищі з чистим образом ОС. Travis CI підтримує три типи середовищ: Ubuntu Linux (стандартний), macOS (для iOS та macOS збірок) та Windows (для .NET та UWP). Для мобільних проектів критична підтримка образів macOS із попередньо встановленими Xcode та Fastlane.
Життєвий цикл збірки включає фази: before_install (налаштування системи), install (встановлення залежностей), before_script (підготовка до тестів), script (запуск тестів та збірки), after_script (очищення). Кожна фаза опціональна та конфігурується у YAML файлі.
Build Matrix дозволяє тестувати додаток з різними версіями мови, SDK або середовища в паралельних збірках. Матриця задається через ключі language, os, env та включає автоматичну генерацію всіх можливих комбінацій. Для мобільних проектів це зручно для перевірки сумісності з різними версіями iOS або Android API.
При використанні матриці Travis CI запускає окрему віртуальну машину для кожної комбінації. Це збільшує загальне споживання хвилин збірки, але критично важливо для проектів з підтримкою кількох версій ОС. Обмежте розмір матриці до 4–6 комбінацій для оптимального співвідношення покриття та витрат.
Файл .travis.yml використовує формат YAML та складається з кореневих ключів: language, os, dist (версія дистрибутива), before_install, install, script та deploy. Кожен ключ може містити рядок, масив команд або словник для складнішої конфігурації. Travis CI обробляє ключі в строгому порядку, що гарантує передбачуваність виконання збірки.
Для iOS проектів обов'язковий ключ osx_image із зазначенням версії Xcode, наприклад xcode15.2. Для Android — ключ android з компонентами SDK. Travis CI підтримує ключ deploy з провайдерами для автоматичного вивантаження артефактів до App Store Connect, Google Play, Firebase або GitHub Releases після успішної збірки.
# .travis.yml з Build Matrix для iOS
language: objective-c
os: osx
osx_image: xcode15.2
env:
- SCHEME=App-iOS
- SCHEME=App-tvOS
script:
- xcodebuild -scheme $SCHEME clean build test
Для iOS проектів .travis.yml повинен вказувати мову objective-c або swift, версію Xcode через osx_image та встановлення залежностей через CocoaPods або Swift Package Manager. Travis CI підтримує всі актуальні версії Xcode, включаючи Xcode 16 з iOS 18 SDK, що дозволяє тестувати додатки на останніх API.
Важливий етап — управління сертифікатами для підпису коду. Використовуйте Travis CI зашифровані файли для зберігання provisioning profiles та сертифікатів у репозиторії. Fastlane Match також підтримується через зашифровані змінні середовища TRAVIS, що спрощує налаштування підпису для AdHoc та App Store збірок.
# .travis.yml для iOS додатку з Fastlane
language: swift
os: osx
osx_image: xcode15.2
branches:
only:
- main
- /\d+\.\d+\.\d+/
before_install:
- gem install cocoapods
- gem install fastlane
install:
- pod install --repo-update
script:
- fastlane scan
- fastlane gym
Для проектів з UI тестами на XCTest використовуйте ключ destinations у xcodebuild для вказання симулятора. Travis CI підтримує запуск симуляторів iOS на образах macOS без додаткових налаштувань — симулятор запускається автоматично при виконанні тестової команди xcodebuild test.
Для Android проектів .travis.yml налаштовується з мовою android та зазначенням компонентів SDK через ключ android. Travis CI надає образи Linux із попередньо встановленою Java JDK 17, Gradle та базовим Android SDK. Додаткові рівні API та build-tools встановлюються через sdkmanager у фазі before_install.
Ключова оптимізація для Android збірок — кешування директорій .gradle та .m2. Travis CI підтримує кешування через ключ cache, що скорочує час встановлення залежностей зі 120 секунд до 10–15 секунд на повторних збірках. Вкажіть шляхи кешу для Gradle wrapper та Android Gradle Plugin.
# .travis.yml для Android додатку
language: android
dist: jammy
jdk: oraclejdk17
android:
components:
- tools
- platform-tools
- build-tools-34.0.0
- android-34
- extra-google-m2repository
before_script:
- yes | sdkmanager "platforms;android-34"
script:
- ./gradlew assembleDebug testDebugUnitTest
cache:
directories:
- $HOME/.gradle/caches/
- $HOME/.gradle/wrapper/
Для запуску інструментальних тестів на Android емуляторі додайте стадію before_script із запуском емулятора та очікуванням його готовності. Travis CI підтримує апаратне прискорення KVM на образах Linux, що значно прискорює виконання UI тестів порівняно з програмною емуляцією.
Travis CI інтегрується з GitHub та Bitbucket через OAuth додаток, який додає webhook до репозиторію для автоматичного сповіщення про нові коміти. Після активації репозиторію в Travis CI всі push та Pull Request автоматично запускають збірку, а статус (passed, failed, pending) відображається в інтерфейсі GitHub.
Інтеграція з GitHub Pull Request — ключова функція Travis CI. Статус збірки відображається безпосередньо в PR, блокуючи злиття при невдалих тестах. Налаштування захисту гілок в GitHub спільно з Travis CI гарантує, що в основну гілку потрапляє лише протестований код.
Travis CI підтримує зашифровані змінні середовища для зберігання токенів App Store Connect, сервісних акаунтів Google Play та ключів підпису. Змінні шифруються через travis encrypt CLI та додаються до .travis.yml, забезпечуючи безпечну передачу чутливих даних у збірку.
Зашифровані файли Travis CI дозволяють зберігати provisioning profiles та сертифікати iOS у репозиторії GitHub без ризику витоку. Файл шифрується командою travis encrypt-file та розшифровується автоматично на етапі before_install. Це стандартний підхід для команд, які використовують Travis CI для доставки iOS додатків.
Основна перевага Travis CI — нульові витрати на інфраструктуру. Команді не потрібно налаштовувати сервер, встановлювати CI/CD софт та моніторити його доступність. Все управління зводиться до редагування .travis.yml у репозиторії. Безкоштовний план для публічних репозиторіїв робить Travis CI популярним вибором для Open Source мобільних проектів.
Обмеження Travis CI — ліміт часу збірки та паралельних завдань на тарифних планах. Для команд з високою частотою комітів (20+ на день) та довгими інтеграційними тестами витрати на хмарні хвилини можуть перевищити вартість утримання власного Jenkins сервера. Також Travis CI не підтримує кастомні образи Docker на безкоштовному плані.
Для мобільної розробки Travis CI підходить командам, які використовують GitHub, мають менше 10 розробників та не потребують кастомної інфраструктури збірки. Для Enterprise проектів з вимогами Compliance або необхідністю збірки на власних macOS машинах Jenkins залишається більш гнучким рішенням.
Часті запитання
Travis CI — це хмарна CI/CD платформа для автоматизації збірки, тестування та деплою мобільних додатків. Сервіс інтегрується з GitHub та Bitbucket, запускаючи збірки при кожному push та відображаючи статус у Pull Request для контролю якості коду.
Travis CI — хмарний сервіс без необхідності управління серверами, налаштування через .travis.yml. Jenkins — self-hosted сервер з повним контролем інфраструктури та системою плагінів. Travis CI простіше в налаштуванні, Jenkins гнучкіший для складних корпоративних сценаріїв.
Вкажіть language: swift, версію Xcode через osx_image, встановіть CocoaPods та Fastlane у before_install. У script додайте команди fastlane scan для тестів та fastlane gym для збірки. Сертифікати шифруйте через travis encrypt-file для безпечного зберігання в репозиторії.
Вкажіть language: android, JDK 17 та компоненти Android SDK через ключ android. Додайте кешування .gradle директорій через cache. У script запустіть Gradle завдання: ./gradlew assembleDebug та testDebugUnitTest. Для UI тестів налаштуйте запуск емулятора в before_script.
Так, Travis CI підходить для комерційних проектів малого та середнього розміру. Платні тарифи включають паралельні збірки, приватні репозиторії та пріоритетну підтримку. Для Enterprise з вимогами Compliance рекомендується Jenkins або GitLab CI з власною інфраструктурою.
Підсумки
Ми розробимо мобільний застосунок під ключ
IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.
Читайте також