Introdução ao Bazel

Informar um problema Ver a fonte Nightly · 8.0 · 7.5 · 7.4 · 7.3 · 7.2

O Bazel é uma ferramenta de teste e criação de código aberto semelhante ao Make, Maven e Gradle. Ele usa uma linguagem de build de alto nível legível por humanos. O Bazel oferece suporte a 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 build de alto nível. O Bazel usa uma linguagem abstrata e legível por humanos para descrever as propriedades de build do projeto em um nível semântico alto. 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 monitora mudanças no conteúdo do arquivo e nos comandos de build. Dessa forma, o Bazel sabe quando algo precisa ser recriado e recria apenas isso. Para acelerar ainda mais os builds, configure seu projeto para criar de forma incremental e altamente paralela.

  • O Bazel é multiplataforma. O Bazel é executado no Linux, macOS e Windows. O Bazel pode criar binários e pacotes de implantação 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 de dezenas de milhares.

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

Como usar o Bazel

Para criar ou testar um projeto com o Bazel, você geralmente faz o seguinte:

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

  2. Configure um espaço de trabalho de projeto, que é um diretório em que o Bazel procura entradas de build e arquivos BUILD e onde armazena saídas de build.

  3. Escrever um arquivo BUILD, que informa ao Bazel o que construir e como fazer isso.

    Você escreve seu 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 criá-lo e das opções que configuram a regra de build.

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

  4. Execute o Bazel na linha de comando. O Bazel coloca suas saídas no espaço de trabalho.

Além de criar, você também pode usar o Bazel para executar testes e consultar o build para rastrear dependências no 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 o destino.

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

  3. Executa as ações de build nas entradas até que as saídas finais do build sejam produzidas.

Como todo o trabalho de build anterior é armazenado em cache, o Bazel pode identificar e reutilizar artefatos em cache e apenas recriar ou testar novamente o que mudou. Para aplicar ainda mais correção, configure o Bazel para executar builds e testes hermeticamente usando sandbox, minimizando a distorção e maximizando a reprodutibilidade.

Gráfico de ação

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. Graças a esse gráfico, o Bazel pode rastrear mudanças no conteúdo do arquivo e em 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 facilmente no código.

Tutoriais de primeiros passos

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