Bazel Operations

From NovaOrdis Knowledge Base
Jump to navigation Jump to search

External

Internal

Commands

build

bazel build //...

clean

fetch

info

bazel info

run

Runs the specified target. It inherits all options form build.

bazel run --script_path=/Users/ovidiu/bin/something //a/something

Runs the specified target.

--script-path

Write a shell script that invokes the target. In this way, the target is not run from bazel - the bazel lock is released and the executable is connected to the terminal's stdin.

version

query

bazel query <options> <query-expression>

Executes a query language expression over a specified subgraph of the build dependency graph.

Find All Targets

bazel query '//:*'

Find all Dependencies of a Dependency Graph Node

bazel query 'deps(//path/to/package:target)'

Example:

bazel query 'deps(//my_package:my_executable)'
bazel query 'deps(//:main)'

To build the graphic dependency graph:

bazel query 'deps(//my_package:my_executable)' --output graph > graph.in
dot -Tpng < graph.in > graph.png

Find a Dependency Path between a Target and a Dependency

bazel query 'somepath(//path/to/package:target, //dependency)'
bazel query 'somepath(//my_package:my_executable, //tools/somepackage/somelib)'

Scenarios

Clean Cache

bazel run @cached_local_xcode//:clear_cache; bazel clean --expunge; bazel shutdown; go clean -cache