İçeriğe geç

Sürekli Entegrasyon (CI)

Sürekli Entegrasyon (CI), değişikliklerin entegre edilmesini ve otomatik olarak test edilmesini içeren yazılım geliştirmenin önemli bir yönüdür. CI, geliştirme sürecinde sorunları erken ve sıklıkla yakalayarak yüksek kaliteli kodu korumamızı sağlar. Ultralytics adresinde, kod tabanımızın kalitesini ve bütünlüğünü sağlamak için çeşitli CI testleri kullanıyoruz.

CI Eylemleri

İşte CI faaliyetlerimizin kısa bir açıklaması:

  • CI: Bu, birim testlerini, linting kontrollerini ve bazen depoya bağlı olarak daha kapsamlı testleri çalıştırmayı içeren birincil CI testimizdir.
  • Docker Dağıtımı: Bu test, Docker dosyasının ve ilgili komut dosyalarının doğru çalıştığından emin olmak için Docker kullanarak projenin dağıtımını kontrol eder.
  • Bozuk Bağlantılar: Bu test, kod tabanını markdown veya HTML dosyalarımızdaki herhangi bir kırık veya ölü bağlantı için tarar.
  • CodeQL: CodeQL, kodumuz üzerinde semantik analiz gerçekleştiren, potansiyel güvenlik açıklarını bulmaya ve yüksek kaliteli kodu korumaya yardımcı olan GitHub'ın bir aracıdır.
  • PyPI Publishing: Bu test, projenin paketlenip PyPi'de hatasız bir şekilde yayınlanıp yayınlanamayacağını kontrol eder.

CI Sonuçları

Aşağıda ana depolarımız için bu CI testlerinin durumunu gösteren tablo yer almaktadır:

Depo CI Docker Dağıtımı Bozuk Bağlantılar CodeQL PyPI ve Docs Yayıncılığı
yolov3 YOLOv3 CI Docker Görüntülerini Yayınlama Bozuk bağlantıları kontrol edin CodeQL
yolov5 YOLOv5 CI Docker Görüntülerini Yayınlama Bozuk bağlantıları kontrol edin CodeQL
ultralytics ultralytics CI Docker Görüntülerini Yayınlama Bozuk bağlantıları kontrol edin CodeQL PyPI'da Yayınlayın ve Dokümanları Dağıtın
göbek HUB CI Bozuk bağlantıları kontrol edin
dokümanlar Bozuk bağlantıları kontrol edinAlan Adlarını Kontrol Et pages-build-deployment

Her rozet, ilgili CI testinin son çalıştırma durumunu gösterir. main ilgili deponun dalı. Bir test başarısız olursa, rozet "başarısız" durumunu gösterir ve geçerse "geçiyor" durumunu gösterir.

Bir testin başarısız olduğunu fark ederseniz, bunu ilgili depodaki bir GitHub sorunu aracılığıyla bildirebilirseniz çok yardımcı olur.

Unutmayın, başarılı bir CI testi her şeyin mükemmel olduğu anlamına gelmez. Dağıtımdan veya değişiklikleri birleştirmeden önce kodun her zaman manuel olarak gözden geçirilmesi önerilir.

Kod Kapsamı

Kod kapsamı, testleriniz çalıştığında kod tabanınızın yüzde kaçının çalıştırıldığını gösteren bir metriktir. Testlerinizin kodunuzu ne kadar iyi çalıştırdığına dair fikir verir ve uygulamanızın test edilmemiş kısımlarını belirlemede çok önemli olabilir. Yüksek bir kod kapsama yüzdesi genellikle daha düşük hata olasılığı ile ilişkilendirilir. Ancak, kod kapsamının hataların olmadığını garanti etmediğini anlamak önemlidir. Yalnızca kodun hangi bölümlerinin testler tarafından yürütüldüğünü gösterir.

codecov.io ile entegrasyon

Ultralytics adresinde, kod kapsamını ölçmek ve görselleştirmek için popüler bir çevrimiçi platform olan codecov.io ile depolarımızı entegre ettik. Codecov, ayrıntılı bilgiler, taahhütler arasında kapsam karşılaştırmaları ve hangi satırların kapsandığını gösteren doğrudan kodunuz üzerinde görsel kaplamalar sağlar.

Codecov ile entegre olarak, hatalara eğilimli olabilecek veya daha fazla test edilmesi gereken alanlara odaklanarak kodumuzun kalitesini korumayı ve iyileştirmeyi amaçlıyoruz.

Kapsam Sonuçları

Kod kapsamı durumuna hızlı bir şekilde göz atmak için ultralytics python paketine bir rozet ve güneş patlaması görseli ekledik. ultralytics kapsama sonuçları. Bu görüntüler, testlerimiz tarafından kapsanan kod yüzdesini göstermekte ve test çalışmalarımızın bir bakışta ölçülmesini sağlamaktadır. Tüm ayrıntılar için lütfen https://codecov.io/github/ultralytics/ultralytics adreslerine bakın.

Depo Kod Kapsamı
ultralytics codecov

Aşağıdaki güneş patlaması grafiğinde, en içteki daire projenin tamamıdır, merkezden uzaklaştıkça klasörler ve son olarak tek bir dosya yer alır. Her bir dilimin boyutu ve rengi sırasıyla ifade sayısını ve kapsamı temsil etmektedir.

Ultralytics Codecov Görüntü



Oluşturma 2023-11-12, Güncelleme 2024-04-18
Yazarlar: glenn-jocher (5), Burhan-Q (1)

Yorumlar