Add bzlmod example to CI (#69)

diff --git a/.bazelrc b/.bazelrc
index b08a715..3ce91d2 100644
--- a/.bazelrc
+++ b/.bazelrc
@@ -1,2 +1 @@
 common --enable_bzlmod
-
diff --git a/.bazelversion b/.bazelversion
new file mode 100644
index 0000000..a585a9b
--- /dev/null
+++ b/.bazelversion
@@ -0,0 +1 @@
+7.0.0-pre.20230724.1
diff --git a/.bcr/presubmit.yml b/.bcr/presubmit.yml
index 94c2f5a..28f8bbc 100644
--- a/.bcr/presubmit.yml
+++ b/.bcr/presubmit.yml
@@ -5,5 +5,30 @@
   verify_targets:
     name: "Verify build targets"
     platform: ${{ platform }}
+    build_flags:
+      - "--enable_bzlmod=false"
+    build_targets:
+      - "@robolectric//bazel:android-all"
+  verify_targets_bzlmod:
+    name: "Verify build targets with bzlmod"
+    platform: ${{ platform }}
+    build_flags:
+      - "--enable_bzlmod=true"
     build_targets:
       - "@rules_robolectric//bazel:android-all"
+  verify_examples:
+    name: "Verify build targets"
+    platform: ${{ platform }}
+    working_directory: examples/simple
+    test_flags:
+      - "--enable_bzlmod=false"
+    test_targets:
+      - "//:SparseArraySetTest"
+  verify_examples_bzlmod:
+    name: "Verify build targets"
+    platform: ${{ platform }}
+    working_directory: examples/simple
+    test_flags:
+      - "--enable_bzlmod=true"
+    test_targets:
+      - "//:SparseArraySetTest"
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index d8981a7..285ad33 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -36,7 +36,10 @@
         uses: bazelbuild/setup-bazelisk@v2
       - name: "Running integration tests"
         working-directory: examples/simple
-        run: bazel test //:SparseArraySetTest
+        run: bazel test //:SparseArraySetTest --enable_bzlmod=false
+      - name: "Running integration tests with bzlmod"
+        working-directory: examples/simple
+        run: bazel test //:SparseArraySetTest --enable_bzlmod=true
   buildifier:
     runs-on: ubuntu-latest
     steps:
diff --git a/bazel/gen-deps.py b/bazel/gen-deps.py
index ee580aa..96bf3ba 100644
--- a/bazel/gen-deps.py
+++ b/bazel/gen-deps.py
@@ -1,16 +1,23 @@
 import sys
 
+
 def getKey(jar):
     group_and_artifact = "org.robolectric\:android-all-instrumented\:"
-    # Given "external/org_robolectric_android_all_instrumented_4_1_2_r1_robolectric_r1/jar/android-all-instrumented-4.1.2_r1-robolectric-r1.jar"
+    # Given:
+    # 1. "external/org_robolectric_android_all_instrumented_4_1_2_r1_robolectric_r1/jar/android-all-instrumented-4.1.2_r1-robolectric-r1.jar"
+    # 2. "external/rules_robolectric~override~robolectric_repository_extensions~org_robolectric_android_all_instrumented_10_robolectric_5803371_i4/jar/android-all-instrumented-10-robolectric-5803371-i4.jar"
     # We want "4.1.2_r1-robolectric-r1.jar"
     version = jar.split("android-all-instrumented-")[1][:-4]
     return group_and_artifact + version
 
+
 def getValue(jar):
-    # Given "external/org_robolectric_android_all_instrumented_4_1_2_r1_robolectric_r1/jar/android-all-instrumented-4.1.2_r1-robolectric-r1.jar"
+    # Given:
+    # 1. "external/org_robolectric_android_all_instrumented_4_1_2_r1_robolectric_r1/jar/android-all-instrumented-4.1.2_r1-robolectric-r1.jar"
+    # 2. "external/rules_robolectric~override~robolectric_repository_extensions~org_robolectric_android_all_instrumented_10_robolectric_5803371_i4/jar/android-all-instrumented-10-robolectric-5803371-i4.jar"
     # We want "../../org_robolectric_android_all_instrumented_4_1_2_r1_robolectric_r1/jar/android-all-instrumented-4.1.2_r1-robolectric-r1.jar"
-    return "../../" + jar[jar.index("org_robolectric"):]
+    return jar.replace("external/", "../../")
+
 
 def main(argv):
     for jar in argv[1:]:
@@ -18,5 +25,6 @@
         # org.robolectric\:android-all-instrumented\:4.1.2_r1-robolectric-r1.jar=../../org_robolectric_android_all_instrumented_4_1_2_r1_robolectric_r1/jar/android-all-instrumented-4.1.2_r1-robolectric-r1.jar
         print("%s=%s" % (getKey(jar), getValue(jar)))
 
+
 if __name__ == "__main__":
     main(sys.argv)
diff --git a/examples/simple/.bazelrc b/examples/simple/.bazelrc
new file mode 100644
index 0000000..3ce91d2
--- /dev/null
+++ b/examples/simple/.bazelrc
@@ -0,0 +1 @@
+common --enable_bzlmod
diff --git a/examples/simple/.bazelversion b/examples/simple/.bazelversion
new file mode 100644
index 0000000..a585a9b
--- /dev/null
+++ b/examples/simple/.bazelversion
@@ -0,0 +1 @@
+7.0.0-pre.20230724.1
diff --git a/examples/simple/MODULE.bazel b/examples/simple/MODULE.bazel
new file mode 100644
index 0000000..daf0d5d
--- /dev/null
+++ b/examples/simple/MODULE.bazel
@@ -0,0 +1,27 @@
+module(
+    name = "rules_robolectric_examples_bzlmod",
+    version = "TODO",
+)
+
+# I don't think this bazel_dep version actually matters because it's being overriden by the local_path_override.
+bazel_dep(name = "rules_robolectric", repo_name = "robolectric", version = "1")
+local_path_override(module_name = "rules_robolectric", path = "../..")
+
+bazel_dep(name = "platforms", version = "0.0.6")
+bazel_dep(name = "rules_android", version = "0.1.1")
+bazel_dep(name = "rules_jvm_external", version = "5.2")
+maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven")
+maven.install(
+    artifacts = [
+        "com.google.truth:truth:1.1.3",
+        "org.robolectric:robolectric:4.10.3",
+    ],
+    repositories = [
+        "https://maven.google.com",
+        "https://repo1.maven.org/maven2",
+    ],
+)
+use_repo(maven, "maven")
+
+remote_android_extensions = use_extension("@bazel_tools//tools/android:android_extensions.bzl", "remote_android_tools_extensions")
+use_repo(remote_android_extensions, "android_tools", "android_gmaven_r8")
diff --git a/examples/simple/WORKSPACE.bzlmod b/examples/simple/WORKSPACE.bzlmod
index e69de29..9cc43bb 100644
--- a/examples/simple/WORKSPACE.bzlmod
+++ b/examples/simple/WORKSPACE.bzlmod
@@ -0,0 +1 @@
+android_sdk_repository(name = "androidsdk")