> ## Documentation Index
> Fetch the complete documentation index at: https://site.aspect.build/llms.txt
> Use this file to discover all available pages before exploring further.

# Build Results UI

> The Aspect Workflows Build Results UI: a live build feed, per-build timing, cache and execution breakdowns, searchable logs, per-target artifacts and JUnit results, cross-build target trends, and build comparison.

export const gatedAccess = (user, group) => {
  const loggedIn = !!(user && user.loggedIn);
  const groups = user && user.tenantMetadata && user.tenantMetadata.docsGroups || [];
  if (loggedIn && (!group || groups.indexOf(group) >= 0)) {
    return "entitled";
  }
  return loggedIn ? "signed-in" : "anonymous";
};

export const GatedLink = ({access, href, group, children}) => {
  const note = group ? "Aspect Enterprise customers" : "free Aspect account";
  const muted = {
    fontSize: "0.85em",
    opacity: 0.7,
    whiteSpace: "nowrap"
  };
  if (access === "entitled") {
    return <a href={href}>{children}</a>;
  }
  if (access !== "signed-in") {
    return <span>
        <a href={"/login?redirect=" + encodeURIComponent(href)}>{children}</a>
        <span style={muted}> (sign in: {note})</span>
      </span>;
  }
  return <span>
      {children}
      <span style={muted}> ({note})</span>
    </span>;
};

The Build Results UI shows what a Bazel build did. Every invocation that streams build events to Aspect Workflows is captured: logs, target outcomes, test results, cache statistics, and timing. Each stays queryable afterwards.

The Build Results UI is available on Aspect Cloud and Aspect Enterprise. On [Aspect Cloud](/docs/aspect-workflows/cloud/overview) it's at [app.aspect.build](https://app.aspect.build). On an [Aspect Enterprise](/docs/aspect-workflows/enterprise/overview) deployment it's served at `app.` on your deployment's domain by default, and the hostname can be customized.

<img src="https://mintcdn.com/aspectbuild/x1L7Iep716jCyJVo/images/marketing/product/ui-hero.avif?fit=max&auto=format&n=x1L7Iep716jCyJVo&q=85&s=633c9c2d74575b21713c7dbc00598ad7" alt="Build logs view with search, raw view, and download" noZoom className="docs-screenshot" width="1207" height="858" data-path="images/marketing/product/ui-hero.avif" />

## The build feed

The home page is a live feed of builds that updates while they run. Each row shows the build's status, who triggered it, the branch and repository, the CI host, and the duration.

Filter the feed by **status**, **author**, **branch**, **repository**, **CI host**, and **task**, over a relative window (last hour to last 30 days) or an absolute date range. Any other key your builds stamp with `--build_metadata` is filterable as a **custom field**. Save a filter combination as a preset to come back to it.

## Inside a build

A build's page is split into tabs:

| Tab            | Shows                                                                                                                                                                         |
| -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Overview**   | Duration, local action cache hit rate, target and action counts, output artifacts, parallelism, where the time went, resource use, and the busiest action types               |
| **Targets**    | Every target with its status and duration, grouped so one failing package doesn't sit among thousands of successes                                                            |
| **Timing**     | Analysis and execution phase times, wall clock and CPU time, the critical path, the slowest actions, time by action type, and a profile timeline                              |
| **Cache**      | Remote and disk cache hit rate, local action cache hits, misses and their reasons, output bytes served from cache, and a per-action-type breakdown                            |
| **Executions** | Total, remote and local action counts, network transfer, runner and mnemonic breakdowns, and per-action-type execution counts                                                 |
| **Logs**       | The build log, streamed while the build runs                                                                                                                                  |
| **Details**    | Status and exit code, timing, Bazel version, pattern and command, workspace status, build metadata, the explicit command line, parsed options, and the build's configurations |

Several of these views depend on data Bazel doesn't send by default, such as the execution log and a full build profile. The page notes which flags a build is missing; [Repository setup](/docs/aspect-workflows/platform/guides/webui-repository-setup) lists them.

