Travis CI: bu nədir, imkanları və tətbiq inkişafında istifadəsi

Müəllif: IT Sectr Dərc olunub: 2026-04-14 Oxuma vaxtı: 9 dəq

Travis CI — öz infrastrukturunuzu idarə etmədən mobil tətbiqlərin qurulmasını, test edilməsini və yerləşdirilməsini avtomatlaşdıran bulud CI/CD platformasıdır. Xidmət birbaşa GitHub və Bitbucket ilə inteqrasiya olunur, hər push və ya Pull Request zamanı qurmaları işə salır. Travis CI, 2025 məlumatlarına görə, platforma aylıq 10 milyondan çox qurma emal edir. Konfiqurasiya repozitorinin kökündə yeganə YAML faylı .travis.yml vasitəsilə həyata keçirilir.

Əsas məqamlar

  • Travis CI — mobil tətbiqlərin qurulması və test edilməsinin avtomatlaşdırılması üçün bulud CI/CD platforması
  • .travis.yml — mühiti, qurma mərhələlərini və yerləşdirməni təyin edən YAML konfiqurasiya faylı
  • Build Matrix — OS, dil və ya SDK-nın müxtəlif versiyalarında qurmaların paralel işə salınması
  • İnteqrasiya — GitHub, Bitbucket və GitHub Pull Request statuslarının dəstəyi
  • Bulud infrastrukturu — Xcode və Android SDK ilə əvvəlcədən quraşdırılmış macOS və Linux mühitləri

Travis CI nədir və necə işləyir

Travis CI — Git repozitorisində dəyişikliklər olduqda avtomatik olaraq qurma və testləri işə salan bulud davamlı inteqrasiya xidmətidir. Repozitorini GitHub və ya Bitbucket vasitəsilə qoşduqdan sonra Travis CI yeni commitləri, Pull Request-i və teqlərin yaradılmasını izləyir, .travis.yml-dən konfiqurasiyanı izolyasiya edilmiş virtual mühitdə yerinə yetirir.

Travis CI-nin iş prosesi üç mərhələdən ibarətdir: trigger (push və ya Pull Request), mühitin qurulması (install) və tapşırıqların yerinə yetirilməsi (script). Xidmət avtomatik olaraq əvvəlcədən quraşdırılmış alətlər dəsti olan virtual maşını seçir — iOS üçün Xcode ilə macOS obrazları, Android üçün Android SDK və API səviyyələri ilə Linux obrazları mövcuddur.

Travis CI Build Matrix — müxtəlif parametrlərlə bir konfiqurasiyanın paralel işə salınması mexanizmini dəstəkləyir. Məsələn, eyni anda iOS tətbiqini Xcode 15 və Xcode 16-da, Android tətbiqini isə API 33 və API 34-də test etmək olar. Hər kombinasiya ayrıca virtual maşında yerinə yetirilir ki, bu da ümumi validasiya vaxtını azaldır.

Travis CI vs mobil layihələr üçün digər CI/CD sistemləri

Travis CI Jenkins və GitLab CI-dən konfiqurasiyanın sadəliyi və infrastruktur xərclərinin olmaması ilə fərqlənir. Jenkins öz serverinizdə quraşdırma və agentlərin konfiqurasiyasını tələb edir, GitLab CI — özünüidarə edən və ya bulud GitLab nümunəsini tələb edir. Travis CI abunə əsasında işləyir və serverlərin idarə edilməsini tələb etmir.

GitHub Actions ilə müqayisədə, Travis CI iOS qurmaları üçün daha yetkin macOS obrazları və mobil inkişaf üzrə ətraflı sənədlər təqdim edir. GitHub Actions isə əksinə, GitHub ekosistemi ilə daha yaxşı inteqrasiya olunub və mobil qurmanın spesifik tapşırıqları üçün daha çox community-actions-a malikdir.

Android inkişafı üçün Travis CI Android SDK 34, Gradle 8 və emulyator dəstəyi ilə hazır obrazlar təklif edir. Qurmanın işə salınma sürəti 45–90 saniyə təşkil edir ki, bu da rəqiblərlə müqayisə olunandır. Əsas məhdudiyyət tarif planından asılı olan paralel qurmaların limitidir.

