| # Bazel 8 and 9, Linux and macOS — the same matrix this repository's own CI runs, because |
| # a registry entry that claims more than CI covers is a claim nobody is checking. |
| # |
| # No Windows: untested and unclaimed. The compiler shim would probably work, but the |
| # examples and the path handling have never run there, and guessing is not support. |
| matrix: |
| platform: ["ubuntu2404", "macos_arm64"] |
| bazel: ["8.x", "9.x"] |
| |
| tasks: |
| verify_targets: |
| name: the rules and the toolchain load |
| platform: ${{ platform }} |
| bazel: ${{ bazel }} |
| build_flags: |
| # The compiler runs on the tool JVM and needs Java 21 (java.util.HexFormat). The |
| # anonymous module BCR generates has no .bazelrc, so state it here. |
| # Target side too: aot_deploy.jar builds in the target configuration, |
| # whose javac otherwise defaults to -source 11 and rejects the worker's |
| # Java 21. Found by 0.1.0's presubmit on macOS — the Linux legs hid it |
| # behind remote-cache hits, and this repo's own CI hides it behind its |
| # .bazelrc. |
| - "--java_language_version=21" |
| - "--java_runtime_version=remotejdk_21" |
| - "--tool_java_language_version=21" |
| - "--tool_java_runtime_version=remotejdk_21" |
| build_targets: |
| - "@rules_clj//clojure:defs.bzl" |
| - "@rules_clj//src/main/java/dev/palermo/rulesclj:aot_deploy.jar" |
| |
| # The real test: a module that consumes rules_clj the way anyone else would, compiles |
| # Clojure ahead of time and runs a test against the result. |
| bcr_test_module: |
| module_path: "examples/hello" |
| matrix: |
| platform: ["ubuntu2404", "macos_arm64"] |
| bazel: ["8.x", "9.x"] |
| tasks: |
| run_tests: |
| name: compile and test Clojure through the published module |
| platform: ${{ platform }} |
| bazel: ${{ bazel }} |
| build_targets: |
| - "//src/example:hello" |
| test_targets: |
| - "//test/example:greeting_test" |