Sürekli Entegrasyon temel bilgileri

Sürekli Entegrasyon (CI), geliştiricilerin kod değişikliklerini sıklıkla merkezi bir depoda birleştirdiği, ardından otomatik derlemeler ve testlerin çalıştırıldığı bir yazılım geliştirme uygulamasıdır.

Birleştirme sonrasında derlemeyi bozacak yeni değişiklikleri önlemek için temel bir CI sistemi kurabilirsiniz. Uygulamayı otomatik olarak test edip API seviyeleri, ekran boyutları ve platformlar gibi farklı ortamlarda beklendiği gibi çalıştığından emin olmak için daha gelişmiş bir CI sistemi programlayabilirsiniz.

Birden fazla geliştiricinin kod değişikliği isteğinde nasıl bulunacağını ve ana kod deposuyla birleştirilmeden önce bu değişikliklerin CI sistemi tarafından nasıl kontrol edildiğini gösteren bir diyagram.
Şekil 1. CI sistemi, birleştirme işleminden önce denetimler çalıştırarak kod deposunun iyi durumda kalmasını sağlar.

Bu belgede, geliştiricilerin Android projeleri için etkili CI sistemleri oluşturmak amacıyla kullandığı yaygın stratejiler gösterilmektedir. Bu yönergeler geneldir ve çok sayıda çözüm için geçerlidir.

Tipik örnek

Tipik bir CI sistemi, aşağıdaki gibi bir iş akışını veya ardışık düzeni izler:

  1. CI sistemi kodda bir değişiklik algılar. Bu genelde bir geliştirici "değişiklik listesi" veya "birleştirme isteği" olarak da adlandırılan bir pull isteği oluşturduğunda.
  2. İş akışını çalıştırmak için bir sunucu hazırlar ve başlatır.
  3. Kodun yanı sıra Android SDK'sı veya gerekirse emülatör görüntüleri gibi araçları da getirir.
  4. Belirli bir komutu çalıştırarak projeyi oluşturur (örneğin, ./gradlew build).
  5. Belirli bir komutu çalıştırarak (örneğin, şu komutu çalıştırarak) yerel testleri çalıştırır:/gradlew test.
  6. Emülatörleri başlatır ve araçlı testleri çalıştırır.
  7. Test sonuçları ve APK'lar gibi yapıları yükler.
Temel CI iş akışını gösteren şema
Şekil 2. Temel CI iş akışı

CI'nın avantajları

CI'nın avantajları şunlardır:

  • İyileştirilmiş yazılım kalitesi: CI, sorunları erkenden tespit edip düzelterek yazılım kalitesinin iyileştirilmesine yardımcı olabilir. Bu, yazılım sürümlerindeki hata sayısını azaltmaya ve genel kullanıcı deneyimini iyileştirmeye yardımcı olabilir.
  • Bozuk derleme riski daha az: Derleme işleminizi CI ile otomatikleştirdiğinizde sorunları sürecin erken bir aşamasında çözerek bozuk derlemelerden daha iyi kaçınabilirsiniz.
  • Sürümlere daha fazla güven: CI, her sürümün kararlı ve üretime hazır olmasını sağlamaya yardımcı olabilir. CI, otomatik testler çalıştırarak olası sorunları genel kullanıma sunmadan önce tespit edebilir.
  • Daha iyi iletişim ve ortak çalışma: CI, geliştiricilerin kod ve test sonuçlarını paylaşabilecekleri merkezi bir yer sağlayarak, geliştiricilerin ve diğer ekip üyelerinin birlikte çalışmasını ve ilerlemeyi izlemesini kolaylaştırabilir.
  • Üretkenliği artırma: CI, aksi halde zaman alıcı ve hataya yatkın görevleri otomatikleştirerek geliştiricilerin üretkenliğini artırmaya yardımcı olabilir.

Daha fazla bilgi

Uygulamanızın geliştirme sürecini iyileştirmek için sürekli entegrasyonu nasıl kullanabileceğinizle ilgili daha fazla bilgi edinmek için aşağıdaki sayfaları okuyun: