Gökmen Tuksavul

Blog Yazısı

2026-05-04

GitHub Actions ile Otomatik CI/CD Kurulumu

GitHub Actions kullanarak Angular ve Spring Boot projeleri için uçtan uca otomatik CI/CD pipeline kurulumu ve sunucuya otomatik deploy rehberi.

DevOpsGitHub ActionsCI/CD

Sponsorlu

GitHub Actions ile CI/CD kurmak, kodu otomatik deploy etmekten ibaret değildir. İyi pipeline testleri çalıştırır, build çıktısını doğrular, secret değerleri güvenli kullanır, imajı versiyonlar ve production geçişini kontrollü hale getirir.

Aşamaları ayırmak

Angular ve Spring Boot içeren projede frontend test/build, backend test/package, Docker image build ve deploy ayrı job olarak tasarlanabilir. Pull request tarafında test ve build yeterlidir; production deploy yalnızca main branch veya tag üzerinden tetiklenmelidir.

Cache ve tekrarlanabilirlik

Node tarafında npm ci, Maven tarafında wrapper kullanımı CI ortamını daha öngörülebilir yapar. Cache anahtarları lock dosyalarına bağlanmalıdır; aksi halde eski bağımlılıklar beklenmedik hatalara yol açabilir.

Secret yönetimi

SSH anahtarı, registry token, environment dosyası veya API secret repository içine yazılmamalıdır. GitHub Secrets ve environment-level protection kullanılmalıdır. Production deploy için manuel onay veya branch koruması eklemek riski azaltır.

İmaj versiyonlama

latest etiketi tek başına yeterli değildir. Commit SHA veya release tag ile Docker image etiketlemek rollback sürecini kolaylaştırır. Productionda hangi commitin çalıştığını bilmek hata anında büyük avantaj sağlar.

Sonuç

Başarılı CI/CD, otomasyon kadar disiplin gerektirir. Test, build, secret, versiyonlama ve kontrollü deploy adımları ayrıldığında ekip daha hızlı release alır ve production hatalarını daha erken yakalar.

Pratik uygulama notu

Pipeline tasarlarken başarısızlık senaryosu da planlanmalıdır. Test kırıldığında deploy durmalı, deploy kırıldığında log görünür olmalı, productiona çıkan sürüm izlenebilir kalmalıdır. Bu nedenle CI/CD dosyası yalnızca komut listesi değil, ekibin release disiplinini belgeleyen bir yapı olarak ele alınmalıdır.