can be tested ao seu pull request.
Os resultados das verificações são exibidos na página do pull request no GitHub, como descrito na documentação sobre verificações do GitHub.
Se uma verificação falhar, talvez seja necessário corrigi-la.
Esta página apresenta uma visão geral das verificações que você pode encontrar e do que pode fazer para corrigi-las.
Se parecer que a falha na verificação não está relacionada às suas alterações, pode ser uma falha transitória ou um problema de infraestrutura.
Envie um commit vazio para o pull request para reiniciar as verificações de CI:
Mesclar com master
master.
Caso contrário, a verificação falhará com a mensagem Cannot fetch mergecommit.
Para corrigir essa verificação, resolva o conflito conforme descrito na documentação do GitHub ou faça o merge da branch master na branch do seu pull request usando git.
Verificação da documentação
ERROR e WARNING.
Verificação da descrição
Imagem Docker
Testes oficiais da biblioteca do Docker
clickhouse/clickhouse-server funciona corretamente.
Para adicionar novos testes, crie um diretório ci/jobs/scripts/docker_server/tests/$test_name e o script run.sh nele.
Mais detalhes sobre os testes podem ser encontrados na documentação dos scripts de jobs de CI.
Verificação de marcador
Style verificação
cpp
ci/jobs/scripts/check_style/check_cpp.sh (que também pode ser executado localmente).
Se falhar, corrija os problemas de estilo de acordo com o guia de estilo de código.
codespell, aspell
mypy
Executando localmente o job Style Verificação
clickhouse/style-test e executam o job em um ambiente em contêiner.
Não são necessárias dependências além de Python 3 e Docker.
Executando testes sem estado
Pré-requisitos
- Python 3 (apenas a biblioteca padrão)
- Docker
Execute um job de CI localmente
- Sempre coloque o nome do job entre aspas exatamente como ele aparece no relatório de CI (ele pode conter espaços e vírgulas), por exemplo:
"Stateless tests (amd_debug, parallel)". Isso define a mesma configuração do ClickHouse e executa os mesmos testes da CI. - A arquitetura e o tipo de build no nome do job (por exemplo,
amd_debug) são rótulos específicos da CI. Ao executar localmente, eles não têm efeito — o job usará o binário que você fornecer, na arquitetura em que estiver rodando. O nome do job determina apenas a configuração do ClickHouse e o conjunto de testes (a menos que isso seja sobrescrito com--test). - Na CI, os testes funcionais são divididos em lotes para melhor aproveitamento de recursos. Por exemplo,
"Stateless tests (amd_debug, parallel)"e"Stateless tests (amd_debug, sequential)"juntos cobrem todo o escopo: os testes seguros para paralelismo são executados de forma concorrente, e o restante é executado de forma sequencial. Essa divisão reduz o tempo total da CI ao maximizar o paralelismo sempre que possível. Para reproduzir localmente todo o escopo de testes, execute ambos os lotes. - Também existe um job de CI,
"Fast test", que executa um escopo limitado de testes funcionais para verificar a funcionalidade básica do ClickHouse — ele usa uma build sem todos os módulos opcionais e é a forma mais rápida de detectar regressões. Você pode executá-lo localmente da mesma forma. Coloque o binário do ClickHouse em um dos caminhos de busca padrão (./ci/tmp/clickhouse,./build/programs/clickhouseou./clickhouse) — caso contrário, o job tentará compilar o ClickHouse primeiro:
Executar testes específicos em um job de CI
--test, o job prepara um ambiente do ClickHouse idêntico ao usado na CI, mas executa apenas os testes selecionados:
- Você pode informar vários nomes de teste:
- Dica: Se qualquer configuração do ClickHouse servir e você só precisar executar testes específicos, use o alias
functionalem vez do nome completo do job:
Opções adicionais de personalização
--path PATH— caminho personalizado para o binário do ClickHouse. Por padrão, o runner procura nesta ordem:./ci/tmp/clickhouse,./build/programs/clickhouse,./clickhouse.--count N— repete cada teste N vezes.--workers N— substitui o cálculo automático do número de workers paralelos com base na capacidade da máquina.
Verificação de build
Executando builds localmente
Jobs de compilação disponíveis
Build (amd_debug)- Build de depuração com símbolosBuild (amd_release)- Build de release otimizadaBuild (amd_asan)- Build com Address SanitizerBuild (amd_tsan)- Build com Thread SanitizerBuild (amd_msan)- Build com Memory SanitizerBuild (amd_ubsan)- Build com Undefined Behavior SanitizerBuild (amd_binary)- Build de release rápida sem Thin LTOBuild (amd_compat)- Build de compatibilidade para sistemas mais antigosBuild (amd_musl)- Build com musl libcBuild (amd_darwin)- Build para macOSBuild (amd_freebsd)- Build para FreeBSD
Build (arm_release)- Build de release otimizada para ARM64Build (arm_asan)- Build ARM64 com Address SanitizerBuild (arm_coverage)- Build ARM64 com instrumentação de coberturaBuild (arm_binary)- Build de release rápida para ARM64 sem Thin LTOBuild (arm_darwin)- Build ARM64 para macOSBuild (arm_v80compat)- Build de compatibilidade 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.
Observação: Para builds que não estejam na categoria “Outras arquiteturas” (que usam compilação cruzada), a arquitetura da sua máquina local deve corresponder ao tipo de build para gerar a compilação solicitada por BUILD_JOB_NAME.
Exemplo
Testes funcionais sem estado
Testes de integração
Verificação de validação de correção de bug
Teste de estresse
- Corrija primeiro todas as outras falhas de teste;
- Consulte o relatório para localizar os logs do servidor e verifique-os em busca de possíveis causas do erro.
Verificação de compatibilidade
clickhouse roda em distribuições com versões antigas da libc.
Se falhar, peça ajuda a um mantenedor.