Travis CI: nedir, özellikleri ve uygulama geliştirmede kullanımı

Yazar: IT Sectr Yayınlanma: 2026-04-14 Okuma süresi: 9 dk

Travis CI, kendi altyapınızı yönetmeden mobil uygulamaların derleme, test ve dağıtımını otomatikleştiren bir bulut CI/CD platformudur. Hizmet, doğrudan GitHub ve Bitbucket ile entegre olur ve her push veya Pull Request'te yapıları tetikler. Travis CI, 2025'ye göre platform aylık 10 milyondan fazla yapı işler. Yapılandırma, depo kökündeki tek bir YAML dosyası .travis.yml aracılığıyla yapılır.

Önemli Noktalar

  • Travis CI — mobil uygulama derleme ve testini otomatikleştiren bir bulut CI/CD platformu
  • .travis.yml — ortamı, derleme aşamalarını ve dağıtımı tanımlayan bir YAML yapılandırma dosyası
  • Build Matrix — farklı işletim sistemi, dil veya SDK sürümlerinde yapıların paralel yürütülmesi
  • Entegrasyon — GitHub, Bitbucket ve GitHub Pull Request durumları için yerel destek
  • Bulut Altyapısı — Xcode ve Android SDK ile önceden yüklenmiş macOS ve Linux ortamları

Travis CI nedir ve nasıl çalışır

Travis CI, bir Git deposunda değişiklik yapıldığında otomatik olarak derlemeleri ve testleri çalıştıran bulut tabanlı bir sürekli entegrasyon hizmetidir. GitHub veya Bitbucket üzerinden bir depo bağladıktan sonra Travis CI, yeni commit'leri, Pull Request'leri ve etiket oluşturmayı izler ve .travis.yml'deki yapılandırmayı izole edilmiş bir sanal ortamda yürütür.

Travis CI'nin çalışma süreci üç aşamadan oluşur: tetikleyici (push veya Pull Request), ortam kurulumu (install) ve görev yürütme (script). Hizmet, otomatik olarak önceden yüklenmiş araç setine sahip bir sanal makine seçer — iOS için Xcode ile macOS görüntüleri, Android için Android SDK ve API seviyeleri ile Linux görüntüleri mevcuttur.

Travis CI, Build Matrix'i destekler — aynı yapılandırmanın farklı parametrelerle paralel yürütülmesi için bir mekanizma. Örneğin, bir iOS uygulamasını aynı anda Xcode 15 ve Xcode 16'da, bir Android uygulamasını da API 33 ve API 34'te test edebilirsiniz. Her kombinasyon ayrı bir sanal makinede çalışarak toplam doğrulama süresini kısaltır.

Travis CI vs mobil projeler için diğer CI/CD sistemleri

Travis CI, kurulum kolaylığına ve altyapı maliyetlerinin olmamasına odaklanmasıyla Jenkins ve GitLab CI'den ayrılır. Jenkins, kendi sunucunuza kurulum ve ajan yapılandırması gerektirir, GitLab CI ise kendi kendine yönetilen veya bulut GitLab örneği gerektirir. Travis CI abonelik bazında çalışır ve sunucu yönetimi gerektirmez.

GitHub Actions ile karşılaştırıldığında, Travis CI iOS yapıları için daha olgun macOS görüntüleri ve ayrıntılı mobil geliştirme dokümantasyonu sağlar. GitHub Actions ise GitHub ekosistemiyle daha iyi entegredir ve belirli mobil yapı görevleri için daha fazla topluluk eylemine sahiptir.

Android geliştirme için Travis CI, Android SDK 34, Gradle 8 ve emülatör desteğiyle hazır görüntüler sunar. Yapı başlatma süresi 45–90 saniyedir ve rakipleriyle karşılaştırılabilir. Ana sınırlama, fiyatlandırma planına bağlı olan paralel yapı limitidir.

Travis CI mimarisi ve çalışma prensibi

