Warning: This project was experimental. It is not maintained anymore and should be consider deprecated.
This is a self-hosted dashboard for Bazel. In particular, this runs a server that turns build results and logs into webpages.
Build and run the server:
$ bazel build //:dash
$ bazel-bin/dash
Once you see the log message INFO: Dev App Server is now running
, you
can visit [http://localhost:8080] to see the main page (which should say "No
builds, yet!").
This builds a .war file that can be deployed to AppEngine (although this doc assumes you'll run it locally).
Note: as of this writing, there is no authentication, rate limiting, or other
protection for the dashboard. Anyone who can access the URL can read and write
data to it. You may want to specify the --address
or --host
option
(depending on AppEngine SDK version) when you run dash
to bind the server to
an internal network address.
You will need to tell Bazel where to send build results. Run bazel
with the
--use_dash
and --dash_url=http://localhost:8080
flags, for
example:
$ bazel build --use_dash --dash_url=http://localhost:8080 //foo:bar
If you don't want to have to specify the flags for every build and test, add the following lines to your .bazelrc (either in your home directory, ~/.bazelrc, or on a per-project basis):
build --use_dash
build --dash_url=http://localhost:8080
Then build results will be sent to the dashboard by default. You can specify
--use_dash=false
for a particular build if you don't want it sent.
Default security of the dashboard is to allow anyone to read and write to it.
Security can then be enforced using IP filtering. However, this is sometime
not sufficient and restricting who can write to the dashboard is generally
a good idea. Bazel supports that to some extent. A secret should be shared
between the Bazel's client and the dashboard. In the dashboard, the secret
can be specified using a BAZEL_DASH_SECRET
environment variable. In Bazel,
you specify that secret by setting the --dash_secret
flag which specify a
path to the file containing the secret.
Example to run it with the development server with secret:
BAZEL_DASH_SECRET=secret bazel-bin/dash &
echo secret >/path/to/secret
bazel test --use_dash --dash_url=http://localhost:8080 --dash_secret=/path/to/secret //test/...
Please email the mailing list with any questions or concerns.