This repository provides a Bazel ruleset for running services in a hermetic way. It can be used to provision development environments or to run tests against services.
For example, you may want to run integration tests that depend on services like a database, Redis, etc., or you may want to integration-test first-party binaries.
With this ruleset, each test can declare the services it depends on. The test will then be provisioned with a fresh instance of those services, each verified to have passed health checks before your test code runs.
This ruleset also integrates with ibazel to support incremental hot-reload during development.
See docs/itest.md for full documentation.
Per-service reload under ibazel works by injecting a cache-busting input, so it is disabled by default to keep tests cacheable. You can enable it setting the --@rules_itest//:enable_per_service_reload flag.
ibazel invokes cquery which does not accept Starlark flags. Thus you will want to configure the flag in .bazelrc and pass it via --config.
A common setup looks like this:
.bazelrc
common:enable-reload --@rules_itest//:enable_per_service_reload
ibazel run --config enable-reload //path/to:target
First-party service examples (Go and Node.js binaries): tests folder.
More third-party examples (MySQL, Redis, DynamoDB): examples folder.
0.0.56 +3.9mo2026-06-02 | |
0.0.52 +2d2026-02-06 | |
0.0.51 +9h2026-02-04 | |
0.0.50 +15d2026-02-04 | |
0.0.49 +2.6mo2026-01-20 | |
0.0.41 +3.7mo2025-11-01 | |
0.0.36 +2.6mo2025-07-14 | |
0.0.29 +6.1mo2025-04-25 | |
0.0.28 +6d2024-10-23 | |
0.0.27 +6d2024-10-17 | |
0.0.26 +16d2024-10-10 | |
0.0.25 +3d2024-09-23 | |
0.0.19 +24d2024-09-20 | |
0.0.18 +1.6mo2024-08-26 | |
0.0.17 +29d2024-07-09 | |
0.0.15 +15d2024-06-09 | |
0.0.14 +20d2024-05-25 | |
0.0.13 +1.1mo2024-05-05 | |
0.0.92024-04-01 |