rbs build
Builds one or more targets, resolving the full dependency closure, executing in dependency order, and running independent targets in parallel. Results come from the shared cache when nothing relevant changed.rbs test
Builds the requested targets and runs the ones that are tests. Test targets are the ones declared with a test rule (go_test, py_test, vitest_test, and so on — any
rule whose kind ends in _test or is registered as a test).
.rbs/testlogs/<platform>/<package>/<name>/test.log, so
a noisy suite doesn’t scroll your terminal history away.
rbs test does not enforce coverage thresholds. If a test target declares
min_line_coverage (or branch/function thresholds), rbs test runs it and prints a
reminder — the gate only fires under rbs coverage.rbs run
Builds a target (and its dependencies), then executes it.Multiple targets in parallel
Pass several targets — or-p/--parallel — and rbs builds them all first, then runs
them simultaneously. Ctrl+C stops every process. This is the standard way to bring up
a local stack:
Watch mode
--watch rebuilds and restarts the process whenever source files change:
Side-effect targets
Building stays pure — nothing a build does touches the outside world. Rules whose whole point is a side effect (pushing an image, applying manifests) perform it at run time instead:rbs query
Lists targets matching a pattern without building anything. Useful for exploring a workspace and for scripting.rbs graph
Emits the unified dependency graph of the whole workspace — build targets, infra resources, CI workflows, and external dependencies — by evaluating every.rbs file
and walking the result.
Progress messages while the workspace loads go to stderr, so stdout carries only
the document and stays pipeable:
rbs coverage
Runs test targets with coverage collection and enforces the thresholds the targets declare. This is the coverage gate for CI.go_test supports min_line_coverage; the JavaScript test rules
(vitest_test, nodejs_test) additionally support min_branch_coverage and
min_function_coverage. A threshold of 0 (the default) means no gate.
Coverage reports and logs land under
.rbs/testlogs/<platform>/<package>/<name>/coverage/.