O Bazel é uma ferramenta de build e teste 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 grandes bases de código 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 seu projeto em um alto nível semântico. Ao contrário de outras ferramentas, o Bazel opera nos 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 acompanha as mudanças no conteúdo do arquivo e nos comandos de build. Dessa forma, o Bazel sabe quando algo precisa ser recriado e só recria isso. Para acelerar ainda mais os builds, você pode configurar seu projeto para criar de maneira 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 em dezenas de milhares.
O Bazel é extensível. Muitos idiomas são compatíveis, e você pode estender o Bazel para oferecer suporte a qualquer outro idioma ou framework.
Como usar o Bazel
Para criar ou testar um projeto com o Bazel, geralmente 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
BUILDe onde ele armazena as saídas de build.Escreva um arquivo
BUILD, que informa ao Bazel o que criar e como criar.Você escreve o arquivo
BUILDdeclarando 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 build especifica as ferramentas de build que o Bazel vai usar, como compiladores e linkers, e as configurações delas. O Bazel é fornecido com várias regras de build que abrangem os tipos de artefatos mais comuns nos idiomas compatíveis em plataformas compatíveis.
Execute o Bazel na linha de comando. O Bazel coloca as 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:
Carrega os arquivos
BUILDrelevantes 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.
Executa as ações de build nas entradas até que as saídas de build 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 foi alterado. Para reforçar ainda mais a correção, você pode configurar o Bazel para executar builds e testes hermeticamente por meio de sandbox, minimizando a distorção e maximizando a capacidade de reprodução.
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 acompanhar as mudanças no conteúdo do arquivo, bem como as mudanças 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: