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 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 Python de Ultralytics, permitiendo a los usuarios instalar y utilizar fácilmente nuestras herramientas a través del Python Package Index (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.