Build-tool benchmarks published by vendors use repositories chosen to show a difference. Yours is the only one that matters, and both a cold and a warm measurement are needed because CI mostly runs cold.
Terminal
# cold: no cache, the CI condition
rm -rf node_modules/.cache dist && time <tool> build
# warm: the local development condition
time <tool> build
# and the one people forget: incremental after a one-line change
echo "// touch" >> src/index.ts && time <tool> build
Bazel (Google) is a hermetic, scalable build system with fine-grained caching, remote execution, and a vast rules ecosystem. Buck2 (Meta) is a Rust-based build system focused on performance and a more decoupled, extensible core, newer and with a smaller public ecosystem.
In CI?
Both give hermetic builds, fine-grained caching, and remote execution - the core monorepo CI speedups. Bazel has the larger ecosystem, the most rules, and the deepest community and tooling, making it the safer default. Buck2 targets strong performance and a cleaner extensibility model, but its public ecosystem and docs are less mature.
Speed it up?
Enable the remote cache (and remote execution where available) and persist it across CI jobs - the dominant speedup for either. Actions on a cache miss run on CI runners; faster managed runners shorten those.
Which should I choose?
Want the mature ecosystem, the most rules, and proven stability: Bazel. Want a Rust-based, performance-focused, extensible core and can accept a smaller ecosystem: Buck2. Remote caching is the key CI speedup on either.