Travis CI — molnbaserad CI/CD-plattform som automatiserar byggande, testning och driftsättning av mobila appar utan att hantera egen infrastruktur. Tjänsten integreras direkt med GitHub och Bitbucket och startar byggen vid varje push eller Pull Request. Enligt uppgifter från Travis CI, 2025 bearbetar plattformen över 10 miljoner byggen månatligen. Konfiguration görs via en enda YAML-fil .travis.yml i roten av repot.
Huvudpunkter
Travis CI — en molnbaserad tjänst för kontinuerlig integration som automatiskt startar byggen och tester vid ändringar i Git-repot. Efter att ha anslutit repot via GitHub eller Bitbucket övervakar Travis CI nya commits, Pull Requests och skapande av taggar, och utför konfigurationen från .travis.yml i en isolerad virtuell miljö.
Arbetsprocessen för Travis CI består av tre faser: trigger (push eller Pull Request), miljökonfiguration (install) och utförande av uppgifter (script). Tjänsten väljer automatiskt den virtuella maskinen med en förinstallerad uppsättning verktyg — för iOS finns macOS-avbildningar med Xcode, för Android Linux-avbildningar med Android SDK och API-nivåer.
Travis CI stöder Build Matrix — en mekanism för parallell körning av en konfiguration med olika parametrar. Till exempel kan man samtidigt testa iOS-appen på Xcode 15 och Xcode 16, och Android-appen på API 33 och API 34. Varje kombination körs på en separat virtuell maskin, vilket minskar den totala valideringstiden.
Travis CI skiljer sig från Jenkins och GitLab CI genom fokus på enkel konfiguration och frånvaro av infrastrukturkostnader. Jenkins kräver installation på egen server och konfiguration av agenter, GitLab CI — en självhanterad eller molnbaserad GitLab-instans. Travis CI fungerar via prenumeration och kräver ingen serveradministration.
Jämfört med GitHub Actions erbjuder Travis CI mer mogna macOS-avbildningar för iOS-byggen och detaljerad dokumentation om mobilutveckling. GitHub Actions är däremot bättre integrerat med GitHub-ekosystemet och har fler community-actions för specifika mobila bygguppgifter.
För Android-utveckling erbjuder Travis CI färdiga avbildningar med Android SDK 34, Gradle 8 och stöd för emulatorer. Byggstartshastigheten är 45–90 sekunder, jämförbar med konkurrenterna. Den främsta begränsningen är gränsen för parallella byggen, beroende på prisplan.
Arkitekturen för Travis CI är byggd på mikrotjänster som hanterar uppgiftskön, allokering av virtuella maskiner och bearbetning av resultat. Vid mottagning av en webhook från GitHub placerar plattformen uppgiften i kön, hittar en ledig virtuell maskin med lämplig språkavbildning och utför kommandona från .travis.yml.
Varje bygge utförs i en isolerad miljö med en ren OS-avbildning. Travis CI stöder tre typer av miljöer: Ubuntu Linux (standard), macOS (för iOS- och macOS-byggen) och Windows (för .NET och UWP). För mobilprojekt är stöd för macOS-avbildningar med förinstallerade Xcode och Fastlane avgörande.
Bygglivscykeln omfattar faser: before_install (systemkonfiguration), install (installation av beroenden), before_script (förberedelse för tester), script (körning av tester och bygge), after_script (rensning). Varje fas är valfri och konfigureras i YAML-filen.
Build Matrix gör det möjligt att testa appen med olika versioner av språk, SDK eller miljö i parallella byggen. Matrisen definieras via nycklarna language, os, env och inkluderar automatisk generering av alla möjliga kombinationer. För mobilprojekt är detta praktiskt för att kontrollera kompatibilitet med olika versioner av iOS eller Android API.
Vid användning av matrisen startar Travis CI en separat virtuell maskin för varje kombination. Detta ökar den totala förbrukningen av byggminuter, men är avgörande för projekt som stöder flera OS-versioner. Begränsa matrisens storlek till 4–6 kombinationer för optimalt förhållande mellan täckning och kostnad.
Fil .travis.yml använder YAML-format och består av rotnycklar: language (språk), os (OS), dist (distributionsversion), before_install, install, script och deploy. Varje nyckel kan innehålla en sträng, en array av kommandon eller en ordbok för mer komplex konfiguration. Travis CI bearbetar nycklar i strikt ordning, vilket garanterar förutsägbarhet i byggets utförande.
För iOS-projekt är nyckeln osx_image med angivande av Xcode-version obligatorisk, till exempel xcode15.2. För Android — nyckeln android med SDK-komponenter. Travis CI stöder nyckeln deploy med leverantörer för automatisk uppladdning av artefakter till App Store Connect, Google Play, Firebase eller GitHub Releases efter ett lyckat bygge.
# Travis CI med Build Matrix för iOS
language: objective-c
os: osx
osx_image: xcode15.2
env:
- SCHEME=App-iOS
- SCHEME=App-tvOS
script:
- xcodebuild -scheme $SCHEME clean build test
För iOS-projekt måste .travis.yml ange språket objective-c eller swift, Xcode-version via osx_image och installation av beroenden via CocoaPods eller Swift Package Manager. Travis CI stöder alla aktuella Xcode-versioner, inklusive Xcode 16 med iOS 18 SDK, vilket möjliggör testning av appar på de senaste API:erna.
En viktig fas — hantering av certifikat för kodsignering. Använd krypterade Travis CI-filer för lagring av provisioning profiles och certifikat i repot. Fastlane Match stöds också via krypterade miljövariabler TRAVIS, vilket förenklar konfiguration av signering för AdHoc- och App Store-byggen.
# Travis CI för iOS-app med 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
För projekt med UI-tester på XCTest använd nyckeln destinations i xcodebuild för att ange simulatorn. Travis CI stöder start av iOS-simulatorer på macOS-avbildningar utan extra konfiguration — simulatorn startar automatiskt vid exekvering av testkommandot xcodebuild test.
För Android-projekt konfigureras .travis.yml med språket android och angivande av SDK-komponenter via nyckeln android. Travis CI tillhandahåller Linux-avbildningar med förinstallerade Java JDK 17, Gradle och grundläggande Android SDK. Ytterligare API-nivåer och build-tools installeras via sdkmanager i before_install-fasen.
Den viktigaste optimeringen för Android-byggen — cachelagring av katalogerna .gradle och .m2. Travis CI stöder cachelagring via cache-nyckeln, vilket minskar installationstiden för beroenden från 120 sekunder till 10–15 sekunder vid upprepade byggen. Ange cache-sökvägar för Gradle wrapper och Android Gradle Plugin.
# Travis CI för 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/
För att köra instrumentella tester på Android-emulatorn, lägg till before_script-steget med start av emulatorn och väntan på att den ska bli redo. Travis CI stöder KVM-hårdvaruacceleration på Linux-avbildningar, vilket avsevärt snabbar upp utförandet av UI-tester jämfört med programvaruemulering.
Travis CI integreras med GitHub och Bitbucket via en OAuth-app som lägger till en webhook i repot för automatisk notifiering om nya commits. Efter aktivering av repot i Travis CI startar alla push och Pull Requests automatiskt ett bygge, och status (passed, failed, pending) visas i GitHub-gränssnittet.
Integration med GitHub Pull Request — Travis CI:s nyckelfunktion. Byggstatus visas direkt i PR och blockerar sammanslagning vid misslyckade tester. Konfiguration av branch protection i GitHub tillsammans med Travis CI garanterar att endast testad kod hamnar i huvudgrenen.
Travis CI stöder krypterade miljövariabler för lagring av App Store Connect-token, Google Play-tjänstkonton och signeringsnycklar. Variabler krypteras via travis encrypt CLI och läggs till i .travis.yml, vilket säkerställer säker överföring av känslig data till bygget.
Krypterade filer i Travis CI gör det möjligt att lagra provisioning profiles och iOS-certifikat i GitHub-repot utan risk för läckage. Filen krypteras med kommandot travis encrypt-file och dekrypteras automatiskt i before_install-steget. Detta är standardmetoden för team som använder Travis CI för leverans av iOS-appar.
Den främsta fördelen med Travis CI — noll infrastrukturkostnader. Teamet behöver inte konfigurera server, installera CI/CD-programvara och övervaka dess tillgänglighet. All hantering begränsas till att redigera .travis.yml i repot. Den kostnadsfria planen för offentliga repos gör Travis CI till ett populärt val för Open Source-mobilprojekt.
Begränsningen med Travis CI — tidsgräns för byggen och parallella uppgifter i prisplanerna. För team med hög commit-frekvens (20+ per dag) och långa integrationstester kan kostnaderna för molnminuter överstiga kostnaden för att underhålla en egen Jenkins-server. Travis CI stöder inte heller anpassade Docker-avbildningar på den kostnadsfria planen.
För mobilutveckling är Travis CI lämpligt för team som använder GitHub, har mindre än 10 utvecklare och inte behöver anpassad bygginfrastruktur. För Enterprise-projekt med efterlevnadskrav eller behov av byggen på egna macOS-maskiner förblir Jenkins en mer flexibel lösning.
Vanliga frågor
Travis CI — en molnbaserad CI/CD-plattform för automatisering av byggande, testning och driftsättning av mobila appar. Tjänsten integreras med GitHub och Bitbucket, startar byggen vid varje push och visar status i Pull Request för kvalitetskontroll av kod.
Travis CI — molntjänst utan behov av serverhantering, konfiguration via .travis.yml. Jenkins — self-hosted server med full kontroll över infrastruktur och pluginsystem. Travis CI är enklare att konfigurera, Jenkins är mer flexibelt för komplexa företagsscenarier.
Ange language: swift, Xcode-version via osx_image, installera CocoaPods och Fastlane i before_install. I script lägg till kommandon fastlane scan för tester och fastlane gym för bygge. Kryptera certifikat via travis encrypt-file för säker lagring i repot.
Ange language: android, JDK 17 och Android SDK-komponenter via nyckeln android. Lägg till cachelagring av .gradle-kataloger via cache. I script kör Gradle-uppgifter: ./gradlew assembleDebug och testDebugUnitTest. För UI-tester, konfigurera start av emulator i before_script.
Ja, Travis CI passar för små och medelstora kommersiella projekt. Betalda planer inkluderar parallella byggen, privata repos och prioriterad support. För Enterprise med efterlevnadskrav rekommenderas Jenkins eller GitLab CI med egen infrastruktur.
Sammanfattning
Vi utvecklar en mobil applikation nyckelfärdigt
IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.
Läs också