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 integraci贸n continua 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 integraci贸n continua 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 principal prueba 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 Docker: Esta prueba comprueba el despliegue del proyecto utilizando Docker para asegurar que el Dockerfile y los scripts relacionados funcionan correctamente.
- Enlaces rotos: 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.
- PyPI Publishing: Esta prueba comprueba si el proyecto puede ser empaquetado y publicado en PyPi sin errores.
Resultados de la IC
A continuaci贸n se muestra la tabla con el estado de estas pruebas CI para nuestros principales repositorios:
Repositorio | CI | Despliegue de Docker | Enlaces rotos | CodeQL | Publicaci贸n de PyPI y Docs |
---|---|---|---|---|---|
yolov3 | |||||
yolov5 | |||||
ultralytics | |||||
hub-sdk | |||||
cubo | |||||
mkdocs | |||||
thop | |||||
acciones | |||||
docs | |||||
manual |
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 pasa, 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.
Recuerde que una prueba CI satisfactoria no significa que todo sea perfecto. Siempre es recomendable revisar manualmente el c贸digo antes de desplegar o fusionar los cambios.
Cobertura del c贸digo
La cobertura del c贸digo es una m茅trica que representa el porcentaje de su c贸digo base que se ejecuta cuando se ejecutan las pruebas. Proporciona una idea de lo bien que las pruebas ejercitan el c贸digo y puede ser crucial para identificar las partes no probadas de la aplicaci贸n. Un alto porcentaje de cobertura del c贸digo se asocia a menudo con una menor probabilidad de errores. Sin embargo, es esencial entender 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 el c贸digo, indicando las l铆neas 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 de la aplicaci贸n ultralytics
python paquete, hemos incluido una insignia y un visual de la ultralytics
resultados de cobertura. Estas im谩genes muestran el porcentaje de c贸digo cubierto por nuestras pruebas, ofreciendo una m茅trica de un vistazo de nuestros esfuerzos de comprobaci贸n. Para m谩s informaci贸n, consulte https://codecov.io/github/ultralytics/ultralytics.
Repositorio | Cobertura del c贸digo |
---|---|
ultralytics |
En el siguiente gr谩fico, el c铆rculo m谩s interior representa todo el proyecto, alej谩ndose del centro se encuentran las carpetas y, por 煤ltimo, 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 en el 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 mediante el escaneo y la identificaci贸n de 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 CodeQL 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, lo que nos ayuda 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 a trav茅s de una acci贸n CI dedicada. Este proceso garantiza que nuestro Dockerfile y los scripts asociados funcionan correctamente, lo que permite 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 alta cobertura de c贸digo puede indicar que el c贸digo est谩 bien probado, ayudando a descubrir 谩reas no probadas que podr铆an ser propensas a errores. Las m茅tricas detalladas de cobertura de c贸digo se pueden explorar a trav茅s de insignias que se muestran en nuestros repositorios principales o directamente en Codecov.