Travis CI: co to jest, możliwości i wykorzystanie w tworzeniu aplikacji

Autor: IT Sectr Opublikowano: 2026-04-14 Czas czytania: 9 min

Travis CI — chmurowa platforma CI/CD, która automatyzuje kompilację, testowanie i wdrażanie aplikacji mobilnych bez zarządzania własną infrastrukturą. Usługa integruje się bezpośrednio z GitHub i Bitbucket, uruchamiając kompilacje przy każdym push lub Pull Request. Według danych Travis CI, 2025, platforma przetwarza ponad 10 mln kompilacji miesięcznie. Konfiguracja odbywa się za pomocą jednego pliku YAML .travis.yml w katalogu głównym repozytorium.

Najważniejsze

  • Travis CI — chmurowa platforma CI/CD do automatyzacji kompilacji i testowania aplikacji mobilnych
  • .travis.yml — plik konfiguracyjny w YAML, określający środowisko, etapy kompilacji i wdrożenie
  • Build Matrix — równoległe uruchamianie kompilacji na różnych wersjach OS, języka lub SDK
  • Integracja — natywna obsługa GitHub, Bitbucket i statusów GitHub Pull Request
  • Infrastruktura chmurowa — preinstalowane środowiska macOS i Linux z Xcode i Android SDK

Czym jest Travis CI i jak działa

Travis CI — to chmurowa usługa ciągłej integracji, która automatycznie uruchamia kompilacje i testy po zmianach w repozytorium Git. Po podłączeniu repozytorium przez GitHub lub Bitbucket Travis CI śledzi nowe commity, Pull Request i tworzenie tagów, wykonując konfigurację z .travis.yml w izolowanym środowisku wirtualnym.

Proces działania Travis CI składa się z trzech etapów: trigger (push lub Pull Request), konfiguracja środowiska (install) i wykonywanie zadań (script). Usługa automatycznie wybiera maszynę wirtualną z preinstalowanym zestawem narzędzi — dla iOS dostępne są obrazy macOS z Xcode, dla Android — obrazy Linux z Android SDK i poziomami API.

Travis CI obsługuje Build Matrix — mechanizm równoległego uruchamiania jednej konfiguracji z różnymi parametrami. Można na przykład jednocześnie przetestować aplikację iOS na Xcode 15 i Xcode 16, a aplikację Android — na API 33 i API 34. Każda kombinacja jest wykonywana na osobnej maszynie wirtualnej, co skraca całkowity czas walidacji.

Travis CI vs inne systemy CI/CD dla projektów mobilnych

Travis CI różni się od Jenkins i GitLab CI nastawieniem na prostotę konfiguracji i brak kosztów infrastrukturalnych. Jenkins wymaga instalacji na własnym serwerze i konfiguracji agentów, GitLab CI — samodzielnego lub chmurowego egzemplarza GitLab. Travis CI działa w modelu subskrypcyjnym i nie wymaga administrowania serwerami.

W porównaniu z GitHub Actions, Travis CI oferuje bardziej dojrzałe obrazy macOS dla kompilacji iOS i szczegółową dokumentację dotyczącą tworzenia aplikacji mobilnych. GitHub Actions z kolei jest lepiej zintegrowany z ekosystemem GitHub i ma więcej community-actions do specyficznych zadań związanych z kompilacją mobilną.

Do tworzenia aplikacji na Androida Travis CI oferuje gotowe obrazy z Android SDK 34, Gradle 8 i obsługą emulatorów. Czas uruchomienia kompilacji wynosi 45–90 sekund, co jest porównywalne z konkurencją. Głównym ograniczeniem jest limit równoległych kompilacji, zależny od planu taryfowego.

Architektura i zasada działania Travis CI

Architektura Travis CI opiera się na mikrousługach zarządzających kolejką zadań, przydzielaniem maszyn wirtualnych i przetwarzaniem wyników. Po otrzymaniu webhooka z GitHub platforma umieszcza zadanie w kolejce, znajduje wolną maszynę wirtualną z odpowiednim obrazem językowym i wykonuje polecenia z .travis.yml.

Każda kompilacja jest wykonywana w izolowanym środowisku z czystym obrazem OS. Travis CI obsługuje trzy typy środowisk: Ubuntu Linux (standardowe), macOS (dla kompilacji iOS i macOS) oraz Windows (dla .NET i UWP). Dla projektów mobilnych kluczowe jest wsparcie dla obrazów macOS z preinstalowanymi Xcode i Fastlane.

Cykl życia kompilacji obejmuje fazy: before_install (konfiguracja systemu), install (instalacja zależności), before_script (przygotowanie do testów), script (uruchomienie testów i kompilacji), after_script (czyszczenie). Każda faza jest opcjonalna i konfigurowana w pliku YAML.

Build Matrix w Travis CI

