Zum Inhalt springen

Kontinuierliche Integration (CI)

Kontinuierliche Integration (Continuous Integration, CI) ist ein wesentlicher Aspekt der Softwareentwicklung, bei dem ├änderungen automatisch integriert und getestet werden. CI erm├Âglicht es uns, qualitativ hochwertigen Code zu erhalten, indem wir Probleme fr├╝hzeitig und h├Ąufig im Entwicklungsprozess erkennen. Bei Ultralytics verwenden wir verschiedene CI-Tests, um die Qualit├Ąt und Integrit├Ąt unserer Codebasis sicherzustellen.

CI-Aktionen

Hier ist eine kurze Beschreibung unserer CI-Aktionen:

  • CI: Dies ist unser prim├Ąrer CI-Test, bei dem Unit-Tests, Linting-Checks und je nach Repository manchmal auch umfassendere Tests durchgef├╝hrt werden.
  • Docker-Bereitstellung: Dieser Test pr├╝ft die Bereitstellung des Projekts mit Docker, um sicherzustellen, dass die Dockerdatei und die dazugeh├Ârigen Skripte richtig funktionieren.
  • Kaputte Links: Bei diesem Test wird die Codebasis auf defekte oder tote Links in unseren markdown oder HTML-Dateien ├╝berpr├╝ft.
  • CodeQL: CodeQL ist ein Tool von GitHub, das eine semantische Analyse unseres Codes durchf├╝hrt und uns hilft, potenzielle Sicherheitsl├╝cken zu finden und qualitativ hochwertigen Code zu erhalten.
  • PyPi Publishing: Dieser Test pr├╝ft, ob das Projekt ohne Fehler verpackt und auf PyPi ver├Âffentlicht werden kann.

CI-Ergebnisse

In der folgenden Tabelle siehst du den Status dieser CI-Tests f├╝r unsere wichtigsten Repositories:

Repository CI Docker-Bereitstellung Kaputte Links CodeQL PyPi und Docs ver├Âffentlichen
yolov3 YOLOv3 CI Docker Images ver├Âffentlichen Defekte Links pr├╝fen CodeQL
yolov5 YOLOv5 CI Docker Images ver├Âffentlichen Defekte Links pr├╝fen CodeQL
ultralytics ultralytics CI Docker Images ver├Âffentlichen Defekte Links pr├╝fen CodeQL Bei PyPI ver├Âffentlichen und Docs bereitstellen
hub HUB CI Defekte Links pr├╝fen
docs Defekte Links pr├╝fen pages-build-deployment

Jedes Badge zeigt den Status des letzten Laufs des entsprechenden CI-Tests auf dem main Zweig des jeweiligen Repositorys. Wenn ein Test fehlschl├Ągt, zeigt das Abzeichen den Status "fehlgeschlagen" an, und wenn er bestanden wird, zeigt es den Status "bestanden" an.

Wenn du feststellst, dass ein Test fehlschl├Ągt, w├Ąre es eine gro├če Hilfe, wenn du dies ├╝ber einen GitHub issue im entsprechenden Repository melden k├Ânntest.

Denk daran, dass ein erfolgreicher CI-Test nicht bedeutet, dass alles perfekt ist. Es wird immer empfohlen, den Code vor dem Einsatz oder dem Zusammenführen von Änderungen manuell zu überprüfen.

Code-Abdeckung

Die Codeabdeckung ist eine Kennzahl, die den Prozentsatz deiner Codebasis angibt, der bei der Ausf├╝hrung deiner Tests ausgef├╝hrt wird. Sie gibt Aufschluss dar├╝ber, wie gut deine Tests deinen Code trainieren und kann entscheidend sein, um ungetestete Teile deiner Anwendung zu identifizieren. Ein hoher Prozentsatz der Codeabdeckung wird oft mit einer geringeren Wahrscheinlichkeit von Fehlern in Verbindung gebracht. Es ist jedoch wichtig zu verstehen, dass die Codeabdeckung keine Garantie f├╝r die Abwesenheit von Fehlern ist. Sie zeigt lediglich an, welche Teile des Codes von den Tests ausgef├╝hrt wurden.

Integration mit codecov.io

Auf Ultralytics haben wir unsere Repositories mit codecov.io integriert, einer beliebten Online-Plattform zur Messung und Visualisierung der Codeabdeckung. Codecov bietet detaillierte Einblicke, Abdeckungsvergleiche zwischen Commits und visuelle ├ťberlagerungen direkt auf deinem Code, die anzeigen, welche Zeilen abgedeckt wurden.

Durch die Integration mit Codecov wollen wir die Qualit├Ąt unseres Codes erhalten und verbessern, indem wir uns auf Bereiche konzentrieren, die fehleranf├Ąllig sind oder weitere Tests ben├Âtigen.

Erfassungsergebnisse

Um schnell einen ├ťberblick ├╝ber den Codeabdeckungsstatus der ultralytics python Paket haben wir ein Abzeichen und eine Sonnenbrille mit dem ultralytics Abdeckungsergebnisse. Diese Bilder zeigen den prozentualen Anteil des Codes, der von unseren Tests abgedeckt wird, und geben einen ├ťberblick ├╝ber unsere Testbem├╝hungen. Alle Einzelheiten findest du unter https://codecov.io/github/ultralytics/ultralytics.

Repository Code-Abdeckung
ultralytics codecov

In der untenstehenden Grafik ist der innerste Kreis das gesamte Projekt, vom Zentrum aus gesehen sind es Ordner und schlie├člich eine einzelne Datei. Die Gr├Â├če und Farbe jedes Kreises steht f├╝r die Anzahl der Anweisungen bzw. den Umfang.

Ultralytics Codecov Bild



Erstellt am 2023-11-12, Aktualisiert am 2023-12-03
Autoren: glenn-jocher (2)

Kommentare