CI/CD (Continuous Integration / Continuous Delivery) hər kod dəyişikliyində tətbiqin avtomatik yaradılması, sınaqdan keçirilməsi və çatdırılması təcrübəsidir. Statista (2025) məlumatına görə, mobil inkişaf komandalarının 80%-i öz işlərində CI/CD istifadə edir. Bu məqalə məşhur CI alətlərini, mobil yaradılma avtomatlaşdırması üçün Fastlane-i, həmçinin Canary Release və Feature Flags-i əhatə edir.
Əsas Nəticələr
Continuous Integration mobil tətbiqlər üçün CI/CD avtomatlaşdırmasının əsasıdır. Hər bir tərtibatçının gündə bir neçə dəfə kodunu paylaşılan anbara birləşdirdiyi təcrübədir. Hər push-dan sonra CI serveri avtomatik olaraq layihəni yaradır və testləri işə salır. Testlər uğursuz olarsa, yaradılma pozulmuş sayılır və komanda dərhal problemi həll edir. CI «mənim maşınımda işləyir» vəziyyətinin qarşısını alır, burada bir tərtibatçının kodu digərinin kodunu pozur.
Build Pipeline — hər push-da yerinə yetirilən addımlar ardıcıllığı: kod linting → vahid testlər → debug APK/IPA yaradılması → inteqrasiya testləri → release yaradılması. Hər addım yalnız əvvəlki addım uğurlu olduqdan sonra işə düşür. Yaradılma sənətləri — APK, IPA, AAB, test hesabatları — saxlanılır və yükləmək üçün əlçatandır.
Continuous Delivery — kod avtomatik yaradılır və sınaqdan keçirilir, lakin istehsalata buraxma qərarını insan verir. Continuous Deployment — hər uğurlu yaradılma avtomatik olaraq istehsalata buraxılır. Mobil tətbiqlər üçün, TestFlight və ya Internal Testing vasitəsilə CD (mağazalara çatdırılma) daha geniş yayılmışdır, çünki nəşr haqqında qərarı tərtibatçı və ya menecer verir. Staging — istehsalata mümkün qədər yaxın mühit, buraxılışdan əvvəl yaradılmanı sınamaq üçün istifadə olunur.
GitHub Actions GitHub-da mobil tətbiqləri avtomatlaşdırmaq üçün daxili CI/CD sistemidir. Actions boru xətlərini təsvir etmək üçün YAML konfiqurasiyasından (.github/workflows) istifadə edir. Mobil inkişaf üçün hazır actions mövcuddur: actions/setup-java, Android üçün gradle-build-action, iOS üçün xcodebuild-action. GitHub Actions şəxsi anbarlar üçün ayda 2000 pulsuz dəqiqə təmin edir.
Nümunə: Android workflow-u kod yoxlanışı, JDK 17 quraşdırılması, Gradle asılılıqlarının keşlənməsi, lint və vahid testlərin işə salınması, APK yaradılması və sənət yüklənməsini əhatə edir. iOS üçün — yoxlanış, Xcode quraşdırılması, pod install, XCTest işə salınması, arxivləşdirmə və IPA ixracı. GitHub Actions bildirişlər üçün GitHub Releases, Slack və Telegram ilə inteqrasiya olunur.
GitLab CI .gitlab-ci.yml vasitəsilə konfiqurasiya edilən GitLab-də daxili CI/CD sistemidir. GitLab CI runner-lardan — tapşırıqları yerinə yetirən agentlərdən istifadə edir. Mobil inkişaf üçün paylaşılan runner-lardan (Android üçün Linux) və ya öz runner-larınızdan (iOS üçün macOS) istifadə edə bilərsiniz. GitLab CI paralel tapşırıqları, sənətləri, mühitləri və istehsal buraxılışları üçün əl ilə təsdiqi dəstəkləyir.
Bitrise mobil tətbiq avtomatlaşdırmasında ixtisaslaşmış CI/CD platformasıdır. Bitrise Android, iOS, Flutter və React Native üçün hazır Steps təklif edir: Gradle Runner, Xcode Archive, Flutter Test, CocoaPods Install. Bitrise iOS üçün kod imzalamanı avtomatik konfiqurasiya edir (Codesigndoc vasitəsilə) və Xcode, Android SDK, Flutter və digər alətlər öncədən quraşdırılmış virtual maşınlar təmin edir.
Bitrise üstünlükləri: vizual Workflow redaktoru vasitəsilə asan quraşdırma, paralel yaradılma dəstəyi, Firebase Test Lab, App Store Connect və Google Play Console ilə inteqrasiya. Bitrise şəxsi layihələr üçün ayda 90 pulsuz dəqiqə təmin edir. IT Sectr-də biz bütün mobil layihələr üçün Bitrise istifadə edirik — bu, əl ilə GitHub Actions quraşdırması ilə müqayisədə CI/CD-ni əhəmiyyətli dərəcədə sadələşdirir.
| Meyar | GitHub Actions | GitLab CI | Bitrise | CircleCI |
|---|---|---|---|---|
| İxtisaslaşma | Ümumi | Ümumi | Mobil | Ümumi |
| iOS üçün macOS | Bəli (macOS runner) | Öz runner | Bəli (daxili) | Bəli (macOS) |
| Pulsuz limit | 2000 dəq/ay | 400 dəq/ay | 90 dəq/ay | 6000 dəq/ay |
| Fastlane inteqrasiyası | run script vasitəsilə | run script vasitəsilə | Hazır Step | run script vasitəsilə |
| Kod imzalama | Əl ilə quraşdırma | Əl ilə quraşdırma | Avtomatik | Fastlane vasitəsilə |
| Paralel yaradılma | Bəli | Bəli | Bəli | Bəli |
Fastlane Ruby dilində yazılmış iOS və Android üçün mobil tətbiq avtomatlaşdırma alətidir. Fastlane hazır actions (200+) sistemi və Fastfile vasitəsilə ssenariləri təsvir etmək üçün DSL-dən ibarətdir. Fastlane hər mobil tərtibatçının əl ilə etdiyi tapşırıqları həll edir: kod imzalama, ekran görüntülərinin yaradılması, TestFlight və Google Play-ə yükləmə, sertifikatların və təminat profillərinin idarə edilməsi.
Lane — Fastfile-da adlandırılmış ssenari. Nümunə: lane :release do — buraxılış üçün hərəkətlər zənciri. Match — şifrələnmiş Git anbarı vasitəsilə sertifikatları və təminat profillərini təhlükəsiz saxlama və sinxronizasiya aləti. Gym — iOS tətbiqinin yaradılması və arxivləşdirilməsi (xcodebuild üzərində sarğı). Pilot — TestFlight-da yaradılmaların yüklənməsi və idarə edilməsi. Deliver — App Store Connect-ə tətbiq və metadata yükləmə. Snapshot — bütün dillərdə avtomatik ekran görüntüsü yaradılması. Screengrab — Android üçün avtomatik ekran görüntüsü yaradılması.
Android üçün Fastfile nümunəsi: lane :beta gradle (assembleRelease) çağırır, sonra test edənlərə paylamaq üçün firebase_app_distribution çağırır. iOS üçün: lane :beta match (sertifikat endirmə), gym (arxivləşdirmə) və pilot (TestFlight-a yükləmə) çağırır. Fastlane lokal olaraq və CI serverində işləyə bilər — bu onu istənilən mobil layihədə universal alətə çevirir.
Canary Release tam buraxılışdan əvvəl tətbiqin yeni versiyasını istifadəçilərin kiçik bir faizinə (%1-5) yaymaq üçün CI/CD avtomatlaşdırma strategiyasıdır. Google Play Console-da bu Staged Rollout vasitəsilə həyata keçirilir: siz 5% auditoriyanıza yeniləmə buraxırsınız, qəzaları və metrikaları izləyirsiniz və problem yoxdursa faizi artırırsınız. App Store Connect-də — Phased Release for Automatic Updates vasitəsilə.
A/B Testing — təsadüfi istifadəçi qruplarında bir xüsusiyyətin iki versiyasının müqayisəsi. Mobil inkişafda A/B testləri Feature Flags, Firebase Remote Config və ya server tərəfi məntiqi vasitəsilə aparılır. Canary Release və A/B testləri yeni xüsusiyyətlər yayarkən riskləri minimuma endirir.
Feature Flag (Feature Toggle) — yeni kod yerləşdirmədən funksionallığın şərti aktivləşdirilməsi. Feature Flag kodda yoxlamadır: if (featureFlag.isEnabled()) { /* yeni kod */ } else { /* köhnə kod */ }. Bayraqlar xidmətlər vasitəsilə idarə olunur: LaunchDarkly, Split.io, Firebase Remote Config. Feature Flags tərtibatçılara xüsusiyyət hələ istifadəçilərə hazır olmasa belə kodu main-ə birləşdirməyə imkan verir.
LaunchDarkly — ən məşhur Feature Flags idarəetmə platforması. LaunchDarkly iOS, Android, Flutter və React Native üçün SDK təmin edir. Siz xüsusiyyətləri müəyyən istifadəçilər, seqmentlər, bölgələr və ya auditoriyanın faizi üçün aktivləşdirə bilərsiniz. Feature Flags həmçinin kill switch kimi istifadə olunur — tətbiqin yeni versiyasını buraxmadan problemli xüsusiyyəti dərhal söndürmək.
Tez-tez verilən suallar
Kodunuz GitHub-dadırsa GitHub Actions ilə başlayın. Actions ictimai anbarlar üçün pulsuzdur, Android və iOS (macOS runner) üçün daxili dəstəyə və hazır actions-ların böyük ekosisteminə malikdir. Mobil ixtisaslaşma üçün — Bitrise.
Xeyr, CI xidmətləri (GitHub Actions, Bitrise, CircleCI) macOS runner təmin edir. İstifadə dəqiqələrinə görə ödəyirsiniz. Yerli Fastlane debug üçün Mac lazımdır, lakin CI buludda işləyə bilər.
Canary Release — sabitliyi yoxlamaq üçün istifadəçilərin alt qrupuna yeni versiya yaymaq. A/B testi — daha yaxşısını seçmək üçün bir xüsusiyyətin iki variantını müqayisə etmək. Canary etibarlılıqla, A/B konversiya ilə bağlıdır.
Fastlane məcburi deyil, lakin çox tövsiyə olunur. Fastlane olmadan əl ilə xcodebuild işə salmalı, sertifikatları idarə etməli və veb interfeys vasitəsilə yaradılmaları yükləməli olacaqsınız. Fastlane bütün bu tapşırıqları tək bir əmrlə avtomatlaşdırır.
Match iOS Code Signing sertifikatlarını idarə etmək üçün Fastlane alətidir. Match sertifikatları və təminat profillərini şifrələnmiş Git anbarında saxlayır və onları bütün tərtibatçılar və CI serveri arasında sinxronizasiya edir.
Xülasə
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.