Passer au contenu

Intégration continue (CI)

L'intégration continue (CI) est un aspect essentiel du développement logiciel qui implique l'intégration des modifications et leur test automatique. La CI 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. Chez Ultralytics, nous utilisons divers tests CI pour garantir la qualité et l'intégrité de notre code.

Actions CI

Voici une brève description de nos actions CI :

  • CI : Il s'agit de notre test CI principal qui consiste à exécuter des tests unitaires, des vérifications de linting et parfois des 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, aidant à trouver les vulnérabilités de sécurité potentielles et à 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 CI

Vous trouverez ci-dessous le tableau indiquant l'état de ces tests CI pour nos principaux référentiels :

Référentiel CI Déploiement Docker Liens brisés CodeQL Publication sur PyPI et de la documentation
yolov3 YOLOv3 CI Publier des images Docker Vérifier les liens brisés CodeQL
yolov5 YOLOv5 CI Publier des images Docker Vérifier les liens brisés CodeQL
ultralytics ultralytics CI Publier des images Docker Vérifier les liens brisés CodeQL Publier sur PyPI et déployer la documentation Builds Conda
yolo-ios-app CI de l'application iOS CodeQL Publier l'application iOS
yolo-flutter-app CI de l'application Flutter CodeQL Publication sur pub.dev
hub HUB CI Vérifier les liens brisés
hub-sdk HUB-SDK CI Vérifier les liens brisés CodeQL Publier sur PyPI
thop Actions Ultralytics CodeQL Publier sur PyPI
actions Actions Ultralytics CodeQL Publier sur PyPI
mkdocs Actions Ultralytics CodeQL Publier sur PyPI
docs Actions Ultralytics Vérifier les liens brisésVérifier les domaines pages-build-deployment
manuel Actions Ultralytics Vérifier les liens brisés pages-build-deployment

Chaque badge indique l'état de la dernière exécution du test CI correspondant sur le main branche du référentiel respectif. Si un test échoue, le badge affichera un statut « en échec », et s'il réussit, il affichera un statut « réussi ».

Si vous remarquez qu'un test échoue, ce serait d'une grande aide si vous pouviez le signaler via un problème GitHub dans le référentiel respectif.

N'oubliez pas qu'un test CI réussi ne signifie pas que tout est parfait. Il est toujours recommandé de revoir manuellement le code avant le déploiement ou la fusion des modifications.

Couverture du code

La couverture du code est une métrique qui représente le pourcentage de votre base de code qui est exécuté lorsque vos tests sont exécutés. Elle donne un aperçu de la façon dont vos tests exercent votre code et peut être cruciale pour identifier les parties non testées de votre 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

Chez Ultralytics, nous avons intégré nos référentiels avec codecov.io, une plateforme en ligne populaire pour mesurer et visualiser la couverture du code. Codecov fournit des informations détaillées, des comparaisons de couverture entre les commits et des superpositions visuelles directement sur votre code, indiquant les lignes couvertes.

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

Résultats de la couverture

Pour avoir un aperçu rapide de l’état de la couverture du code du ultralytics package python, nous avons inclus un badge et un visuel sunburst du ultralytics résultats de la couverture. Ces images montrent le pourcentage de code couvert par nos tests, offrant une métrique rapide de nos efforts de test. Pour plus de détails, veuillez consulter https://codecov.io/github/ultralytics/ultralytics.

Référentiel Couverture du code
ultralytics codecov

Dans le graphique en rayons de soleil ci-dessous, le cercle le plus intérieur est 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 d'instructions et la couverture.

Image Codecov Ultralytics

FAQ

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

L'intégration continue (CI) chez Ultralytics implique l'intégration et le test automatiques des modifications de code afin de garantir des normes de qualité élevées. Notre configuration de CI comprend l'exécution de tests unitaires, de vérifications de linting et de tests complets. De plus, 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 empaqueter et distribuer notre logiciel.

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 scannant et en identifiant les liens morts ou brisés, garantissant ainsi que les utilisateurs ont toujours accès à des ressources précises et actives.

Pourquoi l'analyse CodeQL est-elle importante pour la base de code d'Ultralytics ?

L'analyse CodeQL est essentielle pour Ultralytics car elle effectue une analyse sémantique du code pour trouver les vulnérabilités potentielles en matière de sécurité et maintenir des normes de haute qualité. Grâce à 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-elle Docker pour le déploiement ?

Ultralytics utilise Docker pour valider le déploiement de nos projets via une action CI dédiée. Ce processus garantit que notre Dockerfile et les scripts associés fonctionnent correctement, permettant des environnements de déploiement cohérents et reproductibles, essentiels pour des solutions d'IA évolutives et fiables.

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

La publication automatisée sur PyPI garantit que nos projets peuvent être empaquetés et publiés sans erreurs. Cette étape est essentielle pour distribuer les paquets Python d'Ultralytics, permettant aux utilisateurs d'installer et d'utiliser facilement nos outils via le Python Package Index (PyPI).

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

Ultralytics mesure la couverture du code en s'intégrant à Codecov, fournissant ainsi des informations sur la quantité de code exécutée pendant les tests. Une couverture de code élevée peut indiquer un code bien testé, aidant à découvrir les zones non testées qui pourraient être sujettes à des bogues. Des métriques détaillées de la couverture du code peuvent être explorées via des badges affichés sur nos principaux référentiels ou directement sur Codecov.



📅 Créé il y a 1 an ✏️ Mis à jour il y a 17 jours

Commentaires