Benchmark: Bazel builds 39.7x faster on Avrea than GitHub Actions
On GitHub Actions, a no-cache Bazel build takes 37 minutes 10 seconds. On Avrea, the same build, same 2 vCPU spec, one label change: 14 minutes 4 seconds without cache, 56 seconds with.

Why Bazel
Bazel powers CI at companies running enormous monorepos: tens of thousands of source files, multiple languages, aggressive caching. Supporting Bazel's remote cache, and making it fast, was high on our list.
How we ran the test
Built Bazel from source, with Bazel's remote cache enabled on the cached run. Both sides matched on paper:
For the cached run, Bazel's pointed at Avrea's co-located cache, populated on a prior warm-up run and then read from. On the GitHub side there's no comparable cache built in.
Variance on Avrea was small: a few seconds on the cached runs. GitHub Actions was noisier.
Results
Without caching, Avrea comes out 2.6x faster. With Bazel's remote cache pointed at Avrea's Bazel remote cache endpoint, a warm build finishes in 56 seconds.
Why it's faster
A no-cache Bazel build is CPU-bound and disk-heavy. Compiler passes pin a single core. The build also churns through a big pile of intermediate object files.
Avrea's 2 vCPU runner is the same size as GitHub's on paper, but the hardware underneath is different. Sysbench single-core: ~6,500 events/sec vs GitHub's ~3,670. Disk writes: ~4 GB/s vs ~220 MB/s.
That's the 2.6x, before any caching gets involved.
Bazel's remote cache stores every action's output (compiled objects, linked binaries, test results), keyed by input hash. On a cached run, if the inputs haven't changed, Bazel reads the output back and skips the work.
Avrea's cache runs on the same infrastructure as the runners, so reads come straight off co-located storage. That reduces the usual network-path bottlenecks.
On a fully-warm cache, what's left of the build is mostly Bazel walking the action graph and pulling outputs out of storage.
Other benchmarks in this series
- Linux kernel (68x)
- Ghostty (27x)
- Kafka (6.6x)
- Next.js (142x)
- RisingWave (11.5x)
What Avrea is
Avrea is drop-in for GitHub Actions runners. Swap ubuntu-latest for avrea-ubuntu-latest and push.
Every run gets step-level CPU and memory metrics, searchable logs, and SSH into the live VM when you need to reproduce something. That last one matters with Bazel specifically: when a build wedges in a deep action graph, you want to poke at it, not rerun blind.
Every job runs in an isolated ephemeral VM. ISO 27001:2022 certified.






