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")