Travis CI-nin arxitekturası və iş prinsipi

Travis CI arxitekturası tapşırıq növbəsini, virtual maşınların ayrılmasını və nəticələrin emalını idarə edən mikroxidmətlər üzərində qurulub. GitHub-dan webhook qəbul edərkən platforma tapşırığı növbəyə qoyur, müvafiq dil obrazı ilə boş virtual maşın tapır və .travis.yml-dən əmrləri yerinə yetirir.

Hər qurma izolyasiya edilmiş mühitdə təmiz OS obrazı ilə yerinə yetirilir. Travis CI üç növ mühiti dəstəkləyir: Ubuntu Linux (standart), macOS (iOS və macOS qurmaları üçün) və Windows (.NET və UWP üçün). Mobil layihələr üçün əvvəlcədən quraşdırılmış Xcode və Fastlane ilə macOS obrazlarının dəstəyi kritik əhəmiyyət daşıyır.

Qurmanın həyat dövrü fazaları əhatə edir: before_install (sistemin qurulması), install (asılılıqların quraşdırılması), before_script (testlərə hazırlıq), script (testlərin və qurmanın işə salınması), after_script (təmizləmə). Hər faza isteğe bağlıdır və YAML faylında konfiqurasiya edilir.

Travis CI-də Build Matrix

Build Matrix tətbiqi paralel qurmalarda müxtəlif dil, SDK və ya mühit versiyaları ilə test etməyə imkan verir. Matris language, os, env açarları vasitəsilə təyin edilir və bütün mümkün kombinasiyaların avtomatik generasiyasını əhatə edir. Mobil layihələr üçün bu, iOS və ya Android API-nin müxtəlif versiyaları ilə uyğunluğu yoxlamaq üçün əlverişlidir.

Matrisdən istifadə edərkən Travis CI hər kombinasiya üçün ayrıca virtual maşın işə salır. Bu, qurma dəqiqələrinin ümumi istehlakını artırır, lakin bir neçə OS versiyasını dəstəkləyən layihələr üçün kritik əhəmiyyət daşıyır. Matrisin ölçüsünü optimal əhatə və xərc nisbəti üçün 4–6 kombinasiya ilə məhdudlaşdırın.

.travis.yml sintaksisi

.travis.yml faylı YAML formatından istifadə edir və əsas açarlardan ibarətdir: language (dil), os (OS), dist (distributiv versiyası), before_install, install, script və deploy. Hər açar sətir, əmrlər massivi və ya daha mürəkkəb konfiqurasiya üçün lüğət ola bilər. Travis CI açarları ciddi qaydada emal edir ki, bu da qurmanın yerinə yetirilməsinin proqnozlaşdırıla bilməsini təmin edir.

iOS layihələri üçün osx_image açarı Xcode versiyasının göstərilməsi ilə məcburidir, məsələn xcode15.2. Android üçün — android açarı SDK komponentləri ilə. Travis CI uğurlu qurmadan sonra artefaktların App Store Connect, Google Play, Firebase və ya GitHub Releases-ə avtomatik yüklənməsi üçün provayderlərlə deploy açarını dəstəkləyir.

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

iOS layihələri üçün .travis.yml konfiqurasiyası

iOS layihələri üçün .travis.yml objective-c və ya swift dilini, osx_image vasitəsilə Xcode versiyasını və CocoaPods və ya Swift Package Manager vasitəsilə asılılıqların quraşdırılmasını göstərməlidir. Travis CI bütün cari Xcode versiyalarını, o cümlədən iOS 18 SDK ilə Xcode 16-nı dəstəkləyir ki, bu da tətbiqləri ən son API-lərdə test etməyə imkan verir.

Vacib mərhələ kodun imzalanması üçün sertifikatların idarə edilməsidir. Repozitoridə provisioning profillərini və sertifikatları saxlamaq üçün Travis CI şifrələnmiş fayllarından istifadə edin. Fastlane Match həmçinin şifrələnmiş TRAVIS mühit dəyişənləri vasitəsilə dəstəklənir ki, bu da AdHoc və App Store qurmaları üçün imzanın konfiqurasiyasını sadələşdirir.

