Android'de GitHub Actions ile Otomatik Build Yapmak
Geliştiriciler için en temel ihtiyaçlardan biri, kod değişikliklerini her commit veya pull request sonrası otomatik olarak derlemek ve test etmek. Bu, hataları erken tespit etmek ve sürekli entegrasyon sağlamak açısından büyük avantaj sağlar. GitHub Actions, bu süreci otomatikleştirmek ve düzenli hale getirmek için güçlü bir araç sunar. İşte Android projelerinde GitHub Actions kullanarak otomatik build yapmanın temel adımları ve önemli noktaları.
İlk olarak,
.github/workflows klasöründe bir YAML dosyası oluşturmak gerekiyor. Bu dosya, build sürecinin adımlarını, kullanılacak ortamı ve tetikleyicileri belirler. Örneğin, her push ve pull request sonrası otomatik build için şu yapı kullanılabilir:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
name: Android CI
on:
push:
branches:
[list]
[*]main
[/list]
pull_request:
branches:
[list]
[*]main
[/list]
jobs:
build:
runs-on: ubuntu-latest
steps:
[list]
[*]name: Checkout repository
[/list]
uses: actions/checkout@v3
[list]
[*]name: Set up JDK 11
[/list]
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '11'
[list]
[*]name: Cache Gradle packages
[/list]
uses: actions/cache@v3
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('[b]/*.gradle', '[/b]/gradle.lockfile') }}
restore-keys: |
${{ runner.os }}-gradle-
[list]
[*]name: Download dependencies
[/list]
run: ./gradlew dependencies
[list]
[*]name: Build APK
[/list]
run: ./gradlew assembleRelease
[list]
[*]name: Upload APK artifact
[/list]
uses: actions/upload-artifact@v3
with:
name: app-release.apk
path: app/build/outputs/apk/release/app-release.apk
Yukarıdaki yapı, temel Android CI/CD işlemlerini kapsar. Gradle cache kullanımı, derleme süresini optimize ederken, artifact yükleme işlemi, derlenmiş APK'yı otomatik olarak saklar. Ayrıca, bu süreçte, test adımlarını da eklemek mümkündür.
Dilerseniz, bu temel yapı üzerine test, kod analizi veya imza işlemleri gibi adımlar da eklenebilir. Ayrıca, farklı branch'ler veya ortamlar için farklı workflow'lar da tanımlanabilir.
Sonuç olarak, bu yapı, Android projelerinde otomatik derleme ve dağıtım sürecini büyük ölçüde kolaylaştırır ve geliştirme döngüsünü hızlandırır. Bu yöntem, sürekli entegrasyon ve sürekli teslimat uygulamalarını benimseyen ekipler için vazgeçilmez bir araç haline gelir.