Build va test avtomatlashtirish, pipeline, GitHub Actions
10-sinfAdvanced Android4-hafta · 12-darsKodni tez-tez qo'shish va avtomatik tekshirish
Delivery va Deployment: ilovani yetkazish
YAML fayl bilan pipeline sozlash
Kodni doimiy qo'shish va avtomatik tekshirish
Build qilishda muhim fayl tushib qoldi
Xato foydalanuvchigacha yetib bordi
Boshqalar bilan moslashmagan kod push qilindi
Har bosqichda inson xatosi bo'lishi mumkin. Jamoa katta bo'lsa, xatolar ko'payadi.
Qismni bosing. Xato topilsa, tizim dasturchiga darhol xabar beradi.
Ilovani tayyorlash, nashr qilish va avtomatlashtirish
CI davomi: ilovani tayyorlash, sinovga chiqarish va nashr jarayonlarini avtomatlashtiradi. Ilova doim tayyor turadi.
Jarayonni yanada rivojlantiradi: ilova foydalanuvchilarga avtomatik yetkaziladi.
Misol: mobil o'yinlar deyarli har hafta yangilanadi. Pastga
Pipeline: jarayonlar ketma-ketligi. Hammasi avtomatik, qo'lda ish yo'q.
Har biri Git repozitoriyasi bilan bog'liq holda ishlaydi.
ViewModel va Repository funksiyalari
Qismlar birga ishlashi
Compose, Activity, Fragment
Resurslardan foydalanish
"Kodim to'g'ri ishlayapti" degan xayol bo'lishi mumkin, CI real tekshiruv qiladi.
YAML konfiguratsiya fayli: build, test, deploy
name: Android CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
Fayl .github/workflows papkasida turadi. on: push va PR hodisalari.
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
- name: Build with Gradle
run: ./gradlew build
Loyiha fayllari yuklanadi.
Java 17 (temurin) o'rnatiladi.
./gradlew build ilovani yig'adi.
Muvaffaqiyat yoki xato ko'rsatiladi.
name: Release Build
on:
push:
tags: [ 'v*' ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Build Release
run: ./gradlew bundleRelease
- name: Upload to Play Store
uses: r0adkll/upload-google-play@v1
Qisqartirilgan nusxa. Pastga: Secrets
Fayldagi secrets.PLAY_STORE_KEY shu bo'limdan olinadi.
PR ochilganda avtomatik build va unit test ishga tushishi nima?
Kodni doimiy qo'shish va avtomatik tekshirish.
Ilovani tayyorlash va yetkazishni avtomatlashtirish.
Avtomatik bajariladigan jarayonlar ketma-ketligi.
.github/workflows/android.yml yarating va "Android CI" workflow'ini yozing.Tez-tez birlashtirish, avtomatik build va test.
Tayyorlash va yetkazishni avtomatlashtirish.
GitHub Actions: on, jobs, steps.
Maxfiy ma'lumotlar shifrlangan saqlanadi.
O'z loyihangiz uchun Android CI YAML faylini yozing.
CI va CD farqini va afzalliklarini yozing.
Keyingi hafta: build.gradle faylining asosiy tuzilmasi va modullararo bog'lanishi.