Skip to main content

Welcoming George Li, Head of Sales

To fulfill our mission of bringing the world's best developer tools to every company, we're building a team that's ready to work with the world's best enterprises. That's why we're excited to share today that George Li is joining BuildBuddy to lead our enterprise sales efforts as our Head of Sales.

George joins us from Looker where he served as Head of APAC Sales Engineering. He joined Google Cloud through their acquisition of Looker in February, having helped the company grow to a $2.6B valuation.

We look forward to working alongside George to build the future of developer tools.

Welcome to BuildBuddy, George!

Author:

Siggi Simonarson

Siggi Simonarson

Co-founder @ BuildBuddy

BuildBuddy v1.3.0 Release Notes

We're excited to share that v1.3.0 of BuildBuddy is live on both Cloud Hosted BuildBuddy and open-source via Github and Docker!

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

Our focus for this release was on giving users new tools to improve build performance, debug cache hits, and a completely redesigned Cloud & Enterprise experience.

New to Open Source BuildBuddy

  • Timing profile explorer - Bazel's timing profile is the best way to get detailed insights into where to spend your time optimizing your build. Unfortunately, extracting useful information out of the thousands of events can be challenging without using something like Chrome's profiling tools. Now we've built these tools right into the BuildBuddy timing tab so you can explore this info for any build. See which actions dominate your build's critical path or find out how much time is spent downloading outputs - now with a single click.

Dive into the timing for every action, critical path information, and more.

  • Cache stats - one of the feature requests we get most frequently is for more information on cache hits and misses. This data can be tricky to get a hold of because it's not made easily available by Bazel's build event protocol. That's why we've introduced BuildBuddy's new cache tab. It gives you a view into cache hits, misses, and writes for every invocation that uses BuildBuddy's gRPC cache. It breaks these numbers down by action cache (AC) and content addressable store (CAS). BuildBuddy also tracks the volume and throughput of cache requests so you can see how much data is moving in and out of the cache - and at what speed.

Get a view into cache performance for every invocation.

  • Environment variable redaction controls - when debugging cache hits, it can be useful to get a full picture of the inputs that are affecting a particular build - like the PATH environment variable. By default, BuildBuddy redacts nearly all environment variables passed into Bazel. We've added controls per invocation that allow you to optionally allow environment variables of your choice to skip redaction. Information on configuring this can be found in our build metadata docs.

New to Cloud & Enterprise BuildBuddy

  • Redesigned navigation - as BuildBuddy has grown from a debugging tool to a fully-featured platform to debug, analyze, monitor, and share builds across your organization, we've outgrown the minimal navigation setup that has gotten us this far. In Cloud and Enterprise BuildBuddy, we've replaced the top menu bar with a more fully-featured left-nav. This gives us room to add new features like Trends and provides easier access to critical pages like Setup & Docs.

The new navigation makes room for new features.

  • Trends - BuildBuddy has lots of information about every invocation that it collects. Now with Trends, you can follow how your builds are changing over time. Have all of the cache improvements you've been working on decreased average build time over the last month? Has the addition of a new external dependency significantly increased the length of your slowest builds? Answering these questions is easy with BuildBuddy Trends.

  • Redis Pub/Sub support - we've added support for Redis Pub/Sub to significantly improve remote build execution performance. It's completely optional for on-prem deployments, but in our testing it's improved performance for builds with lots of small actions by a factor of 2x. No change is required for Cloud users - just enjoy the faster builds!

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

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

Author:

Siggi Simonarson

Siggi Simonarson

Co-founder @ BuildBuddy

BuildBuddy v1.2.1 Release Notes

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

Thanks to everyone that has tested open source and cloud-hosted BuildBuddy. We've made lots of improvements in this release based on your feedback.

A special welcome to our newest contributor and team member:

  • Brandon Duffany - Brandon is an ex-Googler and Cornell alumn who's worked as a software engineer on Google Assistant and Google Ads. He'll start off focused on surfacing better profiling and timing information to help users track down and fix slow builds!

Our focus for this release was on expanding access to BuildBuddy as well as improving scalability and performance.

We're also excited to announce that we're expanding the BuildBuddy Cloud free tier. BuildBuddy Cloud is now free for teams of up to 3 engineers in addition to being free for individuals open source projects of any size.

