Skip to content

Sürümü etiket itmeden de yayımlayabil - #8

Merged
aripdcem merged 2 commits into
mainfrom
claude/trusting-mendel-1x5c86
Sep 20, 2026
Merged

aripdcem merged 2 commits into
mainfrom
claude/trusting-mendel-1x5c86

Conversation

@aripdcem

@aripdcem aripdcem commented Sep 20, 2026

Copy link
Copy Markdown
Collaborator

release.yml yalnızca v* etiketi itildiğinde sürüm açıyordu. Elle tetikleme zaten vardı ama etikete bağlı adımlar github.ref_type == 'tag' ile korunduğundan o yolda atlanıyor, geriye sadece APK üretimi kalıyordu — bugün tam olarak bu oldu.

Artık Actions → Release → Run workflow altındaki tag kutusuna etiket adı yazılabiliyor; etiketi de sürümü de iş akışı kendisi oluşturuyor (gh release create --target, GITHUB_TOKEN ile).

Bu desen aripdcom/norda'da zaten var ve gerekçesi de oraya yazılmış:

# Publishing from an environment that cannot push tags: trigger manually and pass the tag as an input

Yani aynı duvara daha önce de çarpılmış, çözüm norda'ya konmuş, compass'e geçmemiş. Bu PR farkı kapatıyor ve biçimi de norda'nınkine hizalıyor: girdi adı tag, type: string, etiket tek bir RELEASE_TAG ortam değişkenine indirgeniyor, adımlar if: env.RELEASE_TAG != '' ile korunuyor. (zagames aynı işi action-gh-release ile yapıyor; compass'in iş akışı gh kullandığı için norda'ya daha yakın.)

Üç yol

Tetikleyici Ne olur
git push origin v4.4 eskisi gibi: etiket denetlenir, APK üretilir, sürüm açılır
Elle + tag = v4.4 yeni: etiketi ve sürümü iş akışı oluşturur
Elle + tag boş etiket/sürüm yok, yalnızca imzalı APK çıktıya asılır

Üçüncüsü eski davranış; README'nin 10. bölümündeki boyut ölçümü onunla alındı, kaybolmasın diye korundu.

check-tag.sh

Her iki yayım yolunda da koşuyor. Betiğe bir de biçim denetimi eklendi: elle tetiklemede ad doğrudan elle yazıldığı için v öneki şart koşuluyor.

v4.3      -> Etiket ve versionName uyuşuyor: 4.3
4.3       -> ::error::Etiket 'v' ile başlamalı (örn. v4.3); gelen: 4.3
v         -> ::error::Etiket 'v' ile başlamalı (örn. v4.3); gelen: v
v4.4      -> ::error::Etiket (v4.4) ile versionName (4.3) uyuşmuyor.

4.3 yazılsaydı versionName ile karşılaştırma tutardı, ama ortaya depodaki diğerlerine benzemeyen ve tags: ['v*'] süzgecine bir daha takılmayan bir etiket çıkardı. norda aynı şeyi vX.Y.Z kalıbıyla sınıyor; compass iki parçalı sürüm kullandığı için (4.3) o kalıp olduğu gibi konamadı.

Etiket adı yine kabuğa gömülmüyor, ortam değişkeninden geçiyor — elle yazılan bir ad söz konusu olduğu için bu artık daha da önemli.

Dikkat: kontrolün yeri değişiyor

Şu ana kadar sürüm yayımlamak elle etiket itmeyi gerektiriyordu; bu birleşince iş akışını tetikleyebilen herkes sürüm yayımlayabilir hâle gelir. İstenirse iş akışı GitHub'da onay gerektiren bir environment'a bağlanarak o kapı geri konabilir.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Hopbr7JCpgA3tARXXvPGVi

release.yml yalnızca `v*` etiketi itildiğinde sürüm açıyordu; etiketi kim
iterse yayımı o başlatıyordu. Elle tetikleme zaten vardı ama etikete bağlı
adımlar `github.ref_type == 'tag'` ile korunduğu için o yolda atlanıyor,
geriye yalnızca APK üretimi kalıyordu.

Artık elle tetiklemede bir etiket adı kutusu var ve etiketi de sürümü de iş
akışı kendisi oluşturuyor (`gh release create --target`, GITHUB_TOKEN ile).
Aynı desen aripdcom/zagames'te zaten kullanılıyordu.

Kutu boş bırakılırsa eski davranış sürüyor: etiket de sürüm de oluşmaz,
yalnızca imzalı APK üretilip çıktıya asılır. README'nin 10. bölümündeki boyut
ölçümü bu modla alındı, kaybolmasın diye korundu.

check-tag.sh her iki yolda da koşuyor; `github.ref_type` yerine tek bir
`steps.tag.outputs.publish` değerine bakılıyor. Betiğe bir de biçim denetimi
eklendi: elle tetiklemede ada ne yazıldığı belli olmadığı için `v` öneki şart
koşuluyor. "4.3" yazılsaydı versionName ile karşılaştırma tutardı ama ortaya
depodaki diğerlerine benzemeyen, `tags: ['v*']` süzgecine de takılmayan bir
etiket çıkardı.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Hopbr7JCpgA3tARXXvPGVi
Aynı işi yapan iki iş akışı sebepsiz ayrışmasın: aripdcom/norda aynı sorunu
(etiket itemeyen bir ortamdan yayımlamak) aynı yoldan çözmüş ve bu depodaki
release.yml onunla neredeyse birebir aynı zaten.

Girdi `tag_name` yerine `tag`, `type: string` ile. Etiket de step çıktısı
yerine tek bir RELEASE_TAG ortam değişkenine indirgeniyor; adımlar
`if: env.RELEASE_TAG != ''` ile korunuyor. Ayrı bir `publish` bayrağına gerek
kalmadı: boş etiket zaten "yayımlama" demek.

Davranış değişmiyor, yalnızca biçim.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Hopbr7JCpgA3tARXXvPGVi
@aripdcem
aripdcem merged commit 865a9ec into main Sep 20, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants