Travis CI — cloudová CI/CD platforma, která automatizuje sestavení, testování a nasazení mobilních aplikací bez správy vlastní infrastruktury. Služba se integruje přímo s GitHub a Bitbucket a spouští sestavení při každém push nebo Pull Request. Podle údajů Travis CI, 2025 platforma zpracovává více než 10 milionů sestavení měsíčně. Konfigurace se provádí pomocí jediného YAML souboru .travis.yml v kořeni repozitáře.
Hlavní body
Travis CI — cloudová služba průběžné integrace, která automaticky spouští sestavení a testy při změnách v Git repozitáři. Po připojení repozitáře přes GitHub nebo Bitbucket Travis CI sleduje nové commity, Pull Request a vytváření tagů, přičemž provádí konfiguraci z .travis.yml v izolovaném virtuálním prostředí.
Proces práce Travis CI se skládá ze tří fází: trigger (push nebo Pull Request), nastavení prostředí (install) a provádění úloh (script). Služba automaticky vybírá virtuální stroj s předinstalovanou sadou nástrojů — pro iOS jsou k dispozici obrazy macOS s Xcode, pro Android — obrazy Linux s Android SDK a úrovněmi API.
Travis CI podporuje Build Matrix — mechanismus paralelního spouštění jedné konfigurace s různými parametry. Lze například současně testovat iOS aplikaci na Xcode 15 a Xcode 16 a Android aplikaci na API 33 a API 34. Každá kombinace se provádí na samostatném virtuálním stroji, což zkracuje celkovou dobu validace.
Travis CI se liší od Jenkins a GitLab CI zaměřením na jednoduchost konfigurace a absenci infrastrukturních nákladů. Jenkins vyžaduje instalaci na vlastním serveru a konfiguraci agentů, GitLab CI — samoobslužnou nebo cloudovou instanci GitLab. Travis CI funguje na předplatné a nevyžaduje správu serverů.
Ve srovnání s GitHub Actions poskytuje Travis CI vyspělejší obrazy macOS pro iOS sestavení a podrobnou dokumentaci k mobilnímu vývoji. GitHub Actions je naopak lépe integrován s ekosystémem GitHub a má více community-actions pro specifické úlohy mobilního sestavení.
Pro vývoj Android Travis CI nabízí hotové obrazy s Android SDK 34, Gradle 8 a podporou emulátorů. Rychlost spuštění sestavení je 45–90 sekund, což je srovnatelné s konkurencí. Hlavním omezením je limit paralelních sestavení v závislosti na tarifním plánu.
Architektura Travis CI je postavena na mikroslužbách, které spravují frontu úloh, přidělování virtuálních strojů a zpracování výsledků. Při přijetí webhooku z GitHub platforma umístí úlohu do fronty, najde volný virtuální stroj s odpovídajícím jazykovým obrazem a provádí příkazy z .travis.yml.
Každé sestavení se provádí v izolovaném prostředí s čistým obrazem OS. Travis CI podporuje tři typy prostředí: Ubuntu Linux (standardní), macOS (pro iOS a macOS sestavení) a Windows (pro .NET a UWP). Pro mobilní projekty je kritická podpora obrazů macOS s předinstalovanými Xcode a Fastlane.
Životní cyklus sestavení zahrnuje fáze: before_install (nastavení systému), install (instalace závislostí), before_script (příprava na testy), script (spuštění testů a sestavení), after_script (čištění). Každá fáze je volitelná a konfiguruje se v YAML souboru.
Build Matrix umožňuje testování aplikace s různými verzemi jazyka, SDK nebo prostředí v paralelních sestaveních. Matice se definuje pomocí klíčů language, os, env a zahrnuje automatické generování všech možných kombinací. Pro mobilní projekty je to vhodné pro kontrolu kompatibility s různými verzemi iOS nebo Android API.
Při použití matice Travis CI spouští samostatný virtuální stroj pro každou kombinaci. To zvyšuje celkovou spotřebu minut sestavení, ale je kriticky důležité pro projekty podporující více verzí OS. Omezte velikost matice na 4–6 kombinací pro optimální poměr pokrytí a nákladů.
Soubor .travis.yml používá formát YAML a skládá se z kořenových klíčů: language (jazyk), os (OS), dist (verze distribuce), before_install, install, script a deploy. Každý klíč může obsahovat řetězec, pole příkazů nebo slovník pro složitější konfiguraci. Travis CI zpracovává klíče v přísném pořadí, což zaručuje předvídatelnost provedení sestavení.
Pro iOS projekty je povinný klíč osx_image s uvedením verze Xcode, například xcode15.2. Pro Android — klíč android s komponentami SDK. Travis CI podporuje klíč deploy s poskytovateli pro automatické nahrávání artefaktů do App Store Connect, Google Play, Firebase nebo GitHub Releases po úspěšném sestavení.
# Travis CI s Build Matrix pro iOS
language: objective-c
os: osx
osx_image: xcode15.2
env:
- SCHEME=App-iOS
- SCHEME=App-tvOS
script:
- xcodebuild -scheme $SCHEME clean build test
Pro iOS projekty musí .travis.yml specifikovat jazyk objective-c nebo swift, verzi Xcode přes osx_image a instalaci závislostí přes CocoaPods nebo Swift Package Manager. Travis CI podporuje všechny aktuální verze Xcode, včetně Xcode 16 s iOS 18 SDK, což umožňuje testování aplikací na nejnovějších API.
Důležitou fází je správa certifikátů pro podepisování kódu. Používejte šifrované soubory Travis CI pro ukládání provisioning profilů a certifikátů v repozitáři. Fastlane Match je také podporován pomocí šifrovaných proměnných prostředí TRAVIS, což zjednodušuje konfiguraci podepisování pro AdHoc a App Store sestavení.
# Travis CI pro iOS aplikaci s 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
Pro projekty s UI testy na XCTest použijte klíč destinations v xcodebuild k určení simulátoru. Travis CI podporuje spouštění iOS simulátorů na obrazech macOS bez další konfigurace — simulátor se automaticky spustí při provádění testovacího příkazu xcodebuild test.
Pro Android projekty se .travis.yml konfiguruje s jazykem android a uvedením komponent SDK pomocí klíče android. Travis CI poskytuje obrazy Linux s předinstalovanými Java JDK 17, Gradle a základním Android SDK. Další úrovně API a build-tools se instalují pomocí sdkmanager ve fázi before_install.
Klíčovou optimalizací pro Android sestavení je ukládání do mezipaměti adresářů .gradle a .m2. Travis CI podporuje ukládání do mezipaměti pomocí klíče cache, což zkracuje dobu instalace závislostí ze 120 sekund na 10–15 sekund při opakovaných sestaveních. Zadejte cesty mezipaměti pro Gradle wrapper a Android Gradle Plugin.
# Travis CI pro Android aplikaci
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/
Pro spouštění instrumentálních testů na Android emulátoru přidejte fázi before_script se spuštěním emulátoru a čekáním na jeho připravenost. Travis CI podporuje hardwarovou akceleraci KVM na obrazech Linux, což výrazně urychluje provádění UI testů ve srovnání s emulací v softwaru.
Travis CI se integruje s GitHub a Bitbucket pomocí OAuth aplikace, která přidá webhook do repozitáře pro automatické oznamování o nových commitech. Po aktivaci repozitáře v Travis CI všechna push a Pull Request automaticky spouštějí sestavení a stav (passed, failed, pending) se zobrazuje v rozhraní GitHub.
Integrace s GitHub Pull Request — klíčová funkce Travis CI. Stav sestavení se zobrazuje přímo v PR a blokuje sloučení při neúspěšných testech. Konfigurace branch protection v GitHub spolu s Travis CI zaručuje, že do hlavní větve se dostane pouze otestovaný kód.
Travis CI podporuje šifrované proměnné prostředí pro ukládání tokenů App Store Connect, účtů služby Google Play a podpisových klíčů. Proměnné se šifrují pomocí CLI travis encrypt a přidávají se do .travis.yml, což zajišťuje bezpečný přenos citlivých údajů do sestavení.
Šifrované soubory Travis CI umožňují ukládat provisioning profily a iOS certifikáty v GitHub repozitáři bez rizika úniku. Soubor se zašifruje příkazem travis encrypt-file a automaticky dešifruje ve fázi before_install. Toto je standardní přístup pro týmy používající Travis CI k doručování iOS aplikací.
Hlavní výhoda Travis CI — nulové náklady na infrastrukturu. Tým nemusí konfigurovat server, instalovat CI/CD software a monitorovat jeho dostupnost. Celá správa se redukuje na úpravu .travis.yml v repozitáři. Bezplatný plán pro veřejné repozitáře činí Travis CI oblíbenou volbou pro Open Source mobilní projekty.
Omezení Travis CI — limit doby sestavení a paralelních úloh v tarifních plánech. Pro týmy s vysokou frekvencí commitů (20+ denně) a dlouhými integračními testy mohou náklady na cloudové minuty přesáhnout náklady na údržbu vlastního serveru Jenkins. Travis CI také nepodporuje vlastní Docker obrazy na bezplatném plánu.
Pro mobilní vývoj je Travis CI vhodný pro týmy, které používají GitHub, mají méně než 10 vývojářů a nevyžadují vlastní infrastrukturu sestavení. Pro Enterprise projekty s požadavky na shodu nebo potřebou sestavení na vlastních macOS strojích zůstává Jenkins flexibilnějším řešením.
Často kladené otázky
Travis CI — cloudová CI/CD platforma pro automatizaci sestavení, testování a nasazení mobilních aplikací. Služba se integruje s GitHub a Bitbucket, spouští sestavení při každém push a zobrazuje stav v Pull Request pro kontrolu kvality kódu.
Travis CI — cloudová služba bez nutnosti správy serverů, konfigurace přes .travis.yml. Jenkins — self-hosted server s plnou kontrolou infrastruktury a systémem pluginů. Travis CI je jednodušší na konfiguraci, Jenkins flexibilnější pro složité podnikové scénáře.
Uveďte language: swift, verzi Xcode přes osx_image, nainstalujte CocoaPods a Fastlane v before_install. V script přidejte příkazy fastlane scan pro testy a fastlane gym pro sestavení. Certifikáty šifrujte přes travis encrypt-file pro bezpečné uložení v repozitáři.
Uveďte language: android, JDK 17 a komponenty Android SDK přes klíč android. Přidejte ukládání do mezipaměti adresářů .gradle přes cache. V script spusťte Gradle úlohy: ./gradlew assembleDebug a testDebugUnitTest. Pro UI testy nakonfigurujte spuštění emulátoru v before_script.
Ano, Travis CI je vhodný pro malé a střední komerční projekty. Placené plány zahrnují paralelní sestavení, soukromé repozitáře a prioritní podporu. Pro Enterprise s požadavky na shodu se doporučuje Jenkins nebo GitLab CI s vlastní infrastrukturou.
Shrnutí
Vyvineme mobilní aplikaci na klíč
IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.
Přečtěte si také