New to Open Source BuildBuddy

  • Official BuildBuddy Helm charts - thanks to a request from Nathan Leung we've created official BuildBuddy Helm Charts that are available for both Open Source and Enterprise deployments. Helm enables you to deploy BuildBuddy to a Kubernetes cluster with a single command, and makes configuration a breeze. The charts can optionally take care of provisioning a MySQL instance, an Nginx ingress, and even Memcached.

  • Build metadata - a frequent request from users is the ability to associate a BuildBuddy invocation with a particular git commit and repo. To support this, we've added optional build metadata including repo URL, commit SHA, and CI role that can be passed up with your build. This metadata can be passed up using the --build_metadata flag, using a --workspace_status_command script, or using environment variables commonly set by CI providers like CircleCI, BuildKite, GitHub Actions, and others. More information on how to configure your metadata can be found in our build metadata guide.

  • GitHub commit status publishing - now that you can configure build metadata to associate invocations with a GitHub repo and commit, we've added the ability to publish commit statuses straight to GitHub when you've set your metadata role to CI. To enable this feature, simply click Link GitHub Account in your BuildBuddy profile dropdown (if you're using self hosted BuildBuddy, you'll need to create a Github OAuth app and add it to your config.yaml file).

BuildBuddy links directly on GitHub

  • Improved cache hit rate - we've made improvement to our Action Cache validation logic that should result in higher cache hit rates.

  • New guides - we've added new guides to our documentation, including our Authentication Guide, Build Metadata Guide, Remote Build Execution with Github Actions Guide, with more coming soon. We've also started collecting troubleshooting documentation for common errors including RBE Failures, and Slow Uploads. Contributions welcome!

  • Target information in timing tab - in Bazel 3.4.0, the experimental flag --experimental_profile_include_target_label was introduced which adds target information to profiling events. When this flag is enabled, this target information is now displayed in the BuildBuddy Timing tab.

New to Cloud & Enterprise BuildBuddy

  • BuildBuddy Cloud is now free for teams of up to 3 - we want to make BuildBuddy available to every team - regardless of size. BuildBuddy has always been free for individuals and open source projects and today we're expanding this to teams of up to 3 engineers. As your team continues to grow, we have reasonably priced plans that scale from startups to the largest enterprises.

  • Distributed scheduler - the scheduler is a core component of any remote execution platform. In many cases, it is a single point of failure that turns an otherwise robust system into a fragile, stateful service that's hard to scale. In BuildBuddy 1.2.1, we rewrote our distributed Remote Build Execution scheduler from the ground up based on many learnings and best practices from state-of-the-art systems like Apache Spark. This enables BuildBuddy to scale to handle the largest workloads with no single point of failure, single digit millisecond queue wait times, and fault tolerance that enables execution on preemptible nodes. This allows for more cost effective high availability configurations, and allows you to deploy new BuildBuddy releases without a blip in ongoing executions.

  • Remote asset API  - in Bazel 3.0.0 the Remote Asset API was introduced along with the --experimental_remote_downloader flag. In this release, we've added basic support for this experimental API.

  • Organization configuration - we've added configuration options for on-prem installs that allow you to configure an organization's name and limit signups to emails from a specific domain. More information in the org config documentation.

  • Configurable anonymous access - we've added a configuration option that allows organizations with authentication configured to choose whether or not anonymous access should be enabled. Anonymous access is off by default when auth is configured. More information in the auth config documentation.

  • S3 cache support - BuildBuddy previously had support for using Amazon S3 as a backing store for build events. In this release, we've added Amazon S3 support for as a backing store for caching as well, with support for streaming, ContainsMulti, and more.

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

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

Author:

Siggi Simonarson

Siggi Simonarson

Co-founder @ BuildBuddy

BuildBuddy v1.1.0 Release Notes

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

Thanks to everyone that has tested 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 focus for this release was on our new Remote Build Execution platform. This release marks a huge step in fulfilling our mission of making developers more productive by supporting the Bazel ecosystem.

BuildBuddy's Remote Build Execution platform supports executing your Bazel build and tests in parallel across thousands of machines with automatic scaling, support for custom Docker images, and more. We've been iterating on and testing BuildBuddy RBE for months with companies of different sizes, and are excited to now make it available to everyone.

