blob: 15107b205659807d06247867d9ea82af8687d555 [file] [view]
# robolectric-bazel
This project provides build rules for integrating Robolectric into Bazel
projects.
## Releases
<a href="https://github.com/robolectric/robolectric-bazel/releases/latest"><img src="https://img.shields.io/github/v/release/robolectric/robolectric-bazel?display_name=tag&label=Latest%20Stable%20Release"/></a>
<br/>
## Installation
Follow instructions in the release notes from the release you use:
<https://github.com/robolectric/robolectric-bazel/releases>
## Usage
In your `android_local_test` targets in the BUILD files, depend on the
Robolectric targets `@maven//:org_robolectric_robolectric` and
`@robolectric//bazel:android-all`:
```python
android_local_test(
name = "greeter_activity_test",
srcs = ["GreeterTest.java"],
manifest = "TestManifest.xml",
test_class = "com.example.bazel.GreeterTest",
deps = [
":greeter_activity",
"@maven//:org_robolectric_robolectric",
"@robolectric//bazel:android-all",
],
)
```
## Updating Android Versions
`update-versions.py` walks `org.robolectric:android-all-instrumented` on Maven
Central and rewrites `bazel/robolectric.bzl` in place: it bumps the version and
sha256 of any Android API group that has a newer release, and inserts new
entries for any numeric API newer than the highest one currently listed.
```console
./update-versions.py # apply updates
./update-versions.py --dry-run # preview without writing
```
## Publishing Releases
A new release can be published by just pushing a tag.
Once the tag is pushed, GitHub Actions will build, test, and publish a release to both GitHub releases and the BCR.
Example:
```console
git tag 4.11.1
git push origin 4.11.1
```