İç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çümünü sunmaktadır. Tüm ayrıntılar için lütfen bakınız https://codecov.io/github/ultralytics/ultralytics.

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ü

SSS

Ultralytics'da Sürekli Entegrasyon (CI) nedir?

Ultralytics 'da Sürekli Entegrasyon (CI), yüksek kalite standartlarını sağlamak için kod değişikliklerini otomatik olarak entegre etmeyi ve test etmeyi içerir. CI kurulumumuz birim testlerini, linting kontrollerini ve kapsamlı testleri çalıştırmayı içerir. Ayrıca, yazılımımızı paketlemek ve dağıtmak için Docker dağıtımı, kırık bağlantı kontrolleri, güvenlik açıkları için CodeQL analizi ve PyPI yayıncılığı gerçekleştiriyoruz.

Ultralytics markdown ve HTML dosyalarımızdaki kırık bağlantıları kontrol etmek için belirli bir CI eylemi kullanır. Bu, ölü veya bozuk bağlantıları tarayıp tanımlayarak belgelerimizin bütünlüğünü korumaya yardımcı olur ve kullanıcıların her zaman doğru ve canlı kaynaklara erişmesini sağlar.

CodeQL analizi Ultralytics'kod tabanı için neden önemlidir?

CodeQL analizi, potansiyel güvenlik açıklarını bulmak ve yüksek kalite standartlarını korumak için semantik kod analizi gerçekleştirdiğinden Ultralytics için çok önemlidir. CodeQL ile kodumuzdaki riskleri proaktif olarak belirleyip azaltabilir, sağlam ve güvenli yazılım çözümleri sunmamıza yardımcı olabiliriz.

Ultralytics dağıtım için Docker'ı nasıl kullanıyor?

Ultralytics özel bir CI eylemi aracılığıyla projelerimizin dağıtımını doğrulamak için Docker'ı kullanır. Bu süreç, Docker dosyamızın ve ilgili komut dosyalarının doğru şekilde çalışmasını sağlayarak ölçeklenebilir ve güvenilir yapay zeka çözümleri için kritik olan tutarlı ve tekrarlanabilir dağıtım ortamlarına olanak tanır.

Otomatik PyPI yayıncılığının Ultralytics adresindeki rolü nedir?

Otomatik PyPI yayınlama, projelerimizin hatasız bir şekilde paketlenmesini ve yayınlanmasını sağlar. Bu adım, Ultralytics' Python paketlerini dağıtmak için gereklidir ve kullanıcıların Python Paket Dizini (PyPI) aracılığıyla araçlarımızı kolayca yüklemelerine ve kullanmalarına olanak tanır.

Ultralytics kod kapsamını nasıl ölçer ve bu neden önemlidir?

Ultralytics Codecov ile entegre olarak kod kapsamını ölçer ve testler sırasında kod tabanının ne kadarının yürütüldüğüne dair içgörü sağlar. Yüksek kod kapsamı, iyi test edilmiş kodu gösterebilir ve hatalara eğilimli olabilecek test edilmemiş alanların ortaya çıkarılmasına yardımcı olabilir. Ayrıntılı kod kapsamı ölçümleri, ana depolarımızda veya doğrudan Codecov'da görüntülenen rozetler aracılığıyla keşfedilebilir.



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

Yorumlar