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 dabei 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
Nabe HUB CI Defekte Links prüfen
docs Defekte Links prüfenDomains 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 von 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 2024-04-18
Autoren: glenn-jocher (5), Burhan-Q (1)

Kommentare