a tool for expediting bazel build workflows
rebazel can be installed as a standalone binary Darwin and Linux operating systems.
You can download a released binary directly from Github releases.
You can also download a release directly with curl.
$ cd $HOME/bin
$ curl -L "https://github.com/meetup/rebazel/releases/download/v0.1.0/rebazel-$(uname -s)-$(uname -m).tar.gz" \
| tar -xzEnsure $HOME/bin is on your $PATH variable and you should be good to go.
If you are using OSX, it's likely you're using homebrew to manage your packages. You can install rebazel using homebrew with the following command.
$ brew install meetup/tools/rebazelJust type rebazel where you would normally type bazel. That's it.
rebazel will watch the provided target's source and build files for changes and retrigger the action where appropriate.
$ rebazel test --test_filter=com.foo.api.* --test_output=streamed //foo:testThis will run the tests for //foo:test target and watch all of its associated sources and build dependencies.
By default, forwards the command line to the bazel executable on the users PATH. If you which to use an alternate
executable export the REBAZEL_BAZEL_EXEC env variable set to the path of your bazel executable.
By default, rebazel will debounce actions so that they happen no more frequently than 100 milliseconds. This is also configurable by
exporting the env variable REBAZEL_DEBOUNCE_DELAY.
rebazel uses a configurable level of logging though the env variable RUST_LOG, specified by then env_log crate. By default its set to info but you may wish to set it to debug
to see exactly which files will be watched for a given run.
๐ก If you attempt to watch a large very directory tree of files rebazel may print the error
No space left on device (os error 28)and exits. Here's a summary if what that means and how to address it
Meetup 2017