Saltar al contenido

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 YOLOv3 CI Publicar im谩genes Docker Comprueba los enlaces rotos CodeQL
yolov5 YOLOv5 CI Publicar im谩genes Docker Comprueba los enlaces rotos CodeQL
ultralytics ultralytics CI Publicar im谩genes Docker Comprueba los enlaces rotos CodeQL Publicar en PyPI y desplegar documentos
cubo HUB CI Comprueba los enlaces rotos
docs Comprueba los enlaces rotosComprobar dominios p谩ginas-construir-despliegue

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 codecov

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.

Ultralytics Codecov Imagen

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.

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.



Creado 2023-11-12, Actualizado 2024-07-04
Autores: glenn-jocher (8), Burhan-Q (1)

Comentarios