<img src="https://mintcdn.com/aspectbuild/x1L7Iep716jCyJVo/images/marketing/web-ui/targets.avif?fit=max&auto=format&n=x1L7Iep716jCyJVo&q=85&s=f6a37963c30be7f2fa4a840916ac8747" alt="Build Results UI targets view" noZoom className="docs-screenshot" width="1161" height="679" data-path="images/marketing/web-ui/targets.avif" />

## Tests

Test targets list their status and duration, and a test's page shows its logs. Where a test emits JUnit XML, individual test cases are parsed out, so a failing case inside a large suite is named directly.

A target that failed and then passed on a retry is marked **flaky**, separately from targets that passed first time and targets that failed.

<img src="https://mintcdn.com/aspectbuild/x1L7Iep716jCyJVo/images/marketing/web-ui/test.avif?fit=max&auto=format&n=x1L7Iep716jCyJVo&q=85&s=25d3f89fab554850db7a0ea2c0448642" alt="Build Results UI test inspection view" noZoom className="docs-screenshot" width="800" height="511" data-path="images/marketing/web-ui/test.avif" />

## Per-target detail

A single target's page has tabs for its **logs**, its JUnit **test cases** where it has them, its **artifacts** (the files the target produced, downloadable directly), and its **configuration**.

## Logs

Logs stream in while the build runs, so you can read a failure before the build finishes. Search a log to jump straight to the error, or open it raw or download it. Each test target keeps its own log alongside the build log.

Every build has a stable URL to share.

## Targets across builds

The **Targets** page tracks targets across builds over a window from one day to one year: wall time, execution time, regressions, cache hit rate, flake rate, pass rate, build volume, and critical path. Open a target to see its history and the builds that built it.

## Compare two builds

**Compare** puts two builds side by side, with tabs for targets and tests, overview, cache, timing, executions, and configuration. The cache view arranges the rebuilt targets as a dependency tree rooted at what changed, and flags likely causes of a regression.

## Getting builds into it

A Bazel invocation that streams the Build Event Protocol to Aspect Workflows appears here: from a Workflows runner automatically, and from a laptop or your own CI once build event streaming is set up ([Aspect Cloud](/docs/aspect-workflows/cloud/local-setup), [Aspect Enterprise](/docs/aspect-workflows/enterprise/connect/local-setup)).

For programmatic access to the same data, see the [build results API](/docs/aspect-workflows/platform/guides/build-results-api) and the [MCP server](/docs/aspect-workflows/platform/guides/build-results-mcp), which gives an AI assistant read access to your build results.

<Note>
  Deployments upgraded from 5.18 serve this UI at <code>app.</code> on your domain,
  with the previous UI at <code>legacy-app.</code> for as long as the legacy build
  event stack is kept. See the <GatedLink access={gatedAccess(user, "workflows-subscriber")} href="/docs/aspect-workflows/enterprise/release-notes/6_0_upgrade" group="workflows-subscriber">6.0 upgrade guide</GatedLink>.
</Note>

{user.loggedIn && user.tenantMetadata?.docsGroups?.includes('workflows-subscriber') ? (
<Info>
See also <a href="/docs/aspect-workflows/enterprise/self-hosted/configuration/webui">Build Results UI configuration</a> for OIDC provider setup and DNS configuration. Build metadata keys and the Bazel flags the deeper views need are in <a href="/docs/aspect-workflows/platform/guides/webui-repository-setup">repository setup</a>.
</Info>
) : !user.loggedIn ? (
<Info>
The Build Results UI configuration reference for self-hosted Aspect Enterprise deployments is available to customers. <a href="/login?redirect=%2Fdocs%2Faspect-workflows%2Fplatform%2Ffeatures%2Fwebui">Log in</a> to read it, or ask an admin in your organization to invite you in <a href="https://app.aspect.build/settings/org/users">Aspect settings</a>.
<br /><br />
<a href="https://signup.aspect.build/">Sign up free</a> for Aspect Cloud, or <a href="/contact">talk to us</a> about a <a href="/trial">30-day trial of Aspect Enterprise</a>.
</Info>
) : (
<Info>
The Build Results UI configuration reference for self-hosted Aspect Enterprise deployments is available to customers. If your organization is one, contact Aspect support for access.
<br /><br />
Not a customer yet? <a href="/contact">Talk to us</a> about a <a href="/trial">30-day trial of Aspect Enterprise</a>.
</Info>
)}
