Travis CI — een cloud CI/CD-platform dat het bouwen, testen en implementeren van mobiele apps automatiseert zonder eigen infrastructuur te beheren. De service integreert rechtstreeks met GitHub en Bitbucket en start builds bij elke push of Pull Request. Volgens gegevens van Travis CI, 2025 verwerkt het platform maandelijks meer dan 10 miljoen builds. Configuratie gebeurt via een enkel YAML-bestand .travis.yml in de root van de repository.
Belangrijkste punten
Travis CI — een cloudgebaseerde continuous integration-service die automatisch builds en tests start bij wijzigingen in de Git-repository. Na het verbinden van de repository via GitHub of Bitbucket volgt Travis CI nieuwe commits, Pull Requests en het aanmaken van tags, en voert de configuratie uit .travis.yml uit in een geïsoleerde virtuele omgeving.
Het werkproces van Travis CI bestaat uit drie fasen: trigger (push of Pull Request), omgevingsconfiguratie (install) en het uitvoeren van taken (script). De service selecteert automatisch de virtuele machine met een vooraf geïnstalleerde set tools — voor iOS zijn macOS-images met Xcode beschikbaar, voor Android Linux-images met Android SDK en API-niveaus.
Travis CI ondersteunt Build Matrix — een mechanisme voor het parallel uitvoeren van één configuratie met verschillende parameters. Je kunt bijvoorbeeld tegelijkertijd een iOS-app testen op Xcode 15 en Xcode 16, en een Android-app op API 33 en API 34. Elke combinatie wordt uitgevoerd op een aparte virtuele machine, wat de totale validatietijd verkort.
Travis CI onderscheidt zich van Jenkins en GitLab CI door de focus op eenvoudige configuratie en het ontbreken van infrastructurele kosten. Jenkins vereist installatie op een eigen server en configuratie van agents, GitLab CI — een zelfbeheerd of cloud GitLab-exemplaar. Travis CI werkt op abonnementsbasis en vereist geen serverbeheer.
Vergeleken met GitHub Actions biedt Travis CI volwassener macOS-images voor iOS-builds en gedetailleerde documentatie voor mobiele ontwikkeling. GitHub Actions is daarentegen beter geïntegreerd met het GitHub-ecosysteem en heeft meer community-actions voor specifieke mobiele build-taken.
Voor Android-ontwikkeling biedt Travis CI kant-en-klare images met Android SDK 34, Gradle 8 en ondersteuning voor emulators. De opstartsnelheid van builds is 45–90 seconden, vergelijkbaar met concurrenten. De belangrijkste beperking is de limiet van parallelle builds, afhankelijk van het tariefplan.
De architectuur van Travis CI is gebaseerd op microservices die de takenwachtrij, toewijzing van virtuele machines en verwerking van resultaten beheren. Bij ontvangst van een webhook van GitHub plaatst het platform de taak in de wachtrij, vindt een vrije virtuele machine met de juiste taal-image en voert de opdrachten uit .travis.yml uit.
Elke build wordt uitgevoerd in een geïsoleerde omgeving met een schone OS-image. Travis CI ondersteunt drie soorten omgevingen: Ubuntu Linux (standaard), macOS (voor iOS- en macOS-builds) en Windows (voor .NET en UWP). Voor mobiele projecten is ondersteuning voor macOS-images met vooraf geïnstalleerde Xcode en Fastlane van cruciaal belang.
De levenscyclus van een build omvat de fasen: before_install (systeemconfiguratie), install (installeren van afhankelijkheden), before_script (voorbereiden op tests), script (uitvoeren van tests en build), after_script (opschonen). Elke fase is optioneel en wordt geconfigureerd in het YAML-bestand.
Build Matrix maakt het mogelijk om de app te testen met verschillende versies van taal, SDK of omgeving in parallelle builds. De matrix wordt gedefinieerd via de keys language, os, env en omvat het automatisch genereren van alle mogelijke combinaties. Voor mobiele projecten is dit handig voor het controleren van compatibiliteit met verschillende versies van iOS of Android API.
Bij gebruik van de matrix start Travis CI een aparte virtuele machine voor elke combinatie. Dit verhoogt het totale verbruik van build-minuten, maar is cruciaal voor projecten die meerdere OS-versies ondersteunen. Beperk de matrixgrootte tot 4–6 combinaties voor een optimale verhouding tussen dekking en kosten.
Het bestand .travis.yml gebruikt YAML-formaat en bestaat uit hoofdsleutels: language (taal), os (OS), dist (distributieversie), before_install, install, script en deploy. Elke sleutel kan een string, een array van opdrachten of een woordenboek bevatten voor complexere configuratie. Travis CI verwerkt sleutels in strikte volgorde, wat de voorspelbaarheid van de build-uitvoering garandeert.
Voor iOS-projecten is de sleutel osx_image met specificatie van de Xcode-versie verplicht, bijvoorbeeld xcode15.2. Voor Android — de sleutel android met SDK-componenten. Travis CI ondersteunt de sleutel deploy met providers voor het automatisch uploaden van artefacten naar App Store Connect, Google Play, Firebase of GitHub Releases na een succesvolle build.
# Travis CI met Build Matrix voor iOS
language: objective-c
os: osx
osx_image: xcode15.2
env:
- SCHEME=App-iOS
- SCHEME=App-tvOS
script:
- xcodebuild -scheme $SCHEME clean build test
Voor iOS-projecten moet .travis.yml de taal objective-c of swift specificeren, de Xcode-versie via osx_image en de installatie van afhankelijkheden via CocoaPods of Swift Package Manager. Travis CI ondersteunt alle huidige Xcode-versies, inclusief Xcode 16 met iOS 18 SDK, waardoor apps op de nieuwste API's kunnen worden getest.
Een belangrijke fase is het beheer van certificaten voor het ondertekenen van code. Gebruik gecodeerde Travis CI-bestanden voor het opslaan van provisioning profiles en certificaten in de repository. Fastlane Match wordt ook ondersteund via gecodeerde omgevingsvariabelen TRAVIS, wat het configureren van ondertekening voor AdHoc- en App Store-builds vereenvoudigt.
# Travis CI voor iOS-app met 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
Gebruik voor projecten met UI-tests op XCTest de key destinations in xcodebuild om de simulator op te geven. Travis CI ondersteunt het starten van iOS-simulators op macOS-images zonder extra configuratie — de simulator start automatisch bij het uitvoeren van de testopdracht xcodebuild test.
Voor Android-projecten wordt .travis.yml geconfigureerd met de taal android en specificatie van SDK-componenten via de android-key. Travis CI biedt Linux-images met vooraf geïnstalleerde Java JDK 17, Gradle en basis Android SDK. Aanvullende API-niveaus en build-tools worden geïnstalleerd via sdkmanager in de before_install-fase.
De belangrijkste optimalisatie voor Android-builds is het cachen van de mappen .gradle en .m2. Travis CI ondersteunt caching via de cache-key, wat de installatietijd van afhankelijkheden verkort van 120 seconden naar 10–15 seconden bij herhaalde builds. Geef de cache-paden op voor Gradle wrapper en Android Gradle Plugin.
# Travis CI voor Android-app
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/
Voeg voor het uitvoeren van instrumentele tests op de Android-emulator de fase before_script toe met het starten van de emulator en wachten tot deze gereed is. Travis CI ondersteunt KVM-hardwareversnelling op Linux-images, wat de uitvoering van UI-tests aanzienlijk versnelt in vergelijking met software-emulatie.
Travis CI integreert met GitHub en Bitbucket via een OAuth-app die een webhook toevoegt aan de repository voor automatische melding van nieuwe commits. Na activatie van de repository in Travis CI starten alle pushes en Pull Requests automatisch een build, en de status (passed, failed, pending) wordt weergegeven in de GitHub-interface.
Integratie met GitHub Pull Request — de belangrijkste functie van Travis CI. De build-status wordt direct in de PR weergegeven en blokkeert samenvoegen bij mislukte tests. Configuratie van branch protection in GitHub samen met Travis CI garandeert dat alleen geteste code in de hoofdtak terechtkomt.
Travis CI ondersteunt gecodeerde omgevingsvariabelen voor het opslaan van App Store Connect-tokens, Google Play-serviceaccounts en ondertekeningssleutels. Variabelen worden gecodeerd via travis encrypt CLI en toegevoegd aan .travis.yml, wat zorgt voor veilige overdracht van gevoelige gegevens naar de build.
Gecodeerde bestanden van Travis CI maken het mogelijk om provisioning profiles en iOS-certificaten op te slaan in de GitHub-repository zonder risico op lekken. Het bestand wordt gecodeerd met het commando travis encrypt-file en automatisch gedecodeerd in de before_install-fase. Dit is de standaardaanpak voor teams die Travis CI gebruiken voor het leveren van iOS-apps.
Het belangrijkste voordeel van Travis CI — nul infrastructuurkosten. Het team hoeft geen server te configureren, CI/CD-software te installeren en de beschikbaarheid ervan te bewaken. Al het beheer beperkt zich tot het bewerken van .travis.yml in de repository. Het gratis plan voor openbare repositories maakt Travis CI een populaire keuze voor Open Source mobiele projecten.
De beperking van Travis CI — de tijdslimiet van builds en parallelle taken in tariefplannen. Voor teams met een hoge commitfrequentie (20+ per dag) en lange integratietests kunnen de kosten van cloudminuten hoger zijn dan het onderhoud van een eigen Jenkins-server. Ook ondersteunt Travis CI geen aangepaste Docker-images op het gratis plan.
Voor mobiele ontwikkeling is Travis CI geschikt voor teams die GitHub gebruiken, minder dan 10 ontwikkelaars hebben en geen aangepaste build-infrastructuur nodig hebben. Voor Enterprise-projecten met compliance-eisen of de noodzaak om op eigen macOS-machines te bouwen, blijft Jenkins een flexibelere oplossing.
Veelgestelde vragen
Travis CI — een cloud CI/CD-platform voor het automatiseren van het bouwen, testen en implementeren van mobiele apps. De service integreert met GitHub en Bitbucket, start builds bij elke push en toont de status in Pull Request voor kwaliteitscontrole van de code.
Travis CI — cloudservice zonder serverbeheer, configuratie via .travis.yml. Jenkins — self-hosted server met volledige controle over infrastructuur en een plug-insysteem. Travis CI is eenvoudiger in configuratie, Jenkins flexibeler voor complexe bedrijfsscenario's.
Specificeer language: swift, de Xcode-versie via osx_image, installeer CocoaPods en Fastlane in before_install. Voeg in script de opdrachten fastlane scan voor tests en fastlane gym voor build toe. Codeer certificaten via travis encrypt-file voor veilige opslag in de repository.
Specificeer language: android, JDK 17 en Android SDK-componenten via de android-key. Voeg caching van .gradle-mappen toe via cache. Start in script de Gradle-taken: ./gradlew assembleDebug en testDebugUnitTest. Configureer voor UI-tests het starten van de emulator in before_script.
Ja, Travis CI is geschikt voor kleine en middelgrote commerciële projecten. Betaalde abonnementen omvatten parallelle builds, privé-repositories en prioritaire ondersteuning. Voor Enterprise met compliance-eisen wordt Jenkins of GitLab CI met eigen infrastructuur aanbevolen.
Samenvatting
We ontwikkelen een mobiele applicatie turnkey
IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.
Lees ook