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 | |||||
yolov5 | |||||
ultralytics | |||||
hub-sdk | |||||
plaque tournante | |||||
mkdocs | |||||
thop | |||||
actions | |||||
documents | |||||
manuel |
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 |
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.
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.
Comment Ultralytics vérifie-t-il les liens brisés dans la documentation et le code ?
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.