Build java_tools for javac9 and javac10.
The [bazelbuild/java_tools repo](https://github.com/bazelbuild/java_tools.git) now has branches for different versions of the javac jars:
* langtools_javac9
* langtools_javac10
This PR adds targets for building and uploading to GCS the zips for both Java 9 and Java 10. The [java_tools binaries Buildkite pipeline](https://buildkite.com/bazel-trusted/java-tools-binaries-java) runs the targets for uploading to GCS the release and dist zips.
Closes #8018.
PiperOrigin-RevId: 243770039
diff --git a/src/BUILD b/src/BUILD
index effe314..487ecc6 100644
--- a/src/BUILD
+++ b/src/BUILD
@@ -555,61 +555,137 @@
visibility = ["//visibility:public"],
)
+JAVA_TOOLS_DEPLOY_JARS = [
+ "//src/java_tools/buildjar:JavaBuilder_deploy.jar",
+ "//src/java_tools/buildjar:VanillaJavaBuilder_deploy.jar",
+ "//src/java_tools/buildjar/java/com/google/devtools/build/buildjar/genclass:GenClass_deploy.jar",
+ "//src/java_tools/buildjar/java/com/google/devtools/build/java/turbine/javac:turbine_deploy.jar",
+ "//src/java_tools/buildjar/java/com/google/devtools/build/java/turbine:turbine_direct_binary_deploy.jar",
+ "//src/java_tools/junitrunner/java/com/google/testing/coverage:JacocoCoverage_jarjar_deploy.jar",
+ "//src/java_tools/junitrunner/java/com/google/testing/junit/runner:ExperimentalRunner_deploy.jar",
+ "//src/java_tools/junitrunner/java/com/google/testing/junit/runner:Runner_deploy.jar",
+ "//third_party/jarjar:jarjar_command_deploy.jar",
+] + select({
+ "//src/conditions:arm": ["//src/java_tools/singlejar/java/com/google/devtools/build/singlejar:bazel-singlejar_deploy.jar"],
+ "//conditions:default": [],
+})
+
genrule(
- name = "jars_java_tools_zip",
- srcs = [
- "//src/java_tools/buildjar:JavaBuilder_deploy.jar",
- "//src/java_tools/buildjar:VanillaJavaBuilder_deploy.jar",
- "//src/java_tools/buildjar/java/com/google/devtools/build/buildjar/genclass:GenClass_deploy.jar",
- "//src/java_tools/buildjar/java/com/google/devtools/build/java/turbine/javac:turbine_deploy.jar",
- "//src/java_tools/buildjar/java/com/google/devtools/build/java/turbine:turbine_direct_binary_deploy.jar",
- "//src/java_tools/junitrunner/java/com/google/testing/coverage:JacocoCoverage_jarjar_deploy.jar",
- "//src/java_tools/junitrunner/java/com/google/testing/junit/runner:ExperimentalRunner_deploy.jar",
- "//src/java_tools/junitrunner/java/com/google/testing/junit/runner:Runner_deploy.jar",
- "//third_party/java/jdk/langtools:java_compiler_jar",
- "//third_party/java/jdk/langtools:javac_jar",
- "//third_party/java/jdk/langtools:jdk_compiler_jar",
- "//third_party/jarjar:jarjar_command_deploy.jar",
- ] + select({
- "//src/conditions:arm": ["//src/java_tools/singlejar/java/com/google/devtools/build/singlejar:bazel-singlejar_deploy.jar"],
- "//conditions:default": [],
- }),
- outs = ["jars_java_tools.zip"],
- cmd = "zip -q -j $@ $$(echo $(SRCS) | sort)",
+ name = "jars_java_tools_java9_zip",
+ srcs = JAVA_TOOLS_DEPLOY_JARS + [
+ "@java_tools_langtools_javac9//:jdk_compiler_jar",
+ "@java_tools_langtools_javac9//:java_compiler_jar",
+ "@java_tools_langtools_javac9//:javac_jar",
+ ],
+ outs = ["jars_java_tools_java9.zip"],
+ cmd = "zip -qjX $@ $$(echo $(SRCS) | sort)",
visibility = ["//visibility:private"],
)
genrule(
- name = "java_tools_dist",
- srcs = [
- "//src/java_tools/buildjar:srcs",
- "//src/java_tools/junitrunner:srcs",
- "//src/java_tools/singlejar:srcs",
- "//src/tools/singlejar:embedded_java_tools",
- "//third_party/jarjar:srcs",
- "//third_party/java/jdk/langtools:license-and-srcs",
- "//third_party/ijar:transitive_sources",
+ name = "jars_java_tools_java10_zip",
+ srcs = JAVA_TOOLS_DEPLOY_JARS + [
+ "@java_tools_langtools_javac10//:jdk_compiler_jar",
+ "@java_tools_langtools_javac10//:java_compiler_jar",
],
- outs = ["java_tools_dist.zip"],
- cmd = "zip -Xr $@ $$(echo $(SRCS) | sort)",
- output_to_bindir = 1,
+ outs = ["jars_java_tools_java10.zip"],
+ cmd = "zip -qjX $@ $$(echo $(SRCS) | sort)",
+ visibility = ["//visibility:private"],
)
+JAVA_VERSIONS = ("9", "10")
+
+[
+ genrule(
+ name = "java_tools_dist_java" + java_version,
+ srcs = [
+ "//src/java_tools/buildjar:srcs",
+ "//src/java_tools/junitrunner:srcs",
+ "//src/java_tools/singlejar:srcs",
+ "//src/tools/singlejar:embedded_java_tools",
+ "//third_party/jarjar:srcs",
+ "//third_party/ijar:transitive_sources",
+ "@java_tools_langtools_javac" + java_version + "//:srcs",
+ ],
+ outs = ["java_tools_dist_javac" + java_version + ".zip"],
+ cmd = "zip -qXr $@ $$(echo $(SRCS) | sort)",
+ output_to_bindir = 1,
+ )
+ for java_version in JAVA_VERSIONS
+]
+
+[
+ # Targets used by the java_tools_binaries Buildkite pipeline to build the
+ # java_tools_dist_java* zips and upload them to a tmp directory in GCS.
+ sh_binary(
+ name = "upload_java_tools_dist_java" + java_version,
+ srcs = ["upload_java_tools.sh"],
+ args = [
+ "--java_tools_zip",
+ "src/java_tools_dist_javac" + java_version + ".zip",
+ "--gcs_java_tools_dir",
+ "tmp/dist",
+ "--java_version",
+ java_version,
+ "--platform",
+ ] + select({
+ "//src/conditions:darwin": ["darwin"],
+ "//src/conditions:darwin_x86_64": ["darwin_x86_64"],
+ "//src/conditions:windows": ["windows"],
+ "//src/conditions:linux_x86_64": ["linux"],
+ "//conditions:default": ["unknown"],
+ }),
+ data = [":java_tools_dist_java" + java_version],
+ deps = ["@bazel_tools//tools/bash/runfiles"],
+ )
+ for java_version in JAVA_VERSIONS
+]
+
# Builds the remote Java tools archive. Not embedded or used in Bazel, but used
# by the Java tools release process.
-genrule(
- name = "java_tools_zip",
- srcs = [
- ":jars_java_tools_zip",
- "//src/tools/singlejar:singlejar_transitive_zip",
- "//third_party/ijar:ijar_transitive_zip",
- ],
- outs = ["java_tools.zip"],
- cmd = "$(location //src:merge_zip_files) java_tools $@ $(SRCS)",
- output_to_bindir = 1,
- tools = ["//src:merge_zip_files"],
- visibility = ["//src/test/shell/bazel:__pkg__"],
-)
+[
+ genrule(
+ name = "java_tools_java" + java_version + "_zip",
+ srcs = [
+ ":jars_java_tools_java" + java_version + ".zip",
+ "//src/tools/singlejar:singlejar_transitive_zip",
+ "//third_party/ijar:ijar_transitive_zip",
+ ],
+ outs = ["java_tools_java" + java_version + ".zip"],
+ cmd = "$(location //src:merge_zip_files) java_tools $@ $(SRCS)",
+ output_to_bindir = 1,
+ tools = ["//src:merge_zip_files"],
+ visibility = ["//src/test/shell/bazel:__pkg__"],
+ )
+ for java_version in JAVA_VERSIONS
+]
+
+[
+ # Targets used by the java_tools_binaries Buildkite pipeline to build the
+ # java_tools_java* zips and upload them to a tmp directory in GCS.
+ sh_binary(
+ name = "upload_java_tools_java" + java_version,
+ srcs = ["upload_java_tools.sh"],
+ args = [
+ "--java_tools_zip",
+ "src/java_tools_java" + java_version + ".zip",
+ "--gcs_java_tools_dir",
+ "tmp/build",
+ "--java_version",
+ java_version,
+ "--platform",
+ ] + select({
+ "//src/conditions:darwin": ["darwin"],
+ "//src/conditions:darwin_x86_64": ["darwin_x86_64"],
+ "//src/conditions:windows": ["windows"],
+ "//src/conditions:linux_x86_64": ["linux"],
+ "//conditions:default": ["unknown"],
+ }),
+ data = [":java_tools_java" + java_version + "_zip"],
+ deps = ["@bazel_tools//tools/bash/runfiles"],
+ )
+ for java_version in JAVA_VERSIONS
+]
# Part of the Java tools remote archive. Not embedded or used in Bazel.
genrule(