BuildBarn Browser front-end

BuildBarn Browser is a “simple web service written in Go that can display objects stored in a Content Addressable Storage (CAS) and an Action Cache (AC) that are used by the remote execution API.” (REAPI). It originates from the Bazel Buildbarn project but has support for any REAPI v2 compatible CAS and AC backend and can thus be used together with BuildGrid in order to display web reports for build action execution.

Configuration

BuildBarn Browser

BuildBarn Browser uses a custom BlobstoreConfiguration protobuf message stored in text format as a regular file on disk for configuration. This message allows specifying theCAS and AC remote end-points to be used as data backend. Setup is described on the bb-browser repository homepage.

As an example, in order to access data from a CAS and AC remote execution server available at storage.grid.build on port 50052 with TLS encryption and client auth. credential forwarding, your blobstore.conf should be like:

content_addressable_storage {
  grpc_metadata_forwarding {
    grpc {
      endpoint: "storage.grid.build:50052"
      tls: {}
    }
  }
}

action_cache {
  grpc_metadata_forwarding {
    grpc {
      endpoint: "storage.grid.build:50052"
      tls: {}
    }
  }
}

BuildGrid

BuildGrid can be configured to generate URLs compatible with the BuildBarn Browser service. They get generated once a build job completes an are returned to the client along with the build results. It is then up to the client to present it to the user or not. RECC, for example, will print them on build failures.

In order to have BuildGrid to generate URL for a BuildBarn Browser service available at https://browser.grid.build on port 8080, your BuildGrid configuration should contain an execute service instance with:

instances:
  - name: local

    services:
      - !execution
        storage: *data-store
        action-cache: *build-cache
        action-browser-url: https://browser.grid.build:8080