Sürekli Entegrasyon Nedir?
İngilizce: Continuous Integration
Yayın: · Son güncelleme:
Sürekli Entegrasyon Nedir? Kısaca
Sürekli entegrasyon (Continuous Integration, CI), geliştiricilerin kod değişikliklerini gün içinde sık sık ortak depoya birleştirdiği ve her birleştirmede otomatik derleme ile testlerin çalıştığı yazılım geliştirme pratiğidir.

İçindekiler
Sürekli entegrasyon nedir?
Sürekli entegrasyon, ekip üyelerinin kodlarını haftalarca ayrı tutup en sonda birleştirmesi yerine, küçük parçalar hâlinde sık sık birleştirmesidir. Her birleştirme otomatik olarak derlenir ve test edilir. Sorun varsa birkaç dakika içinde haber gelir.
Bu yaklaşım, eskiden sık yaşanan "birleştirme cehennemi" sorununa cevap olarak doğdu. Haftalarca ayrı çalışan beş kişinin kodu bir araya geldiğinde günlerce çakışma çözmek gerekiyordu.
CI ne demek, adımları nelerdir?
CI, sürekli entegrasyonun İngilizce kısaltmasıdır. Tipik bir CI akışı şöyledir:
- Geliştirici kodunu depoya gönderir.
- CI sunucusu değişikliği fark eder.
- Kod derlenir ve bağımlılıklar kurulur.
- Birim ve entegrasyon testleri çalışır.
- Sonuç ekibe bildirilir.
Örneğin bir geliştirici sabah 10'da küçük bir değişiklik gönderdi ve bir test kırıldı. Saat 10.05'te bildirim gelir, hatayı daha konu aklındayken düzeltir. Aynı hata iki hafta sonra fark edilseydi, sebebini bulmak saatler alabilirdi.
Ekibe faydası ve iyi uygulamalar
Ana dal hep çalışır durumda kalır. Herkes güncel ve sağlam bir kodun üzerine inşa eder, kimse bozuk bir temelin üzerinde saatler harcamaz.
İşe yaraması için birkaç kural gerekir.
Kırılan derleme ilk öncelik olmalı ve hemen onarılmalı. Testler hızlı olmalı. Yarım saat süren bir hat, geliştiricileri sık birleştirmekten caydırır. CI genelde CI/CD sürecinin ilk yarısıdır ve sürekli teslimatla birlikte kurulur.
Sıkça Sorulan Sorular
Sürekli entegrasyon için hangi araçlar kullanılır?
GitHub Actions, GitLab CI, Jenkins ve CircleCI yaygın araçlardır. Çoğu, depoya eklenen bir yapılandırma dosyasıyla hangi adımların çalışacağını tanımlar.
CI kurmak için çok test yazmak gerekir mi?
Başlangıç için birkaç temel test bile yeterlidir. Hat kurulduktan sonra testler zamanla çoğaltılır. Hiç test yoksa CI en azından kodun derlenip derlenmediğini kontrol eder.