Travis CI mimarisi, iş kuyruğunu, sanal makine tahsisini ve sonuç işlemeyi yöneten mikro hizmetler üzerine inşa edilmiştir. GitHub'dan bir webhook aldığında platform, işi bir kuyruğa koyar, uygun dil görüntüsüne sahip mevcut bir sanal makine bulur ve .travis.yml'deki komutları yürütür.

Her yapı, temiz bir işletim sistemi görüntüsüyle izole edilmiş bir ortamda çalışır. Travis CI üç tür ortamı destekler: Ubuntu Linux (standart), macOS (iOS ve macOS yapıları için) ve Windows (.NET ve UWP için). Mobil projeler için, önceden yüklenmiş Xcode ve Fastlane ile macOS görüntülerinin desteği kritik öneme sahiptir.

Yapı yaşam döngüsü şu aşamaları içerir: before_install (sistem kurulumu), install(bağımlılıkların yüklenmesi), before_script(test hazırlığı), script(testlerin ve yapının çalıştırılması), after_script(temizlik). Her aşama isteğe bağlıdır ve YAML dosyasında yapılandırılabilir.

Travis CI'da Build Matrix

Build Matrix, paralel yapılarda farklı dil, SDK veya ortam sürümleriyle bir uygulamayı test etmeye olanak tanır. Matris, language, os, env anahtarları aracılığıyla tanımlanır ve olası tüm kombinasyonların otomatik olarak oluşturulmasını içerir. Mobil projeler için, farklı iOS veya Android API sürümleriyle uyumluluğu kontrol etmek için kullanışlıdır.

Matrisi kullanırken Travis CI, her kombinasyon için ayrı bir sanal makine başlatır. Bu, toplam yapı dakikası tüketimini artırır ancak birden çok işletim sistemi sürümünü destekleyen projeler için kritik öneme sahiptir. Optimum kapsama-maliyet oranı için matris boyutunu 4–6 kombinasyonla sınırlayın.

.travis.yml Sözdizimi

.travis.yml dosyası YAML formatını kullanır ve şu kök anahtarlardan oluşur: language, os, dist (dağıtım sürümü), before_install, install, script ve deploy. Her anahtar, daha karmaşık yapılandırma için bir dize, komut dizisi veya sözlük içerebilir. Travis CI anahtarları katı bir sırayla işleyerek yapı yürütmenin öngörülebilirliğini sağlar.

iOS projeleri için Xcode sürümüyle birlikte osx_image anahtarı zorunludur, örneğin xcode15.2. Android için — SDK bileşenleriyle birlikte android anahtarı. Travis CI, başarılı bir yapıdan sonra App Store Connect, Google Play, Firebase veya GitHub Releases'e otomatik yapıt yüklemesi için sağlayıcılarla birlikte deploy anahtarını destekler.

yaml
# iOS için Build Matrix ile .travis.yml
language: objective-c
os: osx
osx_image: xcode15.2
env:
  - SCHEME=App-iOS
  - SCHEME=App-tvOS
script:
  - xcodebuild -scheme $SCHEME clean build test

iOS projeleri için .travis.yml yapılandırması

iOS projeleri için .travis.yml, dil olarak objective-c veya swift, osx_image aracılığıyla Xcode sürümü ve CocoaPods veya Swift Package Manager aracılığıyla bağımlılık yüklemeyi belirtmelidir. Travis CI, iOS 18 SDK ile Xcode 16 dahil tüm güncel Xcode sürümlerini destekleyerek uygulamaların en son API'lerde test edilmesine olanak tanır.

Önemli bir adım, kod imzalama için sertifikaların yönetilmesidir. Sağlama profillerini ve sertifikaları depoda saklamak için Travis CI şifrelenmiş dosyalarını kullanın. Fastlane Match ayrıca şifrelenmiş TRAVIS ortam değişkenleri aracılığıyla desteklenir ve AdHoc ve App Store yapıları için imzalama kurulumunu basitleştirir.

