GitLab CI yerine GitHub Actions: her itişte APK, etiketle imzalı sürüm - #1
Merged
Merged
Conversation
GitLab yapılandırması yalnızca test koşuyordu; APK'yı her seferinde elle
derlemek gerekiyordu. Yerine iki iş akışı geldi:
- ci.yml her itişte ve her PR'da testler, lint ve debug APK. APK koşunun
çıktısına asılıyor, Actions sekmesinden indirilip kuruluyor.
- release.yml `v` ile başlayan etiket itildiğinde imzalı release APK üretip
GitHub sürümü açıyor, SHA-256 özetiyle birlikte.
İş akışı mantığı YAML'a gömülmedi, .github/scripts/ altında duruyor: bozulduğunda
koşuyu tetikleyip beklemeden yerelde denenebiliyor. Üçü de burada koşturulup
sınandı.
Üç karar açıklama istiyor.
**SDK sürümü iş akışında yazmıyor.** GitLab'da imaj etiketi (android-sdk:35) elle
sabitlenmişti ve compileSdk yükselince onunla birlikte güncellenmesi gerekiyordu;
unutulunca derleme sebepsiz kırılıyordu. android-sdk.sh sürümü doğrudan
app/build.gradle.kts'den okuyor — tek doğru kaynak orası.
**APK'nın adı sürümü ve commit'i taşıyor.** İndirilen dosya app-debug.apk diye
durunca hangi sürüm olduğu ancak kurup Ayarlar'a bakınca anlaşılıyordu. Artık
compass-4.2-33-debug-1a2b3c4.apk. İmzasız release APK'sı da adında bunu söylüyor:
kurulamayacağını indirmeden önce görmek gerekiyor.
**İmzalama CI'da ortam değişkeninden okunuyor.** keystore.properties yolu duruyor
ve yerelde değişmedi, ama .properties biçiminde ters bölü kaçış karakteridir:
içinde ters bölü geçen bir parola dosyaya yazılınca sessizce başka bir parolaya
dönüşüyor ve imzalama "parola yanlış" diyerek kırılıyor. Ortam değişkeninde böyle
bir yorumlama yok. Yan kazanç: storeFile satırı eksik bir keystore.properties
artık çökmek yerine imzasız derlemeye düşüyor.
Etiket ile versionName'in tuttuğu yayından önce sınanıyor. İkisi ayrı düşerse
ortaya v4.3 diye yayımlanmış ama içinde 4.2 yazan bir APK çıkıyor ve bu ancak
telefona kurulunca fark ediliyor.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0186AndLaVEQTyw4n6sK2zBh
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
GitLab yapılandırması yalnızca test koşuyordu; APK'yı her seferinde elle derlemek gerekiyordu.
.gitlab-ci.ymlsilindi, yerine iki iş akışı geldi:ci.ymlrelease.ymlv*etiketiİş akışı mantığı YAML'a gömülmedi,
.github/scripts/altında duruyor: bozulduğunda koşuyu tetikleyip beklemeden yerelde denenebiliyor. Üç betik de yerelde koşturulup sınandı.Kararlar
android-sdk:35) elle sabitlenmişti vecompileSdkyükselince onunla birlikte güncellenmesi gerekiyordu; unutulunca derleme sebepsiz kırılıyordu.android-sdk.shsürümü doğrudanapp/build.gradle.kts'den okuyor — tek doğru kaynak orası.compass-4.2-33-debug-1a2b3c4.apk). İndirilen dosyaapp-debug.apkdiye durunca hangi sürüm olduğu ancak kurup Ayarlar'a bakınca anlaşılıyordu. İmzasız release APK'sı da bunu adında söylüyor: kurulamayacağını indirmeden önce görmek gerekiyor.COMPASS_KEYSTORE_*).keystore.propertiesyolu yerelde aynen duruyor, ama.propertiesbiçiminde ters bölü kaçış karakteridir: içinde ters bölü geçen bir parola dosyaya yazılınca sessizce başka bir parolaya dönüşüyor ve imzalama "parola yanlış" diyerek kırılıyor. Yan kazanç:storeFilesatırı eksik birkeystore.propertiesartık çökmek yerine imzasız derlemeye düşüyor.versionNameyayından önce karşılaştırılıyor (check-tag.sh). Ayrı düştüklerinde ortayav4.3diye yayımlanmış ama içinde 4.2 yazan bir APK çıkıyor ve bu ancak telefona kurulunca fark ediliyor.Ayrıca
gitlab.com/aripd/compass'tangithub.com/aripdcem/compass'a çevrildi — dokunan kişi artık güncellenmeyen depoya düşüyordu.KEYSTORE_BASE64,KEYSTORE_PASSWORD,KEY_ALIAS,KEY_PASSWORD) kurulumu.Doğrulama
YAML geçerliliği, üç kabuk betiğinin uçtan uca davranışı ve
build.gradle.ktsimzalama bloğu (dört senaryo: yapılandırma yok / ortam değişkeni /keystore.properties/ eksik dosya) yerelde sınandı. Android SDK bu geliştirme ortamında erişime kapalı olduğundanassembleDebugburada koşmadı — bu PR'ın kendi CI koşusu ilk uçtan uca kanıt.🤖 Generated with Claude Code
https://claude.ai/code/session_0186AndLaVEQTyw4n6sK2zBh