Build Matrix umożliwia testowanie aplikacji z różnymi wersjami języka, SDK lub środowiska w równoległych kompilacjach. Macierz jest definiowana przez klucze language, os, env i obejmuje automatyczne generowanie wszystkich możliwych kombinacji. Dla projektów mobilnych jest to wygodne do sprawdzania zgodności z różnymi wersjami iOS lub Android API.

Podczas korzystania z macierzy Travis CI uruchamia oddzielną maszynę wirtualną dla każdej kombinacji. Zwiększa to całkowite zużycie minut kompilacji, ale jest krytycznie ważne dla projektów obsługujących wiele wersji OS. Ogranicz rozmiar macierzy do 4–6 kombinacji dla optymalnego stosunku pokrycia do kosztów.

Składnia .travis.yml

Plik .travis.yml używa formatu YAML i składa się z kluczy głównych: language (język), os (OS), dist (wersja dystrybucji), before_install, install, script i deploy. Każdy klucz może zawierać ciąg znaków, tablicę poleceń lub słownik dla bardziej złożonej konfiguracji. Travis CI przetwarza klucze w ścisłej kolejności, co gwarantuje przewidywalność wykonania kompilacji.

Dla projektów iOS wymagany jest klucz osx_image z określeniem wersji Xcode, na przykład xcode15.2. Dla Android — klucz android z komponentami SDK. Travis CI obsługuje klucz deploy z dostawcami do automatycznego przesyłania artefaktów do App Store Connect, Google Play, Firebase lub GitHub Releases po udanej kompilacji.

yaml
# Travis CI z Build Matrix dla iOS
language: objective-c
os: osx
osx_image: xcode15.2
env:
  - SCHEME=App-iOS
  - SCHEME=App-tvOS
script:
  - xcodebuild -scheme $SCHEME clean build test

Konfiguracja .travis.yml dla projektów iOS

Dla projektów iOS .travis.yml musi określać język objective-c lub swift, wersję Xcode przez osx_image oraz instalację zależności przez CocoaPods lub Swift Package Manager. Travis CI obsługuje wszystkie aktualne wersje Xcode, w tym Xcode 16 z iOS 18 SDK, co umożliwia testowanie aplikacji na najnowszych API.

Ważnym etapem jest zarządzanie certyfikatami do podpisywania kodu. Używaj zaszyfrowanych plików Travis CI do przechowywania provisioning profiles i certyfikatów w repozytorium. Fastlane Match jest również obsługiwane przez zaszyfrowane zmienne środowiskowe TRAVIS, co upraszcza konfigurację podpisu dla kompilacji AdHoc i App Store.

yaml
# Travis CI dla aplikacji iOS z 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

Dla projektów z testami UI na XCTest używaj klucza destinations w xcodebuild do określenia symulatora. Travis CI obsługuje uruchamianie symulatorów iOS na obrazach macOS bez dodatkowej konfiguracji — symulator uruchamia się automatycznie podczas wykonywania polecenia testowego xcodebuild test.

Konfiguracja .travis.yml dla projektów Android

Dla projektów Android .travis.yml konfiguruje się z językiem android i określeniem komponentów SDK przez klucz android. Travis CI udostępnia obrazy Linux z preinstalowaną Java JDK 17, Gradle i podstawowym Android SDK. Dodatkowe poziomy API i build-tools są instalowane przez sdkmanager w fazie before_install.

Kluczową optymalizacją dla kompilacji Android jest buforowanie katalogów .gradle i .m2. Travis CI obsługuje buforowanie przez klucz cache, co skraca czas instalacji zależności ze 120 sekund do 10–15 sekund przy powtórnych kompilacjach. Określ ścieżki bufora dla Gradle wrapper i Android Gradle Plugin.

yaml
# Travis CI dla aplikacji 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/

Do uruchamiania testów instrumentalnych na emulatorze Android dodaj etap before_script z uruchomieniem emulatora i oczekiwaniem na jego gotowość. Travis CI obsługuje przyspieszenie sprzętowe KVM na obrazach Linux, co znacznie przyspiesza wykonywanie testów UI w porównaniu z emulacją programową.

Integracja Travis CI z GitHub i Bitbucket

Travis CI integruje się z GitHub i Bitbucket przez aplikację OAuth, która dodaje webhook do repozytorium w celu automatycznego powiadamiania o nowych commitach. Po aktywacji repozytorium w Travis CI wszystkie push i Pull Request automatycznie uruchamiają kompilację, a status (passed, failed, pending) jest wyświetlany w interfejsie GitHub.

Integracja z GitHub Pull Request — kluczowa funkcja Travis CI. Status kompilacji jest wyświetlany bezpośrednio w PR, blokując scalanie przy nieudanych testach. Konfiguracja branch protection w GitHub wraz z Travis CI gwarantuje, że do głównej gałęzi trafia tylko przetestowany kod.