yaml
# Fastlane ilə iOS tətbiqi üçün Travis CI
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 üzrə UI testləri olan layihələr üçün simulyatoru göstərmək üçün xcodebuild-də destinations açarından istifadə edin. Travis CI macOS obrazlarında iOS simulyatorlarının əlavə konfiqurasiya olmadan işə salınmasını dəstəkləyir — simulyator xcodebuild test əmri yerinə yetirilərkən avtomatik işə düşür.

Android layihələri üçün .travis.yml konfiqurasiyası

Android layihələri üçün .travis.yml android dili və android açarı vasitəsilə SDK komponentlərinin göstərilməsi ilə konfiqurasiya edilir. Travis CI əvvəlcədən quraşdırılmış Java JDK 17, Gradle və əsas Android SDK ilə Linux obrazları təqdim edir. Əlavə API səviyyələri və build-tools before_install fazasında sdkmanager vasitəsilə quraşdırılır.

Android qurmaları üçün əsas optimallaşdırma .gradle və .m2 kataloqlarının keşləşdirilməsidir. Travis CI cache açarı vasitəsilə keşləşdirməni dəstəkləyir ki, bu da asılılıqların quraşdırılması vaxtını 120 saniyədən təkrar qurmalarda 10–15 saniyəyə endirir. Gradle wrapper və Android Gradle Plugin üçün keş yollarını göstərin.

yaml
# Android tətbiqi üçün Travis CI
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/

Android emulyatorunda instrumental testləri işə salmaq üçün emulyatorun işə salınması və onun hazır olmasının gözlənilməsi ilə before_script mərhələsi əlavə edin. Travis CI Linux obrazlarında KVM aparat sürətləndirilməsini dəstəkləyir ki, bu da proqram emulyasiyası ilə müqayisədə UI testlərinin yerinə yetirilməsini əhəmiyyətli dərəcədə sürətləndirir.

Travis CI-nin GitHub və Bitbucket ilə inteqrasiyası

Travis CI GitHub və Bitbucket ilə OAuth tətbiqi vasitəsilə inteqrasiya olunur ki, bu da yeni commitlər barədə avtomatik bildiriş üçün repozitoriyə webhook əlavə edir. Travis CI-də repozitoriyi aktivləşdirdikdən sonra bütün push və Pull Request-lər avtomatik qurma işə salır, status (passed, failed, pending) isə GitHub interfeysində göstərilir.

GitHub Pull Request ilə inteqrasiya Travis CI-nin əsas funksiyasıdır. Qurma statusu birbaşa PR-də göstərilir, uğursuz testlər olduqda birləşməni bloklayır. GitHub-da branch protection konfiqurasiyası Travis CI ilə birlikdə əsas budağa yalnız test edilmiş kodun daxil olmasını təmin edir.

Travis CI App Store Connect tokenlərinin, Google Play xidmət hesablarının və imza açarlarının saxlanması üçün şifrələnmiş mühit dəyişənlərini dəstəkləyir. Dəyişənlər travis encrypt CLI vasitəsilə şifrələnir və .travis.yml-ə əlavə edilir, həssas məlumatların qurmaya təhlükəsiz ötürülməsini təmin edir.

Şifrələnmiş fayllarla iş

Travis CI-nin şifrələnmiş faylları provisioning profillərini və iOS sertifikatlarını sızma riski olmadan GitHub repozitorisində saxlamağa imkan verir. Fayl travis encrypt-file əmri ilə şifrələnir və before_install mərhələsində avtomatik deşifrələnir. Bu, Travis CI-dən iOS tətbiqlərini çatdırmaq üçün istifadə edən komandalar üçün standart yanaşmadır.

Travis CI-nin üstünlükləri və məhdudiyyətləri

Travis CI-nin əsas üstünlüyü sıfır infrastruktur xərcləridir. Komanda serveri konfiqurasiya etməli, CI/CD proqramını quraşdırmalı və onun əlçatanlığını izləməli deyil. Bütün idarəetmə repozitoridə .travis.yml redaktəsinə qədər azalır. İctimai repozitorilər üçün pulsuz plan Travis CI-ni Open Source mobil layihələri üçün məşhur seçim edir.