While BuildBuddy RBE is not yet fully open source, we're offering Cloud RBE for free to individuals and open source projects to show our appreciation to the open source community.

We'll be adding more documentation on getting started with BuildBuddy RBE in the coming weeks, but in the meantime feel free to email us at rbe@buildbuddy.io or ping us in the BuildBuddy Slack and we'll be happy to help you get started.

New to Open Source BuildBuddy

  • Cache & remote execution badges - BuildBuddy invocations pages now show badges that indicate whether or not caching and remote execution are enabled. Clicking on these badges takes you to instructions on how to configure these if they're enabled for your BuildBuddy instance.

  • Remote build execution configuration options - the BuildBuddy configuration widget has now been updated to enable configuring of remote build execution if it's enabled for your BuildBuddy instance.

  • Better build status support - BuildBuddy now better distinguishes between in-progress, failed, passed, and cancelled builds with new colorful status indicators, favicons, and more.

  • Improved documentation and new website - we've completely revamped the BuildBuddy documentation, and it's now sync'd between GitHub and buildbuddy.io/docs/, so your docs will be fresh regardless of where you're reading them. We'll be adding new sections on configuring RBE in the coming weeks. We've also completely revamped the BuildBuddy website to make it easier to navigate and perform actions like requesting a quote, or subscribing to our newsletter.

  • Test run grid - BuildBuddy will now automatically display test runs as a grid when a single test target is run more than 10 times. This supports the use case of finding and fixing flaky tests by running them with --runs_per_test=100.

  • Performance and reliability improvements - we put a lot of work into improving performance and reliability in this release. This includes changes like better event flushing (no more getting stuck on 15 build events), better shutdown behavior, speed improvements and optimizations in build artifact uploading and downloading, and more.

New to Cloud & Enterprise BuildBuddy

  • Remote Build Execution - BuildBuddy Cloud and enterprise on-prem now support Remote Build Execution. Features include custom Docker image support, automatic scaling, multiple caching layers, and more. Additional features like Mac support, viewing of remote build actions in BuildBuddy, and more are coming soon.

  • Invocation grouping - BuildBuddy invocations can now be grouped by commit and by repo. These can be populated in one of three ways:
  1. automatically by common CI environments like CircleCI and GitHub actions
  2. manually by using build flags --build_metadata=REPO_URL= and --build_metadata=COMMIT_SHA=
  3. by using a --workspace_status_command script like this one

  • New cloud endpoint - BuildBuddy now exposes a L7 load balanced gRPCS cloud endpoint at cloud.buildbuddy.io which can be used for BES, cache, and remote execution (see our .bazelrc for an example). We'll gradually be migrating users to this from the old events.buildbuddy.io, and cache.buildbuddy.io endpoints with port numbers.

  • Easier enterprise deployment - deploying enterprise BuildBuddy is now just as easy as deploying open source BuildBuddy, with a one line install script that deploys to your Kubernetes cluster. It takes your BuildBuddy configuration file as a parameter so you can easily configure things to your needs.

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.

Author:

Siggi Simonarson

Siggi Simonarson

Co-founder @ BuildBuddy

BuildBuddy v1.0.6 Release Notes

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.

  • 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.

  • 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.

  • 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.

  • 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.

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.

Author:

Siggi Simonarson

Siggi Simonarson

Co-founder @ BuildBuddy

Introducing BuildBuddy Version 1.0

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.

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.

  • 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.

  • 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!

  • 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).

  • 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.

  • Client environment variable redaction - client environment variables are now redacted from BuildBuddy's invocation details to avoid over-sharing.

  • 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.

  • 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.

  • 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.

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.

  • 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 organization and will not be viewable by unauthorized clients.

  • Organization support - BuildBuddy now supports creating organizations that allow builds to be viewed and aggregated across your team/company.

  • Organization build history - with organization support comes a new view that allows you to see recent builds across your organization.

  • 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.

  • 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.

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.

Author:

Siggi Simonarson

Siggi Simonarson

Co-founder @ BuildBuddy

BuildBuddy joins Y Combinator

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.

Author:

Siggi Simonarson

Siggi Simonarson

Co-founder @ BuildBuddy

Meet BuildBuddy

BuildBuddy is a managed Bazel build system --- it brings 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 an 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!

Author:

Siggi Simonarson

Siggi Simonarson

Co-founder @ BuildBuddy