yaml
# Fastlane ile iOS uygulaması için .travis.yml
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

XCTest üzerinde UI testleri olan projeler için, simülatörü belirtmek üzere xcodebuild'de destinations anahtarını kullanın. Travis CI, ek yapılandırma gerektirmeden macOS görüntülerinde iOS simülatörlerini çalıştırmayı destekler — simülatör, xcodebuild test komutu yürütüldüğünde otomatik olarak başlar.

Android projeleri için .travis.yml yapılandırması

Android projeleri için .travis.yml, android dili ve android anahtarı aracılığıyla belirtilen SDK bileşenleriyle yapılandırılır. Travis CI, önceden yüklenmiş Java JDK 17, Gradle ve temel Android SDK ile Linux görüntüleri sağlar. Ek API seviyeleri ve build-tools, before_install aşamasında sdkmanager aracılığıyla yüklenir.

Android yapıları için önemli bir optimizasyon, .gradle ve .m2 dizinlerinin önbelleğe alınmasıdır. Travis CI, cache anahtarı aracılığıyla önbelleğe almayı destekleyerek sonraki yapılarda bağımlılık yükleme süresini 120 saniyeden 10–15 saniyeye düşürür. Gradle wrapper ve Android Gradle Plugin için önbellek yollarını belirtin.

yaml
# Android uygulaması için .travis.yml
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/

Bir Android emülatöründe enstrümante testler çalıştırmak için, emülatör başlatma ve hazır olma beklemesiyle before_script aşaması ekleyin. Travis CI, Linux görüntülerinde KVM donanım hızlandırmasını destekleyerek yazılım öykünmesine kıyasla UI test yürütmesini önemli ölçüde hızlandırır.

Travis CI'nin GitHub ve Bitbucket ile entegrasyonu

Travis CI, yeni commit'lerin otomatik bildirimi için depoya bir webhook ekleyen bir OAuth uygulaması aracılığıyla GitHub ve Bitbucket ile entegre olur. Travis CI'da depoyu etkinleştirdikten sonra, tüm push'lar ve Pull Request'ler otomatik olarak bir yapıyı tetikler ve durum (passed, failed, pending) GitHub arayüzünde görüntülenir.

GitHub Pull Request ile entegrasyon, Travis CI'nin önemli bir özelliğidir. Yapı durumu doğrudan PR'de görüntülenir ve testler başarısız olursa birleştirmeyi engeller. GitHub'da dal korumasının Travis CI ile birlikte yapılandırılması, yalnızca test edilmiş kodun ana dala ulaşmasını sağlar.

Travis CI, App Store Connect token'larını, Google Play hizmet hesaplarını ve imzalama anahtarlarını saklamak için şifrelenmiş ortam değişkenlerini destekler. Değişkenler travis encrypt CLI aracılığıyla şifrelenir ve .travis.yml'ye eklenir, hassas verilerin yapıya güvenli bir şekilde aktarılmasını sağlar.

Şifrelenmiş dosyalarla çalışma

Travis CI'daki şifrelenmiş dosyalar, sızıntı riski olmadan iOS sağlama profillerini ve sertifikalarını bir GitHub deposunda saklamaya olanak tanır. Dosya, travis encrypt-file komutuyla şifrelenir ve before_install aşamasında otomatik olarak çözülür. Bu, iOS uygulama teslimatı için Travis CI kullanan ekipler için standart yaklaşımdır.

Travis CI'nin avantajları ve sınırlamaları

Travis CI'nin ana avantajı sıfır altyapı maliyetidir. Ekibin bir sunucu kurması, CI/CD yazılımı yüklemesi veya kullanılabilirliğini izlemesi gerekmez. Tüm yönetim, depodaki .travis.yml'yi düzenlemeye indirgenir. Genel depolar için ücretsiz plan, Travis CI'yi Açık Kaynak mobil projeler için popüler bir seçim haline getirir.

