Overslaan naar inhoud

Continue integratie (CI)

Continuous Integration (CI) is een essentieel aspect van softwareontwikkeling waarbij wijzigingen automatisch worden geïntegreerd en getest. Met CI kunnen we code van hoge kwaliteit behouden door problemen vroeg en vaak in het ontwikkelproces op te sporen. Bij Ultralytics gebruiken we verschillende CI-tests om de kwaliteit en integriteit van onze codebase te waarborgen.

CI acties

Hier volgt een korte beschrijving van onze CI-acties:

  • CI: Dit is onze primaire CI-test die bestaat uit het uitvoeren van unit tests, linting controles en soms uitgebreidere tests, afhankelijk van de repository.
  • Docker Uitrol: Deze test controleert de implementatie van het project met behulp van Docker om er zeker van te zijn dat het Dockerbestand en de bijbehorende scripts correct werken.
  • Gebroken koppelingen: Deze test scant de codebase op gebroken of dode links in onze markdown of HTML-bestanden.
  • CodeQL: CodeQL is een tool van GitHub die semantische analyses uitvoert op onze code en helpt bij het vinden van potentiële beveiligingslekken en het onderhouden van code van hoge kwaliteit.
  • PyPI publiceren: Deze test controleert of het project zonder fouten kan worden verpakt en gepubliceerd naar PyPi.

CI-resultaten

Hieronder staat de tabel met de status van deze CI-tests voor onze belangrijkste repositories:

Archief CI Docker implementatie Gebroken koppelingen CodeQL PyPI en Docs publiceren
yolov3 YOLOv3 CI Docker-afbeeldingen publiceren Gebroken links controleren CodeQL
yolov5 YOLOv5 CI Docker-afbeeldingen publiceren Gebroken links controleren CodeQL
ultralytics ultralytics CI Docker-afbeeldingen publiceren Gebroken links controleren CodeQL Publiceren naar PyPI en Documenten implementeren
naaf HUB CI Gebroken links controleren
docs Gebroken links controlerenDomeinen controleren pagina's-bouwen-uitrol

Elke badge toont de status van de laatste run van de corresponderende CI-test op de main tak van het betreffende archief. Als een test mislukt, zal de badge een "failing" status weergeven en als hij slaagt een "passing" status.

Als je merkt dat een test mislukt, zou het enorm helpen als je dit zou kunnen melden via een GitHub issue in de betreffende repository.

Onthoud dat een geslaagde CI-test niet betekent dat alles perfect is. Het is altijd aan te raden om de code handmatig te controleren voordat je deze implementeert of wijzigingen samenvoegt.

Code dekking

Code coverage is een metriek die staat voor het percentage van je codebase dat wordt uitgevoerd wanneer je tests draaien. Het geeft inzicht in hoe goed je tests je code uitvoeren en kan cruciaal zijn bij het identificeren van niet-geteste delen van je applicatie. Een hoog code coverage percentage wordt vaak geassocieerd met een lagere kans op bugs. Het is echter essentieel om te begrijpen dat codedekking geen garantie is voor de afwezigheid van defecten. Het geeft alleen aan welke delen van de code zijn uitgevoerd door de tests.

Integratie met codecov.io

Op Ultralytics hebben we onze repositories geïntegreerd met codecov.io, een populair online platform voor het meten en visualiseren van codedekking. Codecov biedt gedetailleerde inzichten, dekkingsvergelijkingen tussen commits en visuele overlays direct op je code, die aangeven welke regels zijn gedekt.

Door te integreren met Codecov willen we de kwaliteit van onze code behouden en verbeteren door ons te richten op gebieden die vatbaar zijn voor fouten of die verder getest moeten worden.

Dekking Resultaten

Om snel een glimp op te vangen van de code coverage status van de ultralytics python pakket hebben we een badge en een sunburst-visual van de ultralytics dekkingsresultaten. Deze afbeeldingen laten het percentage code zien dat door onze tests wordt gedekt en geven in één oogopslag een beeld van onze testinspanningen. Zie voor volledige details https://codecov.io/github/ultralytics/ultralytics.

Archief Code dekking
ultralytics codecov

In de onderstaande zonnestraal is de binnenste cirkel het hele project, verder weg van het midden zijn mappen en uiteindelijk een enkel bestand. De grootte en kleur van elke slice geeft respectievelijk het aantal verklaringen en de dekking weer.

Ultralytics Codecov Afbeelding



Aangemaakt 2023-11-12, Bijgewerkt 2024-04-18
Auteurs: glenn-jocher (5), Burhan-Q (1)

Reacties