Bitrise mobil inkişaf üçün ixtisaslaşmış CI/CD platformasıdır, hazır Steps — iOS və Android tətbiqlərinin qurulması, imzalanması və nəşri üçün əvvəlcədən konfiqurasiya edilmiş modullar ətrafında qurulmuşdur. Bitrise, 2024 məlumatlarına görə, platforma 400-dən çox hazır Steps dəstəkləyir və Xcode, Gradle, Fastlane, Firebase və App Store Connect ilə inteqrasiya olunur.
Əsas məqamlar
Bitrise 2016-cı ildə işə salınmış və tamamilə mobil inkişafa yönəlmiş CI/CD platformasıdır. Universal GitHub Actions və GitLab CI həllərindən fərqli olaraq, Bitrise əvvəldən iOS və Android tətbiqlərinin qurulmasının avtomatlaşdırılması üçün dizayn edilmişdir. Platforma buludda işləyir və macOS və Linux ilə öz host edilmiş runner-larını təqdim edir. Bitrise bütün populyar mobil stack-ları dəstəkləyir: Swift, Kotlin, Flutter, React Native, Cordova və Xamarin.
Bitrise-in əsas üstünlüyü mobil inkişafın tipik tapşırıqları üçün əvvəlcədən konfiqurasiya edilmiş Step template-ləridir: Xcode build, Gradle assemble, Fastlane, Firebase Distribution, TestFlight, Google Play. Pipeline-ın konfiqurasiyası vizual redaktor vasitəsilə dəqiqələr çəkir və YAML konfiqurasiyası bitrise.yml faylında avtomatik yaradılır. Təcrübəli istifadəçilər üçün avtomatik tamamlama ilə YAML redaktoru mövcuddur.
Bitrise arxitekturası iki əsas anlayış üzərində qurulur: Workflow və Step. Workflow — pipeline-nı təyin edən Steps ardıcıllığıdır. Hər bir layihənin bir neçə Workflow-u ola bilər: primary (əsas qurulma), deploy (nəşr), test (yalnız testlər). Workflow trigger-lərlə işə salınır: push, PR, tag və ya cədvəl üzrə. Workflow veb interfeysdən əl ilə işə salına bilər ki, bu da ad-hoc qurulmalar üçün faydalıdır.
Step bir tapşırığı yerinə yetirən atom moduldur. Addımları vizual redaktorda sürükləyib buraxmaq, onların sırasını və konfiqurasiyasını dəyişmək olar. Bitrise təqdim edir Xcode Archive & Export, Gradle Runner, CocoaPods Install, Firebase Distribution, Slack bildirişləri üçün Steps. Cəmiyyət də Steps yaradır — onlar Step Library vasitəsilə əlçatandır. Hər bir Step-in məcburi və isteğe bağlı giriş parametrləri, həmçinin sonrakı Steps tərəfindən istifadə edilə bilən çıxış dəyişənləri var.
Bitrise Pipeline konsepsiyasını dəstəkləyir — bir neçə Workflow-un bir pipeline-da birləşdirilməsi. Pipeline daxil ola bilər bütün platformalar üçün əsas qurulma və yerləşdirmə və test üçün ayrıca workflow. Bu, bir qurulmanın digərini işə saldığı mürəkkəb CI/CD prosesləri yaratmağa imkan verir. Bitrise Stacks runner-da əvvəlcədən quraşdırılmış proqram təminatını təyin edir: Xcode, Android SDK, Flutter, Node.js və digər alətlər.
Bitrise GitHub, GitLab, Bitbucket və Azure DevOps ilə inteqrasiya olunur. Qoşulduqdan sonra repozitoriya Bitrise avtomatik olaraq layihə tipini (iOS, Android, Flutter) aşkarlayır və Workflow şablonu təklif edir. Şəxsi repozitoriyalar üçün Bitrise OAuth və ya SSH açarı vasitəsilə giriş tələb edir. Bir tətbiqə bir neçə repozitoriyanın qoşulması dəstəklənir.
Qoşulduqdan sonra Bitrise push və PR zamanı qurulmaların avtomatik işə salınması üçün repozitoriyada webhook yaradır. Hər bir qurulma unikal nömrə, loglar və artefaktlar alır. İnterfeys qurulma tarixçəsinə baxmağa, dəyişiklikləri müqayisə etməyə və uğursuz build-ları yenidən işə salmağa imkan verir. Bitrise həmçinin müntəzəm gecə qurulmaları üçün scheduled builds və commit izləmə üçün Jira ilə inteqrasiyanı dəstəkləyir.
iOS üçün code signing CI/CD-nin ən çətin tapşırıqlarından biridir və Bitrise bunu son dərəcə sadə həll edir. Platforma saxlayır sertifikatları və provisioning profile-ları şifrələnmiş formada, qurulmadan əvvəl onları avtomatik olaraq müvafiq keychain-ə quraşdırır və imzalanmış IPA-nı ixrac edir. Certificate and Profile Installer Step-i faylları Bitrise anbarından yükləyir və Xcode-u konfiqurasiya edir. Development, AdHoc, AppStore və Enterprise sertifikat növləri dəstəklənir.
App Store Connect-də nəşr üçün Bitrise Xcode Archive & Export vasitəsilə IPA yükləmək üçün Steps təqdim edir. Google Play nəşri Keystore vasitəsilə imza ilə Gradle Runner istifadə edir, bundan sonra APK/AAB Google Play Deploy Step vasitəsilə Google Play Console-a yüklənir. Firebase App Distribution üçün Firebase Token və test qrupunu göstərmək kifayətdir. Bitrise hər nəşrdən əvvəl qurulma versiyalarının (version number və build number) yenilənməsini avtomatlaşdırır.
Sertifikatlar veb interfeysin Code Signing bölməsində yüklənir: özəl açarla P12, provisioning profile (.mobileprovision), Android üçün Keystore (.jks/.keystore). Bitrise avtomatik olaraq hər Workflow işə salındıqda iOS sertifikatlarını keychain-ə quraşdırır və imzalanmış tətbiqi ixrac edir. Android üçün Keystore faylını yükləmək kifayətdir — Bitrise onu qurulma zamanı ətraf mühit dəyişənləri vasitəsilə Gradle-ə ötürür.
iOS və Android üçün qurulmalar yaradan və nəşr edən Flutter tətbiqi üçün Workflow-u nəzərdən keçirək. Bitrise avtomatik olaraq Flutter layihəsini aşkarlayır və müvafiq Steps təklif edir. Workflow Flutter quraşdırılması, pub-cache keşləməsi, qurulma, test və yerləşdirməni əhatə edir. iOS qurulması üçün əlavə olaraq Bitrise-in avtomatik yüklədiyi code signing sertifikatları tələb olunur.
Flutter tətbiqlərinin qurulması zamanı Bitrise platformalar üçün ayrıca konfiqurasiyanı dəstəkləyir. Android qurulması Flutter SDK ilə Linux runner-da, iOS — macOS runner-da yerinə yetirilir. Workflow yalnız müvafiq platformalarda işə salınan şərti Steps daxil edə bilər: build_android və build_ios. React Native layihələri üçün Bitrise npm/nvm və Metro bundler ilə oxşar Steps dəsti təklif edir.
format_version: 13
default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git
trigger_map:
- push_branch: main
workflow: primary
workflows:
primary:
steps:
- activate-ssh-key@4:
run_if: true
- git-clone@8: {}
- flutter-installer@0:
inputs:
- version: 3.24.0
- flutter-build@0:
inputs:
- platform: both
- ios_output_type: archive
- deploy-to-bitrise-io@2: {}
Qurulmadan sonra iOS və Android üçün Firebase App Distribution Step-i əlavə etmək olar. Step qəbul edir firebase_token, app_id və testers_group. Bitrise dəyərləri Secrets-dən əvəz edir — tokenlərin təhlükəsiz saxlanması onların loglara düşməyəcəyinə zəmanət verir.
- firebase-app-distribution@1:
inputs:
- firebase_token: $FIREBASE_TOKEN
- app_id: $FIREBASE_IOS_APP_ID
- testers_group: qa-team
- release_notes: |
Build $BITRISE_BUILD_NUMBER
Məxfi məlumatların düzgün idarə edilməsi CI/CD proseslərinin təhlükəsizliyinin əsasıdır. Bitrise Secrets şifrələnir və saxlandıqdan sonra oxunmaq üçün əlçatan deyil. Yeni tətbiq yaradarkən Bitrise secrets-ləri başqa layihədən idxal etməyi və ya əl ilə təyin etməyi təklif edir. Böyük komandalar üçün Environment Groups funksiyası mövcuddur — tətbiqlər qrupu üçün dəyişənlərin və secrets-lərin mərkəzləşdirilmiş idarə edilməsi.
Bitrise məxfi məlumatlar üçün daxili Secrets anbarı təqdim edir: API açarları, Firebase tokenləri, Keystore şifrələri, Apple ID. Secrets təyin edilir veb interfeysdə açar-dəyər cütləri kimi və qurulma loglarında maskalanır. Tətbiq və Workflow səviyyəsində əlçatandır. Secrets saxlandıqdan sonra oxunmaq mümkün deyil — onları yalnız yenidən yazmaq olar.
Environment Variables (Secret işarəsi olmadan) konfiqurasiyalar üçün istifadə olunur: Xcode versiyası, layihə yolu, qurulma sxemi. Bitrise ətraf mühit dəyişənləri (BITRISE_BUILD_NUMBER, BITRISE_APP_TITLE) qurulma haqqında meta-məlumat təqdim edir. Secrets saxlanarkən şifrələnir və yalnız Workflow icrası zamanı runner-da deşifrə olunur. Dəyişənlərin qrup idarə edilməsi üçün Bitrise Environment Groups-u dəstəkləyir — eyni anda bir neçə tətbiqə tətbiq oluna bilən dəyişən dəstləri.
Bitrise vasitəsilə iOS sertifikatlarının idarə edilməsi xüsusi diqqət tələb edir. Platforma avtomatik olaraq qurulmadan əvvəl P12 və provisioning profile-i sistem keychain-ə quraşdırır. Android üçün Code Signing bölməsinə yüklənən Keystore faylı istifadə olunur. Hər bir sertifikat faylı şifrələnmiş formada saxlanılır və yalnız build zamanı deşifrə olunur.
- google-play-deploy@3:
inputs:
- package_name: com.example.app
- service_account_json_key: $SERVICE_ACCOUNT_KEY
- app_file: $BITRISE_APK_PATH
Bitrise qurulma üçün müxtəlif stack-lar təklif edir — alətlər və SDK ilə əvvəlcədən quraşdırılmış image-lar. Stack-lar mövcuddur Xcode (versiya 14, 15, 16 iOS SDK 17, 18 ilə), Android (müxtəlif SDK və NDK versiyaları ilə), Flutter, React Native və Kotlin Multiplatform üçün. Hər bir stack əvvəlcədən quraşdırılmış alətlərin və versiyaların təsvirinə malikdir.
Stack seçimi qurulma vaxtına və layihə ilə uyğunluğa təsir edir. Bitrise müntəzəm olaraq yeniləyir stack-ları, alətlərin yeni versiyalarını əlavə edərək. Platforma yeniləmələri zamanı gözlənilməz dəyişikliklərin qarşısını almaq üçün bitrise.yml-də stack-ın konkret versiyasını təyin etmək olar. Xüsusi asılılıqlar üçün əsas qurulmadan əvvəl lazımi paketləri quraşdıran Script Step istifadə olunur. Bitrise həmçinin Linux stack-ları üçün Docker image-larını dəstəkləyir ki, bu da Android qurulmaları üçün xüsusi mühitdən istifadə etməyə imkan verir.
Tez-tez verilən suallar
Bitrise pulsuz plan təklif edir ayda 90 dəqiqə qurulma və bir concurrent build ilə. Developer ($79/ay) 3000 dəqiqə, 5 concurrent build və bütün inteqrasiyaları əhatə edir. Enterprise — fərdi qiymət.
Bitrise iOS (Swift, Objective-C), Android (Kotlin, Java), Flutter, React Native, Cordova, Ionic və Xamarin dəstəkləyir. Hər platforma üçün əvvəlcədən quraşdırılmış alətlər və Workflow şablonları var.
Bitrise əlavə konfiqurasiya olmadan iOS qurulması üçün macOS runner-ları təqdim edir. Platforma özü macOS infrastrukturunu idarə edir — runner tətbiqin stack-ından asılı olaraq avtomatik seçilir.
Bitrise sertifikatları şifrələnmiş formada saxlayır və Certificate and Profile Installer Step-i vasitəsilə qurulmadan əvvəl onları avtomatik keychain-ə quraşdırır. Android üçün oxşar şəkildə — Keystore yüklənir və imzalama zamanı Gradle tərəfindən istifadə olunur.
Bəli, Bitrise Script Step (bash skripti) və GitHub-dan xüsusi Step Library vasitəsilə xüsusi Steps dəstəkləyir. Həmçinin Bitrise sənədləşməsinə uyğun olaraq öz Step-inizi yaradıb Step Library-də dərc edə bilərsiniz.
Nəticə
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.
Həm də oxuyun