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'intégration continue nous permet de maintenir un code de haute qualité en détectant les problèmes dès le début du 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 des actions de l'IC :

  • CI: Il s'agit de notre test de 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 fichier Docker et les scripts associĂ©s fonctionnent correctement.
  • Liens brisĂ©s: Ce test analyse la base de code pour dĂ©tecter les 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 nous aide Ă  trouver des failles 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 de l'IC

Voici le tableau montrant l'état de ces tests CI pour nos principaux dépôts :

Référentiel CI Déploiement Docker Liens brisés CodeQL PyPI et publication de documents
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 les documents
hub-sdk HUB-SDK CI Vérifier les liens brisés CodeQL Publier sur PyPI
plaque tournante HUB CI Vérifier les liens brisés
mkdocs Ultralytics Actions CodeQL Publier sur PyPI
thop Ultralytics Actions CodeQL Publier sur PyPI
actions Ultralytics Actions CodeQL Publier sur PyPI
documents Ultralytics Actions Vérifier les liens brisésVérifier les domaines pages-build-deployment
manuel Ultralytics Actions 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 serveur main du référentiel concerné. Si un test échoue, le badge affichera l'état "failing", et s'il réussit, il affichera l'état "passing".

Si vous constatez qu'un test échoue, nous vous serions très reconnaissants de nous le signaler par le biais d'un problème GitHub dans le dépôt correspondant.

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 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 votre base de code qui est exécuté lorsque vos tests s'exécutent. Elle donne une idée de la manière 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. Toutefois, 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

Sur Ultralytics, nous avons intégré nos dépôts 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 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 susceptibles de présenter des erreurs ou nécessitant des tests supplémentaires.

RĂ©sultats de la couverture

Pour obtenir 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 des rayons de soleil de l'Union européenne. ultralytics les résultats de la couverture. Ces images montrent le pourcentage de code couvert par nos tests, offrant ainsi un aperçu de nos efforts en matière de tests. Pour plus de détails, voir https://codecov.io/github/ultralytics/ultralytics.

Référentiel 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 Codecov Image

FAQ

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

L'intégration continue (CI) sur Ultralytics consiste à intégrer et à tester automatiquement les modifications apportées au code afin de garantir des normes de haute qualité. Notre configuration d'intégration continue 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 spécifique de l'IC 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 brisés, garantissant ainsi 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 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ûres.

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

Ultralytics utilise Docker pour valider le déploiement de nos projets par le biais d'une action CI dédiée. Ce processus garantit que notre fichier Docker et les scripts associés fonctionnent correctement, ce qui permet d'obtenir 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 PyPI automatisée dans Ultralytics?

La publication PyPI automatisée garantit 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 le Python Package Index (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 via des badges affichés sur nos principaux dépôts ou directement sur Codecov.

📅C réé il y a 1 an ✏️ Mis à jour il y a 15 jours

Commentaires