Travis CI — felhőalapú CI/CD platform, amely automatizálja a mobilalkalmazások build-elését, tesztelését és telepítését anélkül, hogy saját infrastruktúrát kellene kezelni. A szolgáltatás közvetlenül integrálódik a GitHubbal és Bitbucketkel, minden push vagy Pull Request alkalmával build-eket indítva. A Travis CI, 2025 adatai szerint a platform havonta több mint 10 millió build-et dolgoz fel. A konfiguráció egyetlen YAML fájlon, a .travis.yml-en keresztül történik a repository gyökerében.
Főbb pontok
Travis CI — egy felhőalapú folyamatos integrációs szolgáltatás, amely automatikusan build-eket és teszteket indít a Git repositoryban történt változások után. A repository GitHubon vagy Bitbucketen keresztüli csatlakoztatása után a Travis CI nyomon követi az új commit-eket, Pull Request-eket és tag-ek létrehozását, végrehajtva a .travis.yml konfigurációt egy elkülönített virtuális környezetben.
A Travis CI munkafolyamata három szakaszból áll: trigger (push vagy Pull Request), környezet beállítása (install) és feladatok végrehajtása (script). A szolgáltatás automatikusan kiválasztja a virtuális gépet az előre telepített eszközkészlettel — iOS-hez macOS képek állnak rendelkezésre Xcode-dzal, Androidhoz Linux képek Android SDK-val és API szintekkel.
A Travis CI támogatja a Build Matrix funkciót — egy konfiguráció párhuzamos futtatásának mechanizmusát különböző paraméterekkel. Például egyidejűleg tesztelhető az iOS alkalmazás Xcode 15 és Xcode 16 alatt, az Android alkalmazás pedig API 33 és API 34 alatt. Minden kombináció külön virtuális gépen fut, ami csökkenti a teljes validációs időt.
Travis CI abban különbözik a Jenkinstől és a GitLab CI-től, hogy a konfiguráció egyszerűségére és az infrastrukturális költségek hiányára összpontosít. A Jenkins saját szerveren történő telepítést és ágensek konfigurálását igényel, a GitLab CI pedig egy önállóan kezelt vagy felhőalapú GitLab példányt. A Travis CI előfizetéses alapon működik, és nem igényel szerveradminisztrációt.
A GitHub Actionshoz képest a Travis CI érettebb macOS képeket kínál iOS build-ekhez és részletes dokumentációt a mobilfejlesztéshez. A GitHub Actions ezzel szemben jobban integrálódik a GitHub ökoszisztémájába, és több community-actions-szal rendelkezik specifikus mobil build feladatokhoz.
Android fejlesztéshez a Travis CI kész képeket kínál Android SDK 34-gyel, Gradle 8-cal és emulátor támogatással. A build indítási sebessége 45–90 másodperc, ami összehasonlítható a versenytársakkal. A fő korlát a párhuzamos build-ek limitje, amely a tarifacsomagtól függ.
A Travis CI architektúrája mikroszolgáltatásokra épül, amelyek kezelik a feladatvárakozási sort, a virtuális gépek allokálását és az eredmények feldolgozását. Amikor webhook érkezik a GitHubtól, a platform a feladatot a sorba helyezi, megtalálja a szabad virtuális gépet a megfelelő nyelvi képpel, és végrehajtja a .travis.yml parancsait.
Minden build elkülönített környezetben fut tiszta OS képpel. A Travis CI háromféle környezetet támogat: Ubuntu Linux (standard), macOS (iOS és macOS build-ekhez) és Windows (.NET és UWP számára). Mobil projekteknél kritikus az előre telepített Xcode-dzal és Fastlane-nel rendelkező macOS képek támogatása.
A build életciklusa a következő fázisokat foglalja magában: before_install (rendszer beállítása), install (függőségek telepítése), before_script (felkészülés a tesztekre), script (tesztek és build futtatása), after_script (tisztítás). Minden fázis opcionális és a YAML fájlban konfigurálható.
A Build Matrix lehetővé teszi az alkalmazás tesztelését a nyelv, SDK vagy környezet különböző verzióival párhuzamos build-ekben. A mátrix a language, os, env kulcsokon keresztül van meghatározva, és magában foglalja az összes lehetséges kombináció automatikus generálását. Mobil projekteknél ez hasznos az iOS vagy Android API különböző verzióival való kompatibilitás ellenőrzéséhez.
A mátrix használatakor a Travis CI külön virtuális gépet indít minden kombinációhoz. Ez növeli a build percek teljes fogyasztását, de kritikus fontosságú a több OS verziót támogató projekteknél. Korlátozza a mátrix méretét 4–6 kombinációra az optimális lefedettség és költség arány eléréséhez.
A .travis.yml fájl YAML formátumot használ, és fő kulcsokból áll: language (nyelv), os (OS), dist (disztribúció verziója), before_install, install, script és deploy. Minden kulcs tartalmazhat stringet, parancsok tömbjét vagy szótárat összetettebb konfigurációhoz. A Travis CI a kulcsokat szigorú sorrendben dolgozza fel, ami garantálja a build végrehajtásának kiszámíthatóságát.
iOS projektekhez kötelező az osx_image kulcs az Xcode verziójának megadásával, például xcode15.2. Androidhoz — az android kulcs SDK komponensekkel. A Travis CI támogatja a deploy kulcsot szolgáltatókkal az artifactok automatikus feltöltéséhez az App Store Connectbe, Google Playbe, Firebase-be vagy GitHub Releasesbe sikeres build után.
# Travis CI Build Matrix-szel iOS-hez
language: objective-c
os: osx
osx_image: xcode15.2
env:
- SCHEME=App-iOS
- SCHEME=App-tvOS
script:
- xcodebuild -scheme $SCHEME clean build test
iOS projektekhez a .travis.yml fájlnak meg kell adnia az objective-c vagy swift nyelvet, az Xcode verzióját az osx_image-on keresztül, és a függőségek telepítését CocoaPods vagy Swift Package Manager segítségével. A Travis CI támogatja az összes aktuális Xcode verziót, beleértve az Xcode 16-ot iOS 18 SDK-val, ami lehetővé teszi az alkalmazások tesztelését a legújabb API-kon.
Fontos szakasz a kód aláírásához szükséges tanúsítványok kezelése. Használjon Travis CI titkosított fájlokat a provisioning profilok és tanúsítványok repositoryban való tárolásához. A Fastlane Match szintén támogatott a titkosított TRAVIS környezeti változókon keresztül, ami leegyszerűsíti az aláírás konfigurálását AdHoc és App Store build-ekhez.
# Travis CI iOS alkalmazáshoz Fastlane-nel
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
Az XCTest UI tesztekkel rendelkező projektekhez használja a destinations kulcsot az xcodebuild-ben a szimulátor megadásához. A Travis CI támogatja az iOS szimulátorok indítását macOS képeken további konfiguráció nélkül — a szimulátor automatikusan elindul az xcodebuild test parancs végrehajtásakor.
Android projektekhez a .travis.yml az android nyelvvel és az SDK komponensek android kulcson keresztüli megadásával konfigurálható. A Travis CI Linux képeket biztosít előre telepített Java JDK 17-tel, Gradle-lel és alap Android SDK-val. További API szintek és build-tools a sdkmanager segítségével telepíthetők a before_install fázisban.
Kulcsfontosságú optimalizálás Android build-ekhez a .gradle és .m2 könyvtárak gyorsítótárazása. A Travis CI támogatja a gyorsítótárazást a cache kulcson keresztül, ami a függőségek telepítési idejét 120 másodpercről 10–15 másodpercre csökkenti ismételt build-ek esetén. Adja meg a gyorsítótár elérési útjait a Gradle wrapper és Android Gradle Plugin számára.
# Travis CI Android alkalmazáshoz
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/
Az instrumentációs tesztek Android emulátoron történő futtatásához adja hozzá a before_script szakaszt az emulátor indításával és annak készenlétére való várakozással. A Travis CI támogatja a KVM hardveres gyorsítást Linux képeken, ami jelentősen felgyorsítja az UI tesztek végrehajtását a szoftveres emulációhoz képest.
Travis CI egy OAuth alkalmazáson keresztül integrálódik a GitHubbal és Bitbucketkel, amely webhookot ad hozzá a repositoryhoz az új commit-ek automatikus értesítéséhez. A repository Travis CI-ben történő aktiválása után minden push és Pull Request automatikusan build-et indít, és a státusz (passed, failed, pending) megjelenik a GitHub felületen.
A GitHub Pull Request integráció — a Travis CI kulcsfontosságú funkciója. A build státusza közvetlenül a PR-ben jelenik meg, blokkolva az egyesítést sikertelen tesztek esetén. A GitHub branch protection konfigurálása a Travis CI-vel együtt garantálja, hogy csak tesztelt kód kerüljön a fő ágba.
A Travis CI támogatja a titkosított környezeti változókat az App Store Connect tokenek, Google Play szolgáltatási fiókok és aláírási kulcsok tárolásához. A változók a travis encrypt CLI-n keresztül titkosíthatók és hozzáadhatók a .travis.yml fájlhoz, biztosítva az érzékeny adatok biztonságos továbbítását a build-be.
A Travis CI titkosított fájljai lehetővé teszik a provisioning profilok és iOS tanúsítványok tárolását a GitHub repositoryban szivárgás kockázata nélkül. A fájl a travis encrypt-file paranccsal titkosítható, és automatikusan visszafejthető a before_install szakaszban. Ez a standard megközelítés azoknak a csapatoknak, akik a Travis CI-t használják iOS alkalmazások szállítására.
A Travis CI fő előnye — nulla infrastrukturális költség. A csapatnak nem kell szervert konfigurálnia, CI/CD szoftvert telepítenie és annak elérhetőségét figyelnie. Minden kezelés a .travis.yml szerkesztésére korlátozódik a repositoryban. A nyilvános repositoryk ingyenes terve a Travis CI-t népszerű választássá teszi az Open Source mobil projektek számára.
A Travis CI korlátja — a build idő és a párhuzamos feladatok korlátozása a tarifacsomagokban. A magas commit gyakoriságú (napi 20+) és hosszú integrációs tesztekkel rendelkező csapatok számára a felhő percek költsége meghaladhatja a saját Jenkins szerver fenntartásának költségét. A Travis CI emellett nem támogatja az egyéni Docker képeket az ingyenes csomagban.
Mobilfejlesztéshez a Travis CI azoknak a csapatoknak alkalmas, akik GitHubot használnak, kevesebb mint 10 fejlesztővel rendelkeznek, és nem igényelnek egyéni build infrastruktúrát. Enterprise projektekhez megfelelőségi követelményekkel vagy saját macOS gépeken történő build-elés szükségességével a Jenkins rugalmasabb megoldás marad.
Gyakran Ismételt Kérdések
Travis CI — felhőalapú CI/CD platform mobilalkalmazások build-elésének, tesztelésének és telepítésének automatizálására. A szolgáltatás integrálódik a GitHubbal és Bitbucketkel, build-eket indít minden push-nál, és megjeleníti a státuszt a Pull Request-ben a kódminőség ellenőrzéséhez.
Travis CI — felhőszolgáltatás szerverkezelés nélkül, konfiguráció .travis.yml-en keresztül. Jenkins — self-hosted szerver teljes infrastruktúra-ellenőrzéssel és plugin rendszerrel. A Travis CI egyszerűbb konfigurálni, a Jenkins rugalmasabb összetett vállalati forgatókönyvekhez.
Adja meg a language: swift beállítást, az Xcode verzióját az osx_image-on keresztül, telepítse a CocoaPods-t és Fastlane-t a before_install-ban. A script-ben adja hozzá a fastlane scan parancsot a tesztekhez és a fastlane gym parancsot a build-hez. Titkosítsa a tanúsítványokat a travis encrypt-file segítségével a biztonságos tároláshoz a repositoryban.
Adja meg a language: android, JDK 17 és az Android SDK komponenseket az android kulcson keresztül. Adja hozzá a .gradle könyvtárak gyorsítótárazását a cache-en keresztül. A script-ben futtassa a Gradle feladatokat: ./gradlew assembleDebug és testDebugUnitTest. UI tesztekhez konfigurálja az emulátor indítását a before_script-ben.
Igen, a Travis CI alkalmas kis és közepes méretű kereskedelmi projektekhez. A fizetős csomagok párhuzamos build-eket, privát repositorykat és elsőbbségi támogatást tartalmaznak. Enterprise projektekhez megfelelőségi követelményekkel a Jenkins vagy GitLab CI saját infrastruktúrával ajánlott.
Összefoglalás
Kulcsrakész mobilalkalmazást fejlesztünk
Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.
Olvassa el is