O Bazel é uma ferramenta de build e teste de código aberto semelhante ao Make, Maven e Gradle. Ele usa uma linguagem de build legível e de alto nível. O Bazel oferece suporte a projetos em várias linguagens e cria saídas para várias plataformas. Ele é compatível com grandes bases de código em vários repositórios e um grande número de usuários.
Vantagens
Ele oferece as seguintes vantagens:
Linguagem de build de alto nível. O Bazel usa uma linguagem abstrata legível para descrever as propriedades de build do projeto em um alto nível semântico. Ao contrário de outras ferramentas, o Bazel opera com base nos conceitos de bibliotecas, binários, scripts e conjuntos de dados, protegendo você da complexidade de gravar chamadas individuais para ferramentas como compiladores e vinculadores.
O Bazel é rápido e confiável. Ele armazena em cache todo o trabalho realizado anteriormente e rastreia as alterações no conteúdo do arquivo e nos comandos de compilação. Dessa forma, ele sabe quando algo precisa ser recriado e só recria isso. Para acelerar ainda mais as versões, configure seu projeto para criar de maneira altamente paralela e incremental.
O Bazel é multiplataforma. O Bazel pode ser executado no Linux, no macOS e no Windows. Ele pode criar binários e pacotes implantáveis para várias plataformas, incluindo computadores, servidores e dispositivos móveis, a partir do mesmo projeto.
O Bazel é escalonado. O Bazel mantém a agilidade ao processar builds com mais de 100 mil arquivos de origem. Ele funciona com vários repositórios e bases de usuários em dezenas de milhares.
O Bazel é extensível. Muitas linguagens são aceitas, e você pode estender o Bazel para que seja compatível com qualquer outra linguagem ou framework.
Como usar o Bazel
Para criar ou testar um projeto com o Bazel, normalmente você faz o seguinte:
Configure o Bazel. Faça o download e instale o Bazel.
Configure um espaço de trabalho do projeto, que é um diretório em que o Bazel procura entradas de build e arquivos
BUILD
e armazena as saídas de build.Escreva um arquivo
BUILD
, que informa ao Bazel o que e como fazer isso.Para programar o arquivo
BUILD
, declare destinos de build usando Starlark, uma linguagem específica do domínio. Confira um exemplo aqui.Um destino de build especifica um conjunto de artefatos de entrada que o Bazel vai criar, além das dependências, a regra de build que o Bazel vai usar para criá-lo e as opções que configuram a regra de build.
Uma regra de compilação especifica as ferramentas de compilação que o Bazel usará, como compiladores e vinculadores, e as configurações deles. Ele é fornecido com várias regras de compilação que abrangem os tipos de artefato mais comuns nas linguagens com suporte nas plataformas com suporte.
Execute o Bazel na linha de comando. Ele coloca as saídas no espaço de trabalho.
Além de criar, também é possível usar o Bazel para executar testes e consultar o build para rastrear dependências no código.
Processo de compilação do Bazel
Ao executar uma compilação ou um teste, o Bazel faz o seguinte:
Carrega os arquivos
BUILD
relevantes para o destino.Analisa as entradas e as dependências delas, aplica as regras de build especificadas e produz um gráfico de ações.
Execute as ações de build nas entradas até que as saídas finais sejam produzidas.
Como todo o trabalho de build anterior é armazenado em cache, o Bazel pode identificar e reutilizar artefatos armazenados em cache e apenas recriar ou testar novamente o que mudou. Para garantir a correção, configure o Bazel para executar builds e testes hermeticamente usando o sandbox, minimizando a distorção e maximizando a reprodutibilidade (links em inglês).
Gráfico de ações
O gráfico de ações representa os artefatos de build, as relações entre eles e as ações de build que o Bazel vai executar. Graças a esse gráfico, o Bazel pode rastrear mudanças no conteúdo do arquivo e em ações, como comandos de compilação ou teste, e saber qual trabalho de compilação foi feito anteriormente. O gráfico também permite rastrear facilmente as dependências no código.
Tutoriais de primeiros passos
Para começar a usar o Bazel, consulte Primeiros passos ou pule diretamente para os tutoriais do Bazel: