İçeriğe geç

Sürekli Entegrasyon (CI)

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

CI İşlemleri

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

  • CI: Bu, birim testlerini, linting kontrollerini ve bazen de depoya bağlı olarak daha kapsamlı testleri çalıştırmayı içeren birincil CI testimizdir.
  • Docker Dağıtımı: Bu test, Dockerfile ve ilgili komut dosyalarının doğru çalıştığından emin olmak için projenin Docker kullanılarak dağıtımını kontrol eder.
  • Bozuk Bağlantılar: Bu test, codebase'i markdown veya HTML dosyalarımızdaki bozuk veya çalışmayan bağlantılar için tarar.
  • CodeQL: CodeQL, kodumuz üzerinde semantik analiz yapan, potansiyel güvenlik açıklarını bulmaya ve yüksek kaliteli kodu korumaya yardımcı olan GitHub'dan bir araçtır.
  • PyPI Yayınlama: Bu test, projenin herhangi bir hata olmadan paketlenip PyPi'ye 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 bulunmaktadır:

Depo (Repository) CI Docker ile Dağıtım Bozuk Bağlantılar CodeQL PyPI ve Belge Yayınlama
yolov3 YOLOv3 CI Docker İmajlarını Yayınla Bozuk bağlantıları kontrol et CodeQL
yolov5 YOLOv5 CI Docker İmajlarını Yayınla Bozuk bağlantıları kontrol et CodeQL
Ultralytics Ultralytics CI Docker İmajlarını Yayınla Bozuk bağlantıları kontrol et CodeQL PyPI'ye Yayınla ve Belgeleri Dağıt Conda Derlemeleri
hub-sdk HUB-SDK CI Bozuk bağlantıları kontrol et CodeQL PyPI'ye Yayınla
hub HUB CI Bozuk bağlantıları kontrol et
mkdocs Ultralytics Eylemleri CodeQL PyPI'ye Yayınla
thop Ultralytics Eylemleri CodeQL PyPI'ye Yayınla
eylemler Ultralytics Eylemleri CodeQL PyPI'ye Yayınla
belgeler Ultralytics Eylemleri Bozuk bağlantıları kontrol etAlan Adlarını Kontrol Et pages-build-deployment
el kitabı Ultralytics Eylemleri Bozuk bağlantıları kontrol et pages-build-deployment

Her bir rozet, ilgili CI testinin üzerindeki son çalıştırmanın durumunu gösterir. main ilgili deponun dalı. Bir test başarısız olursa, rozet "başarısız" durumunu görüntüler ve geçerse "geçen" durumunu görüntüler.

Başarısız olan bir test fark ederseniz, ilgili depoda bir GitHub sorunu aracılığıyla bunu bildirmeniz büyük bir yardım olacaktır.

Unutmayın, başarılı bir CI testi her şeyin mükemmel olduğu anlamına gelmez. Değişiklikleri dağıtmadan veya birleştirmeden önce kodu manuel olarak incelemeniz her zaman önerilir.

Kod Kapsamı

Kod kapsamı, testleriniz çalıştığında kod tabanınızın ne kadarının yürütüldüğünü temsil eden bir ölçüdür. Testlerinizin kodunuzu ne kadar iyi kullandığına dair fikir verir ve uygulamanızın test edilmemiş bölümlerini belirlemede çok önemli olabilir. Yüksek bir kod kapsamı yüzdesi genellikle daha düşük bir hata olasılığı ile ilişkilendirilir. Ancak, kod kapsamının kusurların yokluğunu garanti etmediğini anlamak önemlidir. Sadece kodun hangi bölümlerinin testler tarafından yürütüldüğünü gösterir.

codecov.io ile entegrasyon

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

Codecov ile entegre olarak, hatalara yatkın olabilecek veya daha fazla test gerektiren alanlara odaklanarak kodumuzun kalitesini korumayı ve iyileştirmeyi amaçlıyoruz.

Kapsam Sonuçları

Kod kapsamı durumuna hızlıca bir göz atmak için ultralytics python paketi, rozet ve güneş ışını görselini ekledik ultralytics kapsam sonuçları. Bu görüntüler, testlerimiz tarafından kapsanan kodun yüzdesini göstererek, test çabalarımızın hızlı bir şekilde anlaşılmasını sağlayan bir metrik sunar. Tüm ayrıntılar için lütfen şuraya bakın: https://codecov.io/github/ultralytics/ultralytics.

Depo (Repository) Kod Kapsamı
Ultralytics codecov

Aşağıdaki güneş ışını grafiğinde, en içteki daire tüm projeyi temsil eder, merkezden uzaklaştıkça klasörler ve son olarak tek bir dosya bulunur. Her dilimin boyutu ve rengi sırasıyla ifade sayısını ve kapsamı temsil eder.

Ultralytics Codecov Görüntüsü

SSS

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

Ultralytics'te 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 testleri, linting kontrolleri ve kapsamlı testler çalıştırmayı içerir. Ek olarak, yazılımımızı paketlemek ve dağıtmak için Docker dağıtımı, bozuk bağlantı kontrolleri, güvenlik açıkları için CodeQL analizi ve PyPI yayınlama gerçekleştiriyoruz.

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

CodeQL analizi Ultralytics'in 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ği için Ultralytics için çok önemlidir. CodeQL ile kodumuzdaki riskleri proaktif olarak belirleyip azaltabilir, böylece sağlam ve güvenli yazılım çözümleri sunmamıza yardımcı olur.

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

Ultralytics, projelerimizin dağıtımını doğrulamak için özel bir CI eylemi aracılığıyla Docker kullanır. Bu işlem, Dockerfile ve ilişkili komut dosyalarımızın doğru şekilde çalıştığından emin olarak, ölçeklenebilir ve güvenilir AI çözümleri için kritik öneme sahip tutarlı ve yeniden üretilebilir dağıtım ortamlarına olanak tanır.

Ultralytics'te otomatik PyPI yayınlamasının rolü nedir?

Otomatik PyPI yayınlama, projelerimizin hatasız bir şekilde paketlenip yayınlanmasını sağlar. Bu adım, Ultralytics'in Python paketlerinin dağıtımı için çok önemlidir ve kullanıcıların araçlarımızı Python Paket Dizini (PyPI) aracılığıyla kolayca kurup kullanmalarına olanak tanır.

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

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



📅 1 yıl önce oluşturuldu ✏️ 2 ay önce güncellendi

Yorumlar