Travis CI'nin sınırlaması, fiyatlandırma planlarındaki yapı süresi sınırı ve paralel iş sınırlarıdır. Yüksek commit sıklığına (günde 20+) ve uzun entegrasyon testlerine sahip ekipler için bulut dakika maliyetleri, kendi Jenkins sunucunuzu sürdürme maliyetini aşabilir. Travis CI ayrıca ücretsiz planda özel Docker görüntülerini desteklemez.

Mobil geliştirme için Travis CI, GitHub kullanan, 10'dan az geliştiricisi olan ve özel yapı altyapısı gerektirmeyen ekipler için uygundur. Uyumluluk gereksinimleri olan veya özel macOS makinelerinde derleme ihtiyacı olan Kurumsal projeler için Jenkins daha esnek bir çözüm olmaya devam etmektedir.

Sıkça Sorulan Sorular

Uygulama geliştirmede Travis CI nedir

Travis CI, mobil uygulamaların derleme, test ve dağıtımını otomatikleştiren bir bulut CI/CD platformudur. Hizmet, GitHub ve Bitbucket ile entegre olur, her push'ta yapıyı tetikler ve kod kalite kontrolü için Pull Request'lerde durumu görüntüler.

Travis CI Jenkins'ten nasıl farklıdır

Travis CI, sunucu yönetimi gerektirmeyen, .travis.yml aracılığıyla yapılandırılan bir bulut hizmetidir. Jenkins, tam altyapı kontrolü ve eklenti sistemi ile kendi kendine barındırılan bir sunucudur. Travis CI kurulumu daha basittir, Jenkins karmaşık kurumsal senaryolar için daha esnektir.

iOS yapısı için .travis.yml nasıl yapılandırılır

language: swift belirtin, osx_image aracılığıyla Xcode sürümünü ayarlayın, before_install'da CocoaPods ve Fastlane'i yükleyin. script'te testler için fastlane scan ve yapı için fastlane gym komutlarını ekleyin. Depoda güvenli saklama için travis encrypt-file kullanarak sertifikaları şifreleyin.

Android yapısı için .travis.yml nasıl yapılandırılır

language: android, JDK 17 ve android anahtarı aracılığıyla Android SDK bileşenlerini belirtin. cache aracılığıyla .gradle dizinlerinin önbelleğe alınmasını ekleyin. script'te Gradle görevlerini çalıştırın: ./gradlew assembleDebug ve testDebugUnitTest. UI testleri için before_script'te emülatör başlatmayı yapılandırın.

Travis CI ticari projeler için uygun mudur

Evet, Travis CI küçük ve orta ölçekli ticari projeler için uygundur. Ücretli planlar paralel yapılar, özel depolar ve öncelikli destek içerir. Uyumluluk gereksinimleri olan Kurumsal için özel altyapıyla Jenkins veya GitLab CI önerilir.

Özet

  • Travis CI — mobil uygulamaların derleme, test ve dağıtımını otomatikleştiren bir bulut CI/CD platformu
  • .travis.yml — ortamı ve yapı aşamalarını tanımlayan tek bir YAML yapılandırma dosyası
  • Build Matrix — kapsamlı testler için farklı işletim sistemi ve SDK sürümleriyle paralel yapı yürütme
  • iOS kurulumu — Xcode, Fastlane, CocoaPods ve imzalama için şifrelenmiş sertifikalarla macOS görüntüleri
  • Android kurulumu — Android SDK, Gradle önbelleği ve KVM emülatör desteğiyle Linux görüntüleri
  • Entegrasyon — Pull Request'lerde yapı durumuyla GitHub ve Bitbucket için yerel destek
  • Küçük ekipler için altyapı maliyeti olmaması nedeniyle Travis CI Jenkins'e tercih edilir

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış

Ayrıca okuyun