Integración continua (IC)
La Integración Continua (IC) es un aspecto esencial del desarrollo de software que consiste en integrar los cambios y probarlos automáticamente. La IC nos permite mantener un código de alta calidad detectando los problemas en una fase temprana y frecuente del proceso de desarrollo. En Ultralytics utilizamos varias pruebas de IC para garantizar la calidad e integridad de nuestro código.
Acciones CI
He aquí una breve descripción de nuestras acciones de IC:
- CI: Esta es nuestra prueba principal de CI, que implica la ejecución de pruebas unitarias, comprobaciones de linting y, a veces, pruebas más exhaustivas en función del repositorio.
- Despliegue en Docker: Esta prueba comprueba el despliegue del proyecto mediante Docker para garantizar que el Dockerfile y los scripts relacionados funcionan correctamente.
- Enlacesrotos: Esta prueba escanea el código base en busca de enlaces rotos o muertos en nuestros archivos markdown o HTML.
- CodeQL: CodeQL es una herramienta de GitHub que realiza un análisis semántico de nuestro código, ayudando a encontrar posibles vulnerabilidades de seguridad y a mantener un código de alta calidad.
- Publicación en PyPI: Esta prueba comprueba si el proyecto se puede empaquetar y publicar en PyPi sin errores.
Resultados de la IC
A continuación se muestra la tabla con el estado de estas pruebas CI para nuestros repositorios principales:
Repositorio | CI | Despliegue Docker | Enlaces rotos | CodeQL | Publicación de PyPI y Docs |
---|---|---|---|---|---|
yolov3 | |||||
yolov5 | |||||
ultralytics | |||||
hub-sdk | |||||
cubo | |||||
mkdocs | |||||
thop | |||||
actions | |||||
docs | |||||
handbook |
Cada insignia muestra el estado de la última ejecución de la prueba CI correspondiente en el main
del repositorio correspondiente. Si una prueba falla, la insignia mostrará el estado "fallando", y si la supera, mostrará el estado "superando".
Si observas que una prueba falla, sería de gran ayuda que lo comunicaras a través de una incidencia de GitHub en el repositorio correspondiente.
Recuerda que una prueba CI satisfactoria no significa que todo sea perfecto. Siempre es recomendable revisar manualmente el código antes de desplegarlo o fusionar los cambios.
Cobertura del código
La cobertura del código es una métrica que representa el porcentaje de tu código base que se ejecuta cuando se realizan tus pruebas. Proporciona información sobre lo bien que tus pruebas ejercitan tu código y puede ser crucial para identificar partes de tu aplicación que no han sido probadas. Un alto porcentaje de cobertura del código suele asociarse a una menor probabilidad de errores. Sin embargo, es esencial comprender que la cobertura del código no garantiza la ausencia de defectos. Simplemente indica qué partes del código han sido ejecutadas por las pruebas.
Integración con codecov.io
En Ultralytics, hemos integrado nuestros repositorios con codecov.io, una popular plataforma en línea para medir y visualizar la cobertura del código. Codecov proporciona información detallada, comparaciones de cobertura entre commits, y superposiciones visuales directamente sobre tu código, indicando qué líneas estaban cubiertas.
Al integrarnos con Codecov, pretendemos mantener y mejorar la calidad de nuestro código centrándonos en las áreas que pueden ser propensas a errores o que necesitan más pruebas.
Resultados de la cobertura
Para echar un vistazo rápido al estado de la cobertura de código del ultralytics
python paquete, hemos incluido una insignia y un sol visual del ultralytics
resultados de cobertura. Estas imágenes muestran el porcentaje de código cubierto por nuestras pruebas, ofreciendo una métrica a simple vista de nuestros esfuerzos de comprobación. Para más información, consulta https://codecov.io/github/ultralytics/ultralytics.
Repositorio | Cobertura del código |
---|---|
ultralytics |
En el gráfico del sol de abajo, el círculo más interior es todo el proyecto, alejándose del centro están las carpetas y, finalmente, un único archivo. El tamaño y el color de cada trozo representan el número de declaraciones y la cobertura, respectivamente.
PREGUNTAS FRECUENTES
¿Qué es la integración continua (IC) en Ultralytics?
La integración continua (IC) en Ultralytics implica integrar y probar automáticamente los cambios de código para garantizar unos estándares de alta calidad. Nuestra configuración CI incluye la ejecución de pruebas unitarias, comprobaciones de linting y pruebas exhaustivas. Además, realizamos despliegues en Docker, comprobaciones de enlaces rotos, análisis CodeQL de vulnerabilidades de seguridad y publicación en PyPI para empaquetar y distribuir nuestro software.
¿Cómo comprueba Ultralytics si hay enlaces rotos en la documentación y el código?
Ultralytics utiliza una acción específica de CI para comprobar si hay enlaces rotos en nuestros archivos markdown y HTML. Esto ayuda a mantener la integridad de nuestra documentación escaneando e identificando enlaces muertos o rotos, asegurando que los usuarios siempre tengan acceso a recursos precisos y vivos.
¿Por qué es importante el análisis CodeQL para Ultralytics' codebase?
El análisis Code QL es crucial para Ultralytics , ya que realiza un análisis semántico del código para encontrar posibles vulnerabilidades de seguridad y mantener unos estándares de alta calidad. Con CodeQL, podemos identificar y mitigar proactivamente los riesgos en nuestro código, ayudándonos a ofrecer soluciones de software robustas y seguras.
¿Cómo utiliza Ultralytics Docker para el despliegue?
Ultralytics emplea Docker para validar el despliegue de nuestros proyectos mediante una acción CI dedicada. Este proceso garantiza que nuestro Dockerfile y los scripts asociados funcionen correctamente, permitiendo entornos de despliegue coherentes y reproducibles, que son fundamentales para soluciones de IA escalables y fiables.
¿Cuál es el papel de la publicación automatizada en PyPI en Ultralytics?
La publicación automatizada en PyPI garantiza que nuestros proyectos puedan empaquetarse y publicarse sin errores. Este paso es esencial para distribuir los paquetes Ultralytics' Python , permitiendo a los usuarios instalar y utilizar fácilmente nuestras herramientas a través del índice de paquetes Python (PyPI).
¿Cómo mide Ultralytics la cobertura del código y por qué es importante?
Ultralytics mide la cobertura del código mediante la integración con Codecov, proporcionando información sobre qué parte del código base se ejecuta durante las pruebas. Una cobertura de código elevada puede indicar un código bien probado, ayudando a descubrir áreas no probadas que podrían ser propensas a errores. Las métricas detalladas de la cobertura del código se pueden explorar mediante insignias que se muestran en nuestros repositorios principales o directamente en Codecov.