CI/CD — Fastlane
Darsliklar (Tutorials)
CI/CD — Fastlane & GitHub Actions — To'liq Darslik
Mundarija
- CI/CD nima va nega kerak?
- Fastlane asoslari (Fastfile, lanes)
- Fastlane Match — Sertifikatlarni boshqarish
- Fastlane Gym — Avtomatik Build
- Fastlane Pilot — TestFlight'ga yuklash
- GitHub Actions asoslari (YAML workflow)
- GitHub Actions + Fastlane integratsiyasi
- Xcode Cloud — Apple native yechimi
- Bitrise va boshqa alternativalar
- Real Workflow namunasi
- Xulosa
1. CI/CD nima va nega kerak? {#motivatsiya}
- CI (Continuous Integration): Har bir kod o'zgarishini avtomatik test qilish.
- CD (Continuous Deployment): Testlar muvaffaqiyatli o'tsa, ilovani avtomatik TestFlight yoki App Store'ga yuborish.
Nega kerak?
- Har safar testlarni qo'lda ishga tushirish zerikarli va vaqt oladi.
- Arxiv qilish va yuklash (Archive & Upload) jarayoni 20-30 daqiqa vaqtni oladi. CI/CD bu ishlarni serverda, siz ishingizni davom ettirayotgan paytda bajaradi.
2. Fastlane asoslari {#fastlane}
Fastlane — bu iOS va Android uchun eng mashhur avtomatlashtirish vositasi (Ruby tilida yozilgan). Loyihaga qo'shish: fastlane init
Fastfile: Bu yerda barcha buyruqlar (lane) yoziladi.
lane :beta do
increment_build_number
build_app(scheme: "MyApp")
upload_to_testflight
end
3. Fastlane Match {#match}
Jamoada ishlaganizda, har bir dasturchi o'zicha sertifikat yaratsa — App Store Connect "axlatxona"ga aylanadi. Match barcha sertifikatlarni bitta repozitoriyda (Git) shifrlangan holda saqlaydi va hamma uchun (dasturchilar, CI serverlar) bir xil sertifikatni ta'minlaydi.
4. Fastlane Gym {#gym}
Ilovani .ipa formatida arxiv qilish uchun javobgar.
gym(
scheme: "MyApp",
export_method: "app-store",
output_directory: "./build"
)
5. Fastlane Pilot {#pilot}
Build tayyor bo'lgach, uni TestFlight'ga bir qator kod bilan yuboradi:
pilot(ipa: "./build/MyApp.ipa")
6. GitHub Actions asoslari {#github-actions}
GitHub serverlarida kodni ishga tushirish uchun ishlatiladi. .github/workflows/main.yml faylida konfiguratsiya qilinadi.
on:
push:
branches: [ main ]
jobs:
build:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: bundle install
- name: Run Tests
run: bundle exec fastlane test
7. GitHub Actions + Fastlane integratsiyasi {#integration}
Bu eng kuchli kombinatsiya. Developer kodni push qiladi → GitHub Actions o'zi macos server ochadi → Fastlane orqali testlarni yurgizadi → Hammasi ok bo'lsa App Store Connect'ga yuklaydi.
8. Xcode Cloud {#xcode-cloud}
Apple'ning o'zining yangi CI/CD tizimi. Xcode ichiga integratsiya qilingan. Sozlash juda oson, lekin GitHub Actions kabi moslashuvchan (flexible) emas va narxi qimmatroq bo'lishi mumkin.
9. Bitrise va boshqa alternativalar {#alternatives}
- Bitrise: Faqat mobile uchun mo'ljallangan, juda ko'p tayyor "step"lari bor.
- Codemagic: Flutter va Native iOS uchun oson CI/CD.
10. Real Workflow namunasi {#real-workflow}
- Developer
featurebranch ochadi. - Kod yozadi va
Pushqiladi. - CI serverda Unit Testlar ishlaydi.
- Agar xato bo'lsa, PR (Pull Request) merge qilinmaydi.
- Merge qilinganda,
mainbranch avtomatik TestFlight'ga build chiqaradi.
11. Xulosa {#xulosa}
CI/CD — bu sizning vaqtingizni va asabingizni tejaydi.
- Kichik loyihalarda Fastlane ishlatishni o'rganing.
- GitHub Actions orqali testlarni avtomatlashtiring.
Vazifa: Fastlane'ni o'rnating va increment_build_number buyrug'ini ishlatib ko'radigan birinchi lane'ingizni yozing! 🚀