CI/CD Pipeline — bu nədir, avtomatlaşdırma mərhələləri və alətlər

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

CI/CD Pipeline — kodun committən istifadəçiyə çatana qədər keçdiyi avtomatlaşdırılmış mərhələlər ardıcıllığıdır. Mobil tətbiq inkişafında boru kəməri layihənin qurulması, testlərin işə salınması, statik kod analizi, obfuskasiya, imzalama və build-in nəşrini əhatə edir. GitLab DevOps Report, 2025 məlumatlarına görə, yetkin CI/CD Pipeline olan komandalar relizləri avtomatlaşdırması olmayan komandalardan 3,5 dəfə daha tez-tez və 7 dəfə daha sürətli çatdırır.

Əsas məqamlar

  • CI/CD Pipeline — kodun qurulması, test edilməsi və deploy mərhələlərindən ibarət boru kəməri
  • Continuous Integration hər dəyişikliyi avtomatik qurma və testlərlə yoxlayır
  • Continuous Delivery kodun istənilən anda relizə hazır olmasını təmin edir
  • GitHub Actions, GitLab CI və Jenkins — boru kəmərləri qurmaq üçün ən populyar alətlər
  • Mobil boru kəməri əlavə mərhələlər tələb edir: imzalama, obfuskasiya və mağazalarda nəşr

CI/CD Pipeline nədir

CI/CD Pipeline — kodun repozitoridə dəyişikliklərin təsdiqlənməsi anından istehsalata çıxarılana qədər keçdiyi rəsmiləşdirilmiş və avtomatlaşdırılmış proseslər toplusudur. Termin iki təcrübəni birləşdirir: Continuous Integration (fasiləsiz inteqrasiya) və Continuous Delivery (fasiləsiz çatdırılma), bunlar birlikdə proqram təminatı çatdırılması boru kəmərini təşkil edir.

CI/CD-nin yaranma tarixi

Continuous Integration konsepsiyası 1991-ci ildə Qradi Buç tərəfindən təsvir edilmiş və 2000-ci illərdə Martin Fauler tərəfindən populyarlaşdırılmışdır. Continuous Delivery termini Cez Humbl və David Farleyin “Continuous Delivery” (2010) kitabından sonra möhkəmlənmişdir. Müasir CI/CD Pipeline 2015-ci ildən sonra mobil tətbiq inkişafında de-fakto standarta çevrilmişdir — bulud CI serverlərinin və tətbiq mağazalarının avtomatlaşdırılmasının yaranması ilə.

Mobil tətbiq inkişafında CI/CD Pipeline nə üçün lazımdır

Mobil tətbiqlərin qurulması və nəşri üçün xüsusi tələbləri var: sertifikatlarla imzalama, bir neçə konfiqurasiya (debug, release, staging), ProGuard/R8 obfuskasiyası, bir neçə build növü (APK, AAB, IPA) və tətbiq mağazaları ilə inteqrasiya. Bu addımların əl ilə yerinə yetirilməsi saatlar çəkir və səhvlərə yol açır — CI/CD Pipeline rutini avtomatlaşdırır.

Mobil tətbiqlər üçün CI/CD Pipeline mərhələləri

Android və ya iOS tətbiqi üçün standart CI/CD Pipeline yeddi əsas mərhələdən ibarətdir. Bəzi mərhələlər paralel, digərləri ardıcıl yerinə yetirilir. Mərhələlərin konkret tərkibi texnoloji yığımdan və komandanın yetkinliyindən asılıdır, lakin özəyi dəyişməz qalır.

1. Checkout və asılılıqların quraşdırılması

Boru kəməri repozitorinin klonlanması və asılılıqların quraşdırılması ilə başlayır: Android üçün Gradle/Maven, iOS üçün CocoaPods və ya SPM. Asılılıqların keşləşdirilməsi işə salmalar arasında quraşdırma vaxtını 3–5 dəqiqədən bir neçə saniyəyə endirir — bu optimallaşdırmanı bütün müasir CI xidmətləri dəstəkləyir.