Travis CI-nin məhdudiyyəti tarif planlarında qurma vaxtı və paralel tapşırıqların limitidir. Yüksək commit tezliyi (gündə 20+) və uzun inteqrasiya testləri olan komandalar üçün bulud dəqiqələrinin dəyəri öz Jenkins serverinin saxlanması xərclərini keçə bilər. Travis CI həmçinin pulsuz planda fərdi Docker obrazlarını dəstəkləmir.

Mobil inkişaf üçün Travis CI GitHub istifadə edən, 10-dan az tərtibatçısı olan və fərdi qurma infrastrukturu tələb etməyən komandalar üçün uyğundur. Compliance tələbləri olan və ya öz macOS maşınlarında qurma ehtiyacı olan Enterprise layihələri üçün Jenkins daha çevik həll olaraq qalır.

Tez-tez verilən suallar

Tətbiq inkişafında Travis CI nədir?

Travis CI — mobil tətbiqlərin qurulması, test edilməsi və yerləşdirilməsinin avtomatlaşdırılması üçün bulud CI/CD platformasıdır. Xidmət GitHub və Bitbucket ilə inteqrasiya olunur, hər push-da qurmaları işə salır və kod keyfiyyətinə nəzarət üçün Pull Request-də status göstərir.

Travis CI Jenkins-dən nə ilə fərqlənir?

Travis CI — serverləri idarə etmək ehtiyacı olmadan bulud xidməti, konfiqurasiya .travis.yml vasitəsilə. Jenkins — infrastruktur üzərində tam nəzarət və plaginlər sistemi ilə self-hosted server. Travis CI konfiqurasiyada daha sadədir, Jenkins mürəkkəb korporativ ssenarilər üçün daha çevikdir.

iOS qurması üçün .travis.yml necə konfiqurasiya edilir?

language: swift göstərin, osx_image vasitəsilə Xcode versiyasını, before_install-də CocoaPods və Fastlane quraşdırın. Script-də testlər üçün fastlane scan və qurma üçün fastlane gym əmrlərini əlavə edin. Sertifikatları repozitoridə təhlükəsiz saxlamaq üçün travis encrypt-file vasitəsilə şifrələyin.

Android qurması üçün .travis.yml necə konfiqurasiya edilir?

language: android, JDK 17 və android açarı vasitəsilə Android SDK komponentlərini göstərin. .gradle kataloqlarının keşləşdirilməsini cache vasitəsilə əlavə edin. Script-də Gradle tapşırıqlarını işə salın: ./gradlew assembleDebug və testDebugUnitTest. UI testləri üçün before_script-də emulyatorun işə salınmasını konfiqurasiya edin.

Travis CI kommersiya layihələri üçün uyğundurmu?

Bəli, Travis CI kiçik və orta ölçülü kommersiya layihələri üçün uyğundur. Ödənişli tariflər paralel qurmalar, özəl repozitorilər və prioritet dəstəyi əhatə edir. Compliance tələbləri olan Enterprise üçün öz infrastrukturu ilə Jenkins və ya GitLab CI tövsiyə olunur.

Nəticə

  • Travis CI — mobil tətbiqlərin qurulması, test edilməsi və yerləşdirilməsinin avtomatlaşdırılması üçün bulud CI/CD platforması
  • .travis.yml — mühiti və qurma mərhələlərini təyin edən yeganə YAML konfiqurasiya faylı
  • Build Matrix — kompleks test üçün OS və SDK-nın müxtəlif versiyaları ilə qurmaların paralel işə salınması
  • iOS konfiqurasiyası — Xcode, Fastlane, CocoaPods və imza üçün şifrələnmiş sertifikatlarla macOS obrazları
  • Android konfiqurasiyası — Android SDK, Gradle keşləşdirilməsi və KVM emulyator dəstəyi ilə Linux obrazları
  • İnteqrasiya — Pull Request-də qurma statusları ilə GitHub və Bitbucket-in dəstəyi
  • Kiçik komandalar üçün Travis CI infrastruktur xərclərinin olmaması səbəbindən Jenkins-dən üstündür

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun