Ne yaptık:
- deploy job: Coolify response'undan deployment_uuid parse edip
GITHUB_OUTPUT'a yazıyor.
- verify job: artık uygulama UUID'si yerine spesifik deployment UUID'sini
polluyor (queued → in_progress → finished/failed geçişleri).
- Polling süresi 5 dk → 10 dk (max 60 × 10s).
Neden yaptık:
- Eski verify uygulama UUID'sini polling ediyordu. Yeni deploy başlamadan
önceki eski "running:healthy" status'u yakalayıp 4 saniyede early-exit
yapıyordu. Workflow yeşil görünür ama gerçek deploy'u doğrulamamış olur.
- Yeni davranış: workflow gerçekten Coolify deploy'unun bitmesini bekliyor.
Fail olursa workflow da fail eder, notify-failure job tetiklenir.
Ne yaptık:
- .github/workflows/deploy.yml: validate (backend pytest + frontend lint/build)
→ build-push GHCR (backend + frontend image) → Coolify webhook
→ verify (Coolify polling + public URL health check) → notify-failure
(GitHub issue auto-create) zinciri eklendi.
- .github/workflows/ci.yml: eski "Deploy to Coolify" job'u kaldırıldı.
CI artık sadece test + build doğrulaması yapıyor; deploy ayrı workflow'a alındı.
- Trigger: main branch'e push (workflow_dispatch ile manuel de tetiklenebilir).
Neden yaptık:
- Şu ana kadar Coolify deploy manuel tetikleniyordu (CLAUDE.md "Coolify deploy
otomatik tetiklenmez" notu). Her push sonrası Coolify panel'inden el ile
redeploy gerekiyordu.
- SellerX'in deploy-frontend.yml mimarisi — validate → build-push → deploy
→ verify zinciri — battle-tested. Aynı pattern'i trendyol-analiz'e port
ediyoruz.
- GHCR'a image push: ileride Coolify build yerine "image: ghcr.io/..." pull
yapabilsin diye. Şu an compose 'build:' kullansa bile cache + rollback için
GHCR'da hazır image bulunuyor.
- verify polling + public URL health check: deploy başarısız olursa GitHub
Actions otomatik fail eder ve notify-failure GitHub Issue açar.
Gerekli GitHub Secrets (Settings → Secrets and variables → Actions):
- COOLIFY_BASE_URL
- COOLIFY_API_TOKEN
- COOLIFY_TRENDYOL_UUID = x4c08gc84kcw4oow0ggg44cg