2. Statik analiz və lintinq

Qurulmadan əvvəl kod linterlər (Android üçün ktlint, detekt, iOS üçün SwiftLint) və statik analizatorlar (Android Lint, SonarQube) tərəfindən yoxlanılır. Lintinq testlər işə salınmazdan əvvəl potensial səhvləri, kod üslubu pozuntularını və köhnəlmiş API-ləri aşkarlayır — fail-fast prinsipi komandanın vaxtına qənaət edir.

3. Layihənin qurulması

Qurma mərhələsində bütün layihə kompilyasiya olunur və artefaktlar yaradılır: Android üçün APK və AAB, iOS üçün IPA. Android üçün Gradle tapşırıqları (assembleDebug, bundleRelease), iOS üçün xcodebuild və ya xcrun istifadə olunur. Qurma CI serverinin təcrid olunmuş mühitində aparılır, bu da təkrarlanmanı təmin edir.

yaml
# GitHub Actions-da Android üçün CI/CD Pipeline nümunəsi
name: Android CI Pipeline
on:
  push:
    branches: [main, develop]
  pull_request:
    branches: [main]

jobs:
  build-and-test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-java@v4
        with:
          distribution: temurin
          java-version: 17
      - uses: gradle/actions/setup-gradle@v4
      - run: ./gradlew ktlintCheck detekt
      - run: ./gradlew assembleDebug
      - run: ./gradlew testDebugUnitTest
      - run: ./gradlew assembleRelease
      - uses: actions/upload-artifact@v4
        with:
          name: release-apk
          path: app/build/outputs/apk/release/*.apk

4. Avtomatik test

Qurmadan sonra vahid testlər, inteqrasiya testləri və UI testləri işə salınır. JUnit və MockK modul testləri üçün, Espresso və Compose Test Android-də UI üçün, XCTest və XCUITest iOS-da. Nəticələr hesabatda dərc olunur və kritik testlər uğursuz olduqda boru kəmərini bloklayır.

5. İmzalama və obfuskasiya

Reliz build-ları üçün rəqəmsal sertifikatla imzalama (Android üçün APK Signer, iOS üçün codesign) və kod obfuskasiyası həyata keçirilir. Android üçün ProGuard və ya R8 APK-nın ölçüsünü 15–30% azaldır. İmza açarları CI serverinin sirlərində saxlanılır — heç vaxt repozitoriyə commit edilmir.

6. Çatdırılma və deploy

Boru kəmərinin son mərhələsi — artefaktların nəşri: APK-nın Google Play Console daxili testinə yüklənməsi, IPA-nın TestFlight-a göndərilməsi və ya Firebase Distribution-da nəşr. Continuous Delivery bu addımın əl ilə təsdiqlənməsini tələb edir, Continuous Deployment isə avtomatik yerinə yetirilir.

7. Bildirişlər və hesabatlar

Boru kəməri başa çatdıqdan sonra komanda nəticələrlə bildiriş alır: uğur/uğursuzluq, icra vaxtı, artefaktlara keçid. Slack, Telegram və ya email — bildiriş kanalları komandanın ehtiyaclarına görə seçilir. Mərhələ uğursuz olduqda bildirişə konkret səhv jurnalına keçid daxil edilir.

CI ilə CD arasında fərq nədir

CICD terminləri çox vaxt vahid CI/CD anlayışı kimi istifadə olunur, lakin onlar arasında əsaslı fərq var. CI (Continuous Integration) hər kod inteqrasiyasında keyfiyyəti yoxlamağa cavabdehdir, CD (Continuous Delivery) isə bu kodun relizə hazır olmasını təmin edir. Fərqi başa düşmək boru kəmərinin layihələndirilməsində kritik əhəmiyyət daşıyır.

Continuous Integration — keyfiyyət yoxlaması

CI hər push və ya pull request zamanı yerinə yetirilir və qurma, statik analiz və testi əhatə edir. CI-nin məqsədi problemləri mümkün qədər tez, onların düzəldilmə dəyəri minimal olduqda aşkar etməkdir. CI keçməzsə — kod əsas budağa daxil olmur. Mobil layihə üçün CI-nin orta icra müddəti 5–15 dəqiqədir.

Continuous Delivery — relizə hazırlıq

CD CI-yə reliz hazırlığı mərhələlərini əlavə edir: imzalama, obfuskasiya, reliz qeydlərinin yaradılması, lisenziyaların yoxlanması, testerlər üçün anbarda nəşr. CD təmin edir ki, əsas budaqdakı hər commit bir kliklə istehsalata çıxarıla bilər, lakin relizin özü əl ilə təsdiqlənmə tələb edir.

XüsusiyyətCICD
TezlikHər push-daHər main-ə merge-də
Məqsədİnteqrasiya səhvlərini aşkar etməkBuild-i relizə hazırlamaq
Müddət5–15 dəqiqə10–30 dəqiqə
İştirakçılarProqramçılarQA + DevOps + menecerlər
NəticəYaşıl/qırmızı statusTest stendində APK/IPA

CI/CD Pipeline qurmaq üçün alətlər

Mobil tətbiq inkişafı üçün CI/CD alətləri ekosisteminə bulud xidmətləri, self-hosted həllər və ixtisaslaşmış platformalar daxildir. Alətin seçimi komandanın ölçüsündən, büdcədən və təhlükəsizlik tələblərindən asılıdır. Aşağıda ən populyar variantlar təqdim olunur.

GitHub Actions

GitHub-da daxili CI/CD, ictimai repozitoriyalar üçün ayda 2000 dəqiqə pulsuz limitlə. GitHub Actions hazır action-ların (marketplace) nəhəng ekosistemi, YAML vasitəsilə sadə konfiqurasiya və GitHub repozitoriyası ilə problemsiz inteqrasiya sayəsində populyardır. Məhdudiyyət — pulsuz tarifdə iOS build-ları üçün Windows runner-larının dəstəklənməməsi.

GitLab CI/CD

Self-hosted və bulud həlli güclü YAML konfiquratoru ilə. GitLab CI paralel job-ları, keşləşdirməni, artefaktları və mühitləri (environments) dəstəkləyir. Öz infrastrukturunda yerləşdirmə imkanı və məlumatlar üzərində tam nəzarət sayəsində enterprise seqmentində populyardır.

Jenkins

Açıq mənbəli klassik CI server. Jenkins plaginlər (1800-dən çox) vasitəsilə konfiqurasiya olunur, Groovy formatında Declarative Pipeline dəstəkləyir və istənilən mühitdə işləyir: Windows, macOS, Linux. Xüsusi administrasiya tələb edir, lakin maksimum konfiqurasiya elastikliyi verir.

CircleCI

Sürət və sadəliyə vurğu edən bulud CI xidməti. CircleCI asılılıqları avtomatik keşləşdirir, təcrid olunmuş build-lar üçün Docker obrazlarını və iOS build-ları üçün macOS ilə inteqrasiyanı dəstəkləyir. Qiymətləndirmə kreditlərin sayına əsaslanır — məhsuldarlığı dəyərləndirən komandalar üçün uyğundur.

CI/CD Pipeline qurulması nümunəsi

GitHub Actions və Fastlane istifadə edərək iOS tətbiqi üçün tam CI/CD Pipeline-i nəzərdən keçirək. Fastlane mobil layihələr üçün avtomatlaşdırma alətidir, mürəkkəb qurma, imzalama və nəşr əməliyyatlarını sadə əmrlərə abstraksiya edir.

ruby
# Fastfile — iOS CI/CD üçün Fastlane konfiqurasiyası
default_platform(:ios)

platform :ios do
  desc "Testləri və lintingi işə sal"
  lane :ci do
    cocoapods
    swiftlint
    run_tests(scheme: "MyApp", devices: ["iPhone 16 Pro"])
  end

  desc "Release-i qurmaq və TestFlight-a yükləmək"
  lane :release do
    match(type: "appstore")
    build_app(scheme: "MyApp", export_method: "app-store")
    pilot(skip_waiting_for_build: true)
  end
end

Fastlane match sertifikatlar və provisioning profiles idarə edir, build_app IPA qurur, pilot build-i TestFlight-a yükləyir. fastlane release əmri bütün mərhələləri ardıcıl yerinə yetirir: sertifikatları alır, qurur, imzalayır, beta testerlər üçün App Store Connect-ə yükləyir.

GitHub Actions ilə iOS üçün CI/CD Pipeline

Fastlane-in GitHub Actions ilə inteqrasiyası main budağına pull request zamanı tam boru kəmərini avtomatik işə salmağa imkan verir. iOS kodunun kompilyasiyası üçün macOS-da self-hosted runner zəruridir — GitHub pulsuz tarifdə macOS runner-ları təmin etmir.

yaml
name: iOS CI/CD Pipeline
on:
  pull_request:
    branches: [main]
  push:
    branches: [main]

jobs:
  ci-checks:
    runs-on: macos-14
    steps:
      - uses: actions/checkout@v4
      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: 3.3
      - run: bundle install
      - run: bundle exec fastlane ci
      - if: github.ref == 'refs/heads/main'
        run: bundle exec fastlane release
        env:
          MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
          FASTLANE_APPLE_ID: ${{ vars.APPLE_ID }}

CI/CD Pipeline üçün ən yaxşı təcrübələr

Effektiv CI/CD Pipeline qurmaq təkcə alətlərin seçimini deyil, həm də sübut olunmuş təcrübələrə əməl etməyi tələb edir. Düzgün təşkilatlanma olmadan boru kəməri inkişafı sürətləndirmək əvəzinə ləngidən darboğaza çevrilə bilər. Aşağıda yetkin mobil komandaların təcrübəsinə əsaslanan əsas tövsiyələr verilmişdir.

Fail fast

Ən sürətli yoxlamalar (lintinq, vahid testlər) birinci yerinə yetirilir. Onlar uğursuz olarsa — boru kəməri uzun UI testləri və ya reliz qurulması işə salınmadan dayandırılır. Fail fast CI dəqiqələrinə qənaət edir və proqramçıya əks əlaqəni sürətləndirir. İlk uğursuzluğa qədər orta vaxt 2–3 dəqiqədən çox olmamalıdır.

Asılılıqların keşləşdirilməsi

Gradle keşi, CocoaPods keşi və SPM keşi işə salmalar arasında bərpa edilməlidir. GitHub Actions keşləşdirməni actions/cache vasitəsilə, GitLab CI isə cache açar sözü ilə dəstəkləyir. Keşləşdirmə olmadan hər qurma bütün asılılıqları yenidən yükləyir — bu boru kəməri vaxtına 3–10 dəqiqə əlavə edir.

Paralel icra

Müstəqil mərhələlər (Android və iOS üçün linter, müxtəlif modulların vahid testləri) paralel job-lar kimi işə salınır. Paralelləşdirmə boru kəmərinin ümumi vaxtını 20–30 dəqiqədən 5–10 dəqiqəyə endirir. Əksər CI xidmətləri paralel job-ları ayrıca hesablayır — tarif seçərkən bunu nəzərə alın.

Mühitin təcrid edilməsi

Boru kəmərinin hər işə salınması təmiz mühitdə aparılır: Docker konteynerində, virtual maşında və ya müvəqqəti runner-da. Təcridetmə əvvəlki build-ların cari build-a təsirinin qarşısını alır. Layihələr arasında ümumi runner-lardan istifadə etməkdən çəkinin — layihələrarası mühitin çirklənməsi qeyri-deterministik nasazlıqlara gətirib çıxarır.

Sirlərin təhlükəsizliyi

API açarları, imza sertifikatları və tətbiq mağazalarına giriş tokenləri CI serverinin şifrələnmiş anbarında saxlanılır. Heç vaxt sirləri jurnallara, artefaktlara və ya SECRET_ prefiksi olmadan mühit dəyişənlərinə daxil etməyin. iOS sertifikatlarını idarə etmək üçün Fastlane match kimi alətlərdən istifadə edin.

Tez-tez verilən suallar

CI/CD Pipeline ilə adi qurma arasında fərq nədir?

Adi qurma — proqramçının maşınında yerinə yetirilən əl və ya yarı avtomatik prosesdir. CI/CD Pipeline committən relizə qədər bütün mərhələləri tam avtomatlaşdırır, təcrid olunmuş mühitdə qurmanın təkrarlanmasını təmin edir və problemli dəyişiklikləri istehsalat budağına daxil olmamış bloklayır.

CI/CD Pipeline qurulması nə qədər vaxt aparır?

GitHub Actions ilə Android üçün əsas qurulma 2–4 saat çəkir. Testlər, imzalama və deploy ilə tam boru kəməri 2–5 gün aparır. Mürəkkəbliyi macOS runner-larının zəruriliyi və Apple Developer Portal vasitəsilə sertifikatların idarə edilməsi səbəbindən iOS artırır.

Mobil layihə üçün hansı CI/CD xidmətini seçməli?

Android üçün GitHub Actions (ictimai repozitoriyalar üçün pulsuz), GitLab CI və CircleCI uyğundur. iOS üçün macOS runner məcburidir — CircleCI, Bitrise və ya Mac mini-də self-hosted runner optimaldır. Çarpaz platformalı layihələr (Flutter, React Native) üçün hər iki build növünü dəstəkləyən xidmət seçin.

CI/CD Pipeline tək proqramçı üçün lazımdırmı?

Bəli, hətta tək proqramçı üçün CI/CD Pipeline faydalıdır: birləşmədən əvvəl testlərin avtomatik yoxlanması, build imzalanmasında insan faktorunun aradan qaldırılması, TestFlight və ya Google Play Console-da avtomatik nəşr. GitHub Actions-un pulsuz limitləri (ayda 2000 dəqiqə) tək layihə üçün kifayətdir.

Boru kəmərinin nasazlıqlarını necə debug etməli?

CI/CD Pipeline nasaz olduqda mərhələ jurnallarını yoxlayın — onlar CI serverinin veb interfeysində mövcuddur. Gradle və ya xcodebuild üçün --verbose bayrağından istifadə edin. Yerli bərpa üçün eyni əmri oxşar mühitdə Docker konteynerində işə salın. Runner-a SSH girişi (dəstəklənirsə) diaqnostikanı sürətləndirir.

Xülasə

  • CI/CD Pipeline — mobil tətbiqin committən relizə qədər qurulması, test edilməsi və çatdırılması üçün avtomatlaşdırılmış boru kəməri
  • Continuous Integration hər dəyişikliyi qurma və testlərlə yoxlayır, səhvləri erkən mərhələdə aşkarlayır
  • Continuous Delivery kodun həmişə relizə hazır olmasını təmin edir, lakin nəşr üçün əl ilə təsdiqləmə tələb edir
  • GitHub Actions, GitLab CI, Jenkins və CircleCI — müxtəlif qiymət modelləri ilə əsas alətlər
  • Mobil boru kəməri xüsusi mərhələləri əhatə edir: imzalama, obfuskasiya və Google Play və App Store-da nəşr
  • Fail fast, asılılıqların keşləşdirilməsi və paralel icra boru kəməri vaxtını 30 dəqiqədən 5–10 dəqiqəyə endirir
  • Tövsiyə: Android üçün GitHub Actions, iOS üçün CircleCI ilə başlayın, mürəkkəb əməliyyatların abstraksiyası üçün Fastlane istifadə edin

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