Explore the Bazel documentation to find tutorials and guides for users of all levels.

Building with Bazel

Work with the foundational elements of Bazel to create a powerful build system.
Learn common commands in Bazel, including how to get contextual help.
Define your build products and dependencies with `BUILD` files.
Help automated tools to understand, edit, and generate `BUILD` files.
Discover options for configuring various Bazel commands.
Use Bazel's query, aquery, and cquery languages to trace dependencies in your code.
Increase the health and efficiency of your builds by following Bazel's best practices.

Extending Bazel

Increase Bazel's capablities by extending the BUILD language with rules and macros.
Learn the basics of using macros and rules.
Survey the recommended, native, and non-native Bazel rules.
Learn how to use Starlark, the language used in Bazel.
Use rules to implement a series of actions for Blaze to perform.
Learn how to write custom rules for your builds.
Make tools to complete simple tasks in your build.
Test your Starlark code in Bazel.
Share your rules with the Bazel community.

Distributed Builds

Work with distributed builds to avoid unnecessary downloads while increasing the power of your build.
Distribute build and test actions across multiple machines.
Share build outputs with a team of developers or continuous integration system.
Increase execution efficiency by sending multiple requests to a long-running process.
Allow third-party programs to gain insight into a Bazel invocation with BEP.