O Bazel é rápido, correto e extensível ferramenta de build com testes integrados que oferecem suporte a várias idiomas, repositórios e plataformas em um ecossistema líder do setor.
O Bazel é rápido
O Bazel sabe exatamente de quais arquivos de entrada cada comando de build precisa, evitando trabalho desnecessário, executando novamente apenas quando o conjunto de arquivos de entrada alterados entre cada build. Ela executa comandos de compilação com o máximo de paralelismo possível, seja dentro do mesmo computador ou em nós de compilação remota. Se a estrutura do build permite que ele execute milhares de comandos de compilação ou teste ao mesmo tempo.
Isso é suportado por diversas camadas de armazenamento em cache, na memória, no disco e na farm de criação remota, se disponível. No Google, atingimos sempre taxas de ocorrência em cache ao norte de 99%.
O Bazel está correto
O Bazel garante que seus binários sejam criados somente pelo seu próprio o código-fonte. Ações do Bazel são executadas em sandboxes individuais e faixas dele. cada arquivo de entrada do build, somente e sempre executando novamente o build comandos quando necessário. Isso mantém seus binários atualizados para que o mesmo código-fonte sempre resulta no mesmo binário, bit pouco a pouco.
Diga Goodbyte a invocações intermináveis de make clean
e a busca de bugs fantasmas
que foram de fato resolvidos no código-fonte, mas nunca foram compilados.
O Bazel é extensível.
Aproveite toda a capacidade do Bazel escrevendo suas próprias regras e macros para personalize o Bazel de acordo com suas necessidades específicas em uma ampla variedade de projetos.
As regras do Bazel são escritas em Starlark, nossa em uma linguagem de programação interna que é um subconjunto do Python. Starlark faz gravação de regras acessível à maioria dos desenvolvedores, além de criar regras que podem ser usados em todo o ecossistema.
Teste integrado
Executor de testes integrado do Bazel sabe e executa apenas os testes que precisam ser executados novamente, usando a execução remota (se disponível) para executá-los em paralelo. Detecte flakes antecipadamente usando o controle remoto para executar um teste milhares de vezes rapidamente.
O Bazel fornece recursos (link em inglês) para fazer upload dos resultados de testes para um local, facilitando a comunicação eficiente dos resultados dos testes, seja na CI ou por desenvolvedores individuais.
Compatível com várias linguagens
O Bazel oferece suporte a várias linguagens de programação comuns, incluindo C++, Java, Kotlin, Python, Go e Rust. É possível criar vários binários (por exemplo, back-end, interface da Web e app para dispositivos móveis) na mesma invocação do Bazel sem serem restrito à ferramenta de build idiomática de uma linguagem.
Suporte a vários repositórios
O Bazel pode coletar código-fonte de vários locais: você não precisa fornecer suas dependências (mas você pode!), você pode apontar o Bazel para o local do código-fonte ou dos artefatos pré-criados (por exemplo, um repositório de código aberto ou Maven Central) e cuida do resto.
Suporte a várias plataformas
O Bazel pode criar projetos simultaneamente para várias plataformas, incluindo Linux, macOS, Windows e Android. Ele também oferece recursos de compilação cruzada para criar código para um e executar o build em outra.
Amplo ecossistema
Líderes do setor adoram o Bazel, criando um de desenvolvedores que usam e contribuem com o Bazel. Encontre ferramentas e serviços e documentação, incluindo ofertas de consultoria e de SaaS. o Bazel pode usar. Conheça extensões como o suporte a linguagens de programação em nossos repositórios de software de código aberto.