Travis CI obsługuje zaszyfrowane zmienne środowiskowe do przechowywania tokenów App Store Connect, kont serwisowych Google Play i kluczy podpisu. Zmienne są szyfrowane przez CLI travis encrypt i dodawane do .travis.yml, zapewniając bezpieczne przekazywanie wrażliwych danych do kompilacji.

Praca z zaszyfrowanymi plikami

Zaszyfrowane pliki Travis CI umożliwiają przechowywanie provisioning profiles i certyfikatów iOS w repozytorium GitHub bez ryzyka wycieku. Plik jest szyfrowany poleceniem travis encrypt-file i deszyfrowany automatycznie na etapie before_install. Jest to standardowe podejście dla zespołów używających Travis CI do dostarczania aplikacji iOS.

Zalety i ograniczenia Travis CI

Główną zaletą Travis CI są zerowe koszty infrastruktury. Zespół nie musi konfigurować serwera, instalować oprogramowania CI/CD ani monitorować jego dostępności. Całe zarządzanie sprowadza się do edycji .travis.yml w repozytorium. Darmowy plan dla publicznych repozytoriów sprawia, że Travis CI jest popularnym wyborem dla Open Source projektów mobilnych.

Ograniczeniem Travis CI jest limit czasu kompilacji i równoległych zadań w planach taryfowych. Dla zespołów z wysoką częstotliwością commitów (20+ dziennie) i długimi testami integracyjnymi koszty minut chmurowych mogą przekroczyć koszt utrzymania własnego serwera Jenkins. Travis CI nie obsługuje również niestandardowych obrazów Docker na darmowym planie.

Do tworzenia aplikacji mobilnych Travis CI jest odpowiedni dla zespołów, które używają GitHub, liczą mniej niż 10 programistów i nie wymagają niestandardowej infrastruktury kompilacji. Dla projektów Enterprise z wymogami Compliance lub koniecznością kompilacji na własnych maszynach macOS, Jenkins pozostaje bardziej elastycznym rozwiązaniem.

Często zadawane pytania

Czym jest Travis CI w tworzeniu aplikacji?

Travis CI — to chmurowa platforma CI/CD do automatyzacji kompilacji, testowania i wdrażania aplikacji mobilnych. Usługa integruje się z GitHub i Bitbucket, uruchamiając kompilacje przy każdym push i wyświetlając status w Pull Request w celu kontroli jakości kodu.

Czym Travis CI różni się od Jenkins?

Travis CI — usługa chmurowa bez konieczności zarządzania serwerami, konfiguracja przez .travis.yml. Jenkins — serwer self-hosted z pełną kontrolą infrastruktury i systemem wtyczek. Travis CI jest prostszy w konfiguracji, Jenkins bardziej elastyczny dla złożonych scenariuszy korporacyjnych.

Jak skonfigurować .travis.yml dla kompilacji iOS?

Określ language: swift, wersję Xcode przez osx_image, zainstaluj CocoaPods i Fastlane w before_install. W script dodaj polecenia fastlane scan do testów i fastlane gym do kompilacji. Certyfikaty szyfruj przez travis encrypt-file w celu bezpiecznego przechowywania w repozytorium.

Jak skonfigurować .travis.yml dla kompilacji Android?

Określ language: android, JDK 17 i komponenty Android SDK przez klucz android. Dodaj buforowanie katalogów .gradle przez cache. W script uruchom zadania Gradle: ./gradlew assembleDebug i testDebugUnitTest. Dla testów UI skonfiguruj uruchomienie emulatora w before_script.

Czy Travis CI nadaje się do projektów komercyjnych?

Tak, Travis CI nadaje się do projektów komercyjnych małego i średniego rozmiaru. Płatne plany obejmują równoległe kompilacje, prywatne repozytoria i priorytetowe wsparcie. Dla Enterprise z wymogami Compliance zaleca się Jenkins lub GitLab CI z własną infrastrukturą.

Podsumowanie

  • Travis CI — chmurowa platforma CI/CD do automatyzacji kompilacji, testowania i wdrażania aplikacji mobilnych
  • .travis.yml — jeden plik konfiguracyjny w YAML, określający środowisko i etapy kompilacji
  • Build Matrix — równoległe uruchamianie kompilacji z różnymi wersjami OS i SDK do kompleksowego testowania
  • Konfiguracja iOS — obrazy macOS z Xcode, Fastlane, CocoaPods i zaszyfrowane certyfikaty do podpisu
  • Konfiguracja Android — obrazy Linux z Android SDK, buforowaniem Gradle i obsługą emulatorów KVM
  • Integracja — natywna obsługa GitHub i Bitbucket ze statusami kompilacji w Pull Request
  • Dla małych zespołów Travis CI jest preferowany nad Jenkins ze względu na brak kosztów infrastruktury

Opracujemy aplikację mobilną pod klucz

IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.

Omów projekt

Przeczytaj również