Introdução ao Bazel

Reportar um problema Ver a fonte Nightly · 8.4 · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

O Bazel é uma ferramenta de teste e compilação de código aberto semelhante ao Make, Maven e Gradle. Ele usa uma linguagem de build de alto nível e legível. O Bazel é compatível com projetos em vários idiomas e cria saídas para várias plataformas. O Bazel oferece suporte a bases de código grandes em vários repositórios e a um grande número de usuários.

Vantagens

O Bazel oferece as seguintes vantagens:

  • Linguagem de programação de alto nível. O Bazel usa uma linguagem abstrata e legível para descrever as propriedades de build do seu projeto em um alto nível semântico. Ao contrário de outras ferramentas, o Bazel opera com os conceitos de bibliotecas, binários, scripts e conjuntos de dados, protegendo você da complexidade de escrever chamadas individuais para ferramentas como compiladores e linkers.

  • O Bazel é rápido e confiável. O Bazel armazena em cache todo o trabalho feito anteriormente e rastreia mudanças no conteúdo do arquivo e nos comandos de build. Assim, o Bazel sabe quando algo precisa ser recriado e recria apenas isso. Para acelerar ainda mais os builds, configure o projeto para criar de forma altamente paralela e incremental.

  • O Bazel é multiplataforma. O Bazel é executado no Linux, macOS e Windows. O Bazel pode criar binários e pacotes implantáveis para várias plataformas, incluindo computadores, servidores e dispositivos móveis, no mesmo projeto.

  • O Bazel é escalonável. 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 na casa das dezenas de milhares.

  • O Bazel é extensível. Há suporte para muitas linguagens, e você pode estender o Bazel para oferecer suporte a qualquer outra linguagem ou framework.

Como usar o Bazel

Normalmente, para criar ou testar um projeto com o Bazel, você faz o seguinte:

  1. Configure o Bazel. Faça o download e instale o Bazel.

  2. 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 saídas de build.

  3. Escreva um arquivo BUILD, que informa ao Bazel o que e como criar.

    Você escreve o arquivo BUILD declarando 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, da regra de build que o Bazel vai usar para criar e das opções que configuram a regra de build.

    Uma regra de build especifica as ferramentas que o Bazel vai usar, como compiladores e linkers, e as configurações deles. O Bazel é enviado com várias regras de build que abrangem os tipos de artefatos mais comuns nos idiomas compatíveis em plataformas compatíveis.

  4. Execute o Bazel na linha de comando. O Bazel 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 seu código.

Processo de build do Bazel

Ao executar um build ou um teste, o Bazel faz o seguinte:

  1. Carrega os arquivos BUILD relevantes para a meta.

  2. Analisa as entradas e as dependências, aplica as regras de build especificadas e produz um gráfico de ação.

  3. Executa 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 em cache e apenas reconstruir ou testar novamente o que foi alterado. Para reforçar ainda mais a correção, configure o Bazel para executar builds e testes hermeticamente por sandboxing, minimizando o viés e maximizando a reprodutibilidade.

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 realizar. Com esse gráfico, o Bazel pode rastrear mudanças no conteúdo dos arquivos e nas ações, como comandos de build ou teste, e saber qual trabalho de build foi feito anteriormente. O gráfico também permite rastrear dependências no código com facilidade.

Tutoriais para começar

Para começar a usar o Bazel, consulte Introdução ou acesse diretamente os tutoriais do Bazel: