BuildBuddy v1.0.6 Release Notes

Siggi Simonarson
May 20, 2020

Excited to share that v1.0.6 of BuildBuddy is live on both Cloud Hosted BuildBuddy and open source via Github and Docker!

Thanks to all of you that have been using open source and cloud-hosted BuildBuddy. We’ve made lots of improvements in this release based on your feedback.

A special thank you to our new contributors:

Our three major focuses for this release were on a better test results view, certificate based authentication, and our new results-store API.

We also laid a lot of groundwork for remote build execution in this release, which will be available in the coming weeks.

New to Open Source BuildBuddy

  • Test results view - we’ve added support for parsing test.xml files that are uploaded to a BuildBuddy remote cache. This allows us to show information about individual test cases and quickly surface information on which test cases failed and why. Test results view
  • Large log file support - we’ve improved BuildBuddy’s log viewer to enable the rendering of 100MB+ log files with full ANSI color support in milliseconds using incremental rendering. Large log file support
  • Timing controls - BuildBuddy’s timing tab now has improved controls that enable users to choose grouping and page size options. This allows you to easily see the slowest build phases across threads. Timing controls
  • gRPCS support - BuildBuddy now supports and defaults to encrypted gRPCS connections to Bazel using TLS. Support includes automatic obtaining of server-side TLS certificates using ACME and Let’s Encrypt. This also includes the ability to connect to remote caches over gRPCS via the bytestream API.
  • URL secret redaction - we’ve updated our log scrubbing logic to redact any URLs that might contain secrets from uploaded build events.

Our open source BuildBuddy distribution is targeted at individuals viewing and debugging their Bazel builds. For teams and organizations, we provide an enterprise version of BuildBuddy that adds support for team-specific features.

Many of these Enterprise features are also available for free to individuals via Cloud Hosted BuildBuddy.

New to Cloud & Enterprise BuildBuddy

  • Certificate based auth - authentication between Bazel and BuildBuddy can now be authenticated and encrypted using certificate-based mTLS.
  • Auth configuration widget - using BuildBuddy’s new configuration widget, it’s easy to setup an auth configuration that makes sense for your team. This includes options to pull credentials into user-specific .bazelrc files and download generated auth certificates. Auth configuration widget
  • Build Results API - many teams want to do more with their build results. With BuildBuddy’s Build Results API - users have programmatic access to an invocation’s targets, actions, and build artifacts. This allows teams to build out custom integrations with their existing tooling. If you’d like access to the API, or have more information you’d like exposed, email developers@buildbuddy.io. Build results API

That’s it for this release. Stay tuned for more updates coming soon!

As always, we love your feedback - email us at hello@buildbuddy.io with any questions, comments, or thoughts.

Introducing BuildBuddy Version 1.0

Siggi Simonarson
April 24, 2020

We released our initial open source version of BuildBuddy to the Bazel community last month and have received a ton of interest, support, and feedback. We really appreciate everyone who’s taken the time to kick the tires and try it out!

We’re excited to share that BuildBuddy has been run on-prem at over 20 companies, and hundreds more developers have tried our cloud-hosted version.

BuildBuddy Invocation

People have found the shareable invocation links particularly useful when debugging builds remotely with co-workers while working from home. No more pasting console outputs into Pastebin!

We’ve taken all of the feedback we’ve gotten and made lots of improvements to both the open source and enterprise versions of BuildBuddy.

Our three major focuses for this release were on better build artifact handling, better test support, and enterprise authentication. We hope these changes help you continue to build and debug software faster. Keep the feedback coming!

New to Open Source BuildBuddy

  • Remote cache support - we’ve added a built-in Bazel remote cache to BuildBuddy, implementing the GRPC remote caching APIs. This allows BuildBuddy to optionally collect build artifacts, timing profile information, test logs, and more. Remote cache support
  • Clickable build artifacts - this was our most requested feature. Clicking on build artifacts in the BuildBuddy UI now downloads the artifact when using either the built-in BuildBuddy cache, or a third-party cache running in GRPC mode that supports the bytestream API - like bazel-remote. Clickable build artifacts
  • Detailed timing information - getting detailed timing information on your Bazel builds can be a hassle. Now BuildBuddy invocations include a new “Timing” tab - which pulls the Bazel profile logs from your build cache and displays them in a human-readable format. Stay tuned for flame charts! Detailed timing information
  • Viewable test logs - digging into test logs for your Bazel runs can be a pain. Now BuildBuddy surfaces test logs directly in the UI when you click on a test target (GRPC remote cache required). Viewable test logs
  • Multiple test-run support - one of our favorite features of Bazel is that it will rerun flaky tests for you. BuildBuddy now supports viewing information about multiple attempts of a single test run. Multiple test-run support
  • Client environment variable redaction - client environment variables are now redacted from BuildBuddy’s invocation details to avoid over-sharing. Client environment variable redaction
  • Dense UI mode - based on feedback on information density of the default BuildBuddy UI, we added a “Dense mode” that packs more information into every square inch. Dense UI mode
  • BES backend multiplexing - we heard from some of you that you’d like to try BuildBuddy, but were already pointing your bes_backend flag at another service. We’ve added the build_event_proxy configuration option that allows you to specify other backends that your build events should be forwarded to. See the configuration docs for more information. BES backend multiplexing
  • Slack webhook support - we’ve added a configuration option that allows you to message a Slack channel when builds finish. This is a nice way of getting a quick notification when a long running build completes, or a CI build fails. See the configuration docs for more information. Slack webhook support

Our open source BuildBuddy distribution is targeted at individuals viewing and debugging their Bazel builds. For teams and organizations, we provide an enterprise version of BuildBuddy that adds support for team-specific features.

New to Enterprise BuildBuddy

  • OpenID Connect auth support - organizations can now specify an OpenID Connect provider to handle authentication for their BuildBuddy instance. This allows for the flexibility to use Google login if you use GSuite, auth services like Okta, or an in-house solution that supports OpenID Connect. OpenID Connect auth support
  • Authenticated build log & cache uploads - BuildBuddy now supports generating authenticated upload urls for both the build event and remote cache backends. Events uploaded with authentication will be associated with your organziation and will not be viewable by unauthorized clients. Authenticated build log & cache uploads
  • Organization support - BuildBuddy now supports creating organizations that allow builds to be viewed and aggregated across your team/company. OpenID Connect auth support
  • Organization build history - with organization support comes a new view that allows you to see recent builds across your organization. Organization build history
  • User & host overviews - you can now see all of the users and hosts that have uploaded builds to your organization. This allows you to drill into all of the builds uploaded from a CI machine for example. User & host overviews
  • Build grid - the new build grid gives you a visual overview of the build history for an organization, host, or user. This allows you to quickly find and fix failing builds. Build Grid

That’s it for this release. Stay tuned for more updates coming soon!

As always, we love your feedback - email us at hello@buildbuddy.io with any questions, comments, or thoughts.

BuildBuddy joins Y Combinator

Siggi Simonarson
March 16, 2020

If you’ve hung out around developers for any extended period — you’ve probably heard “my code is compiling” as an excuse from them when they’re slacking off and browsing Hacker News.

“Compiling” via XKCD

Slow, flaky builds waste hours of developer time — leading to slow dev refresh cycles and unhappy, unproductive engineers. This is the problem we’re solving at BuildBuddy.

BuildBuddy is a managed Bazel build system. It brings a Google-style development environment and 10x faster builds to any company.

We’re excited to share that we’ve been accepted into Y Combinator and have been participating in their Winter 2020 batch. Here’s a photo from our first batch dinner where the founders of Airbnb (YC Winter 2009) told us stories about their YC experience:

Airbnb founders speak at our first batch dinner via Gustaf Alstromer

We’re excited to share more about BuildBuddy in the coming months. If you intrigued and want to learn more — feel free to shoot us an email at hello@buildbuddy.io.

Meet BuildBuddy

Siggi Simonarson
March 04, 2020

BuildBuddy is a managed Bazel build system — it bring a Google-style development environment to any company in minutes.

The first product we’ve built is an open-core Bazel build log viewer. It consumes the Bazel build event protocol and makes logs accessible through a user-friendly web UI. If you’re familiar with Google’s Sponge tool - it’s basically an open source version of that. It’s available in 3 forms:

  • Open source - You can find the core product open source and free to use with an MIT license on Github.
  • Cloud hosted - We also offer a cloud hosted version of the product at buildbuddy.io. Plans range from a free version for personal use to and enterprise version suited for companies with complex needs.
  • On-prem - We offer an enterprise version of the product that you can run on-premises or in your own cloud. This version comes with all the bells and whistles - like dashboards, user accounts, and dedicated support.

The Bazel build log viewer is just the start. We’re working on a shared build cache, remote build execution, and more.

Our end goal is to take the pain out of managing Bazel, so you can focus on building your product.

Reach out to us at hello@buildbuddy.io if you’re interested, we’d love to chat!