can be tested a tu pull request.
Los resultados de las comprobaciones aparecen en la página del pull request de GitHub, como se describe en la documentación sobre comprobaciones de GitHub.
Si una comprobación falla, puede que tengas que corregirla.
Esta página ofrece una descripción general de las comprobaciones con las que te puedes encontrar y de lo que puedes hacer para corregirlas.
Si parece que el fallo de la comprobación no está relacionado con tus cambios, puede tratarse de un fallo transitorio o de un problema de infraestructura.
Haz push de un commit vacío al pull request para reiniciar las comprobaciones de CI:
Fusionar con master
Cannot fetch mergecommit.
Para corregir esta comprobación, resuelve el conflicto como se describe en la documentación de GitHub, o fusiona la rama master en la rama de tu pull request usando git.
Comprobación de la documentación
ERROR y WARNING.
Comprobación de la descripción
Imagen de Docker
Pruebas oficiales de la biblioteca de Docker
clickhouse/clickhouse-server funcione correctamente.
Para añadir nuevas pruebas, crea un directorio ci/jobs/scripts/docker_server/tests/$test_name y el script run.sh allí.
Puedes encontrar más detalles sobre las pruebas en la documentación de los scripts de jobs de CI.
Comprobación de marcador
Comprobación de estilo
cpp
ci/jobs/scripts/check_style/check_cpp.sh (que también puede ejecutarse localmente).
Si falla, corrige los problemas de estilo según la guía de estilo de código.
codespell, aspell
mypy
Ejecutar localmente el job de comprobación de estilo
clickhouse/style-test y ejecutan el job en un entorno contenerizado.
No se requieren dependencias aparte de Python 3 y Docker.
Ejecución de pruebas sin estado
Requisitos previos
- Python 3 (solo la biblioteca estándar)
- Docker
Ejecutar un job de CI localmente
- Pon siempre entre comillas el nombre del job exactamente como aparece en el informe de CI (puede contener espacios y comas), p. ej.:
"Stateless tests (amd_debug, parallel)". Esto aplica la misma configuración de ClickHouse y ejecuta las mismas pruebas que en CI. - La arquitectura y el tipo de compilación del nombre del job (p. ej.,
amd_debug) son etiquetas específicas de CI. Al ejecutarlo localmente, no tienen ningún efecto: el job usará el binario que proporciones, en la arquitectura en la que lo estés ejecutando. El nombre del job solo determina la configuración de ClickHouse y el conjunto de pruebas (salvo que se sobrescriba con--test). - En CI, las pruebas funcionales se dividen en lotes para aprovechar mejor los recursos. Por ejemplo,
"Stateless tests (amd_debug, parallel)"y"Stateless tests (amd_debug, sequential)"cubren conjuntamente todo el alcance: las pruebas seguras para ejecutarse en paralelo se ejecutan de forma concurrente, y el resto se ejecuta de forma secuencial. Esta división reduce el tiempo total de CI al maximizar el paralelismo siempre que sea posible. Para reproducir localmente todo el alcance de las pruebas, ejecuta ambos lotes. - También hay un job de CI
"Fast test"que ejecuta un conjunto limitado de pruebas funcionales para verificar la funcionalidad básica de ClickHouse: usa una compilación sin todos los módulos opcionales y es la forma más rápida de detectar regresiones. Puedes ejecutarlo localmente de la misma manera. Coloca tu binario de ClickHouse en una de las rutas de búsqueda predeterminadas (./ci/tmp/clickhouse,./build/programs/clickhouse, o./clickhouse); de lo contrario, el job intentará compilar ClickHouse primero:
Ejecutar pruebas específicas dentro de un job de CI
--test, el job prepara la misma configuración de ClickHouse que se usa en CI, pero ejecuta solo las pruebas seleccionadas:
- Puedes pasar varios nombres de pruebas:
- Consejo: Si te sirve cualquier configuración de ClickHouse y solo necesitas ejecutar pruebas específicas, usa el alias
functionalen lugar del nombre completo del job:
Opciones adicionales de personalización
--path PATH— ruta personalizada al binario de ClickHouse. De forma predeterminada, el ejecutor busca en este orden:./ci/tmp/clickhouse,./build/programs/clickhouse,./clickhouse.--count N— repite cada prueba N veces.--workers N— reemplaza el cálculo automático del número de workers en paralelo en función de la capacidad de la máquina.
Comprobación de compilación
Ejecutar compilaciones en local
Jobs de compilación disponibles
Build (amd_debug)- Compilación de depuración con símbolosBuild (amd_release)- Compilación optimizada de releaseBuild (amd_asan)- Compilación con Address SanitizerBuild (amd_tsan)- Compilación con Thread SanitizerBuild (amd_msan)- Compilación con Memory SanitizerBuild (amd_ubsan)- Compilación con Undefined Behavior SanitizerBuild (amd_binary)- Compilación rápida de release sin Thin LTOBuild (amd_compat)- Compilación de compatibilidad para sistemas más antiguosBuild (amd_musl)- Compilación con musl libcBuild (amd_darwin)- Compilación para macOSBuild (amd_freebsd)- Compilación para FreeBSD
Build (arm_release)- Compilación optimizada de release para ARM64Build (arm_asan)- Compilación con Address Sanitizer para ARM64Build (arm_coverage)- Compilación para ARM64 con instrumentación de coberturaBuild (arm_binary)- Compilación rápida de release para ARM64 sin Thin LTOBuild (arm_darwin)- Compilación para macOS ARM64Build (arm_v80compat)- Compilación de compatibilidad para ARMv8.0
Build (ppc64le)- PowerPC de 64 bits Little EndianBuild (riscv64)- RISC-V de 64 bitsBuild (s390x)- IBM System/390 de 64 bitsBuild (loongarch64)- LoongArch de 64 bits
<repo_root>/ci/tmp/build.
Nota: En las compilaciones que no pertenecen a la categoría “Otras arquitecturas” (que usan compilación cruzada), la arquitectura de la máquina local debe coincidir con el tipo de compilación para generar la compilación solicitada por BUILD_JOB_NAME.
Ejemplo
Pruebas funcionales sin estado
Pruebas de integración
Comprobación de validación de correcciones de errores
Prueba de estrés
- Primero, corrige todos los demás fallos de las pruebas;
- Consulta el informe para encontrar los logs del servidor y revísalos para identificar posibles causas del error.
Comprobación de compatibilidad
clickhouse funcione en distribuciones con versiones antiguas de libc.
Si falla, pide ayuda a un mantenedor.