Skip to content

Intégration continue (CI)

L'intégration continue (IC) est un aspect essentiel du développement de logiciels qui consiste à intégrer les changements et à les tester automatiquement. L'IC nous permet de maintenir un code de haute qualité en détectant les problèmes tôt et souvent dans le processus de développement. À Ultralytics, nous utilisons divers tests d'intégration continue pour garantir la qualité et l'intégrité de notre base de code.

Actions de l'IC

Voici une brève description de nos actions de CI :

  • CI: il s'agit de notre test CI principal qui implique l'exĂ©cution de tests unitaires, de vĂ©rifications de linting et parfois de tests plus complets en fonction du rĂ©fĂ©rentiel.
  • DĂ©ploiement Docker: Ce test vĂ©rifie le dĂ©ploiement du projet Ă  l'aide de Docker pour s'assurer que le Dockerfile et les scripts associĂ©s fonctionnent correctement.
  • Liens brisĂ©s: Ce test analyse la base de code Ă  la recherche de liens brisĂ©s ou morts dans nos fichiers markdown ou HTML.
  • CodeQL: CodeQL est un outil de GitHub qui effectue une analyse sĂ©mantique de notre code, ce qui permet de trouver d'Ă©ventuelles failles de sĂ©curitĂ© et de maintenir un code de haute qualitĂ©.
  • Publication PyPI: ce test vĂ©rifie si le projet peut ĂŞtre empaquetĂ© et publiĂ© sur PyPi sans aucune erreur.

RĂ©sultats de l'IC

Tu trouveras ci-dessous le tableau montrant l'état de ces tests CI pour nos principaux dépôts :

Dépôt CI Déploiement Docker Liens brisés CodeQL Publication PyPI et Docs
yolov3 YOLOv3 CI Publie des images Docker Vérifier les liens brisés CodeQL
yolov5 YOLOv5 CI Publie des images Docker Vérifier les liens brisés CodeQL
ultralytics ultralytics CI Publie des images Docker Vérifier les liens brisés CodeQL Publier sur PyPI et déployer des documents
plaque tournante HUB CI Vérifier les liens brisés
docs Vérifier les liens brisésVérifier les domaines pages-build-deployment

Chaque badge indique l'état de la dernière exécution du test CI correspondant sur la page main du référentiel concerné. Si un test échoue, le badge affichera un état "failing", et s'il réussit, il affichera un état "passing".

Si tu remarques qu'un test échoue, il serait très utile que tu le signales par le biais d'un problème GitHub dans le dépôt correspondant.

N'oublie pas qu'un test CI réussi ne signifie pas que tout est parfait. Il est toujours recommandé d'examiner manuellement le code avant de le déployer ou de fusionner les modifications.

Couverture du code

La couverture du code est une mesure qui représente le pourcentage de ta base de code qui est exécuté lorsque tes tests s'exécutent. Elle donne une idée de la façon dont tes tests exercent ton code et peut être cruciale pour identifier les parties non testées de ton application. Un pourcentage élevé de couverture du code est souvent associé à une probabilité plus faible de bogues. Cependant, il est essentiel de comprendre que la couverture du code ne garantit pas l'absence de défauts. Elle indique simplement quelles parties du code ont été exécutées par les tests.

Intégration avec codecov.io

À Ultralytics, nous avons intégré nos dépôts à codecov.io, une plateforme en ligne populaire pour mesurer et visualiser la couverture du code. Codecov fournit des aperçus détaillés, des comparaisons de couverture entre les commits, et des superpositions visuelles directement sur ton code, indiquant quelles lignes ont été couvertes.

En intégrant Codecov, nous visons à maintenir et à améliorer la qualité de notre code en nous concentrant sur les domaines qui pourraient être sujets à des erreurs ou qui nécessitent des tests supplémentaires.

RĂ©sultats de la couverture

Pour avoir rapidement un aperçu de l'état de la couverture du code de l'application ultralytics python Nous avons inclus un badge et un visuel du soleil dans le paquet. ultralytics les résultats de la couverture. Ces images montrent le pourcentage de code couvert par nos tests, ce qui permet de mesurer d'un coup d'œil nos efforts en matière de tests. Pour plus de détails, voir https://codecov.io/github/ultralytics/ultralytics.

DĂ©pĂ´t Couverture du code
ultralytics codecov

Dans le graphique en forme de soleil ci-dessous, le cercle le plus intérieur représente l'ensemble du projet, en s'éloignant du centre se trouvent les dossiers puis, enfin, un seul fichier. La taille et la couleur de chaque tranche représentent respectivement le nombre de déclarations et la couverture.

Ultralytics Image Codecov

FAQ

Qu'est-ce que l'intégration continue (CI) dans Ultralytics?

L'intégration continue (CI) sur Ultralytics implique d'intégrer et de tester automatiquement les modifications du code pour garantir des normes de haute qualité. Notre configuration CI comprend l'exécution de tests unitaires, de vérifications de linting et de tests complets. En outre, nous effectuons un déploiement Docker, des vérifications de liens brisés, une analyse CodeQL pour les vulnérabilités de sécurité et une publication PyPI pour emballer et distribuer nos logiciels.

Ultralytics utilise une action CI spécifique pour vérifier les liens brisés dans nos fichiers markdown et HTML. Cela permet de maintenir l'intégrité de notre documentation en analysant et en identifiant les liens morts ou cassés, ce qui garantit que les utilisateurs ont toujours accès à des ressources précises et vivantes.

Pourquoi l'analyse CodeQL est-elle importante pour Ultralytics' codebase ?

L'analyse CodeQL est cruciale pour Ultralytics car elle effectue une analyse sémantique du code pour trouver les failles de sécurité potentielles et maintenir des normes de haute qualité. Avec CodeQL, nous pouvons identifier et atténuer de manière proactive les risques dans notre code, ce qui nous aide à fournir des solutions logicielles robustes et sécurisées.

Comment Ultralytics utilise-t-il Docker pour le déploiement ?

Ultralytics emploie Docker pour valider le déploiement de nos projets par le biais d'une action CI dédiée. Ce processus garantit que notre Dockerfile et les scripts associés fonctionnent correctement, ce qui permet d'obtenir des environnements de déploiement cohérents et reproductibles, ce qui est essentiel pour des solutions d'IA évolutives et fiables.

Quel est le rôle de la publication PyPI automatisée sur Ultralytics?

La publication PyPI automatisée permet de s'assurer que nos projets peuvent être empaquetés et publiés sans erreur. Cette étape est essentielle pour distribuer les paquets Ultralytics'Python , permettant aux utilisateurs d'installer et d'utiliser facilement nos outils via l'index des paquets Python (PyPI).

Comment Ultralytics mesure-t-il la couverture du code et pourquoi est-ce important ?

Ultralytics mesure la couverture du code en s'intégrant à Codecov, ce qui permet de savoir quelle partie de la base de code est exécutée pendant les tests. Une couverture de code élevée peut indiquer un code bien testé, aidant à découvrir des zones non testées qui pourraient être sujettes à des bogues. Les mesures détaillées de la couverture du code peuvent être explorées par le biais de badges affichés sur nos principaux dépôts ou directement sur Codecov.



Créé le 2023-11-12, Mis à jour le 2024-07-04
Auteurs : glenn-jocher (8), Burhan-Q (1)

Commentaires