blob: 84478891a96728f38213ce0f85cb220edbdaf626 [file]
# 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"