Skip to content

Commit d9f3217

Browse files
ted-xiecopybara-github
authored andcommitted
Merge #265 by ted-xie: Misc changes to un-break BazelCI
* Add explicit loads for java_* rules * Add explicit loads for sh_binary (and rules_shell) * Use singlejar to re-package classfiles Command to add all the loads: `bazelisk query 'kind(sh_binary,...)' | sed "s/:.*/:__pkg__/" | sort | uniq | xargs -I {} buildozer 'new_load @rules_shell//shell:sh_binary.bzl sh_binary' {}` Closes #265 COPYBARA_INTEGRATE_REVIEW=#265 from ted-xie:fix_bazelci 6b0fb6e PiperOrigin-RevId: 685843005 Change-Id: I163466cd8b02dc4e46e80812fa5756bdf8997e6e
1 parent 4ad81c8 commit d9f3217

File tree

28 files changed

+123
-56
lines changed

28 files changed

+123
-56
lines changed

.bazelci/presubmit.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22

3-
bazel: last_green
3+
bazel: 7.4.0rc1
44

55
tools_flags: &tools_flags
66
? "--enable_bzlmod=false"
@@ -154,4 +154,4 @@ tasks:
154154
build_flags:
155155
<<: *rules_flags
156156
build_targets:
157-
- "//java/com/basicapp:basic_app"
157+
- "//java/com/basicapp:basic_app"

.bazelversion

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
7.2.1
1+
7.4.0rc1

MODULE.bazel

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ module(
77
bazel_dep(name = "platforms", version = "0.0.5")
88
bazel_dep(name = "rules_license", version = "0.0.4")
99
bazel_dep(name = "rules_java", version = "7.11.1")
10+
bazel_dep(name = "rules_shell", version = "0.1.2")
1011

1112
bazel_dep(name = "stardoc", version = "0.6.2", dev_dependency = True)
1213
# Use a later commit until a version with table of contents, stamping, and
@@ -84,7 +85,7 @@ maven.install(
8485
"org.robolectric:robolectric:4.10.3",
8586
"com.google.flogger:flogger:0.8",
8687
"com.google.guava:guava:32.1.2-jre",
87-
"com.google.protobuf:protobuf-java-util:3.9.2",
88+
"com.google.protobuf:protobuf-java-util:4.27.2",
8889
"com.google.truth:truth:1.1.5",
8990
"info.picocli:picocli:4.7.4",
9091
"jakarta.inject:jakarta.inject-api:2.0.1",

defs.bzl

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ load("@rules_jvm_external//:defs.bzl", "maven_install")
2929
load("@rules_proto//proto:repositories.bzl", "rules_proto_dependencies")
3030
load("@rules_proto//proto:toolchains.bzl", "rules_proto_toolchains")
3131
load("@rules_python//python:repositories.bzl", "py_repositories", "python_register_toolchains")
32+
load("@rules_shell//shell:repositories.bzl", "rules_shell_dependencies", "rules_shell_toolchains")
3233

3334
def rules_android_workspace():
3435
""" Sets up workspace dependencies for rules_android."""
@@ -57,7 +58,7 @@ def rules_android_workspace():
5758
"org.robolectric:robolectric:4.10.3",
5859
"com.google.flogger:flogger:0.8",
5960
"com.google.guava:guava:32.1.2-jre",
60-
"com.google.protobuf:protobuf-java-util:3.9.2",
61+
"com.google.protobuf:protobuf-java-util:4.27.2",
6162
"com.google.truth:truth:1.1.5",
6263
"info.picocli:picocli:4.7.4",
6364
"jakarta.inject:jakarta.inject-api:2.0.1",
@@ -106,6 +107,27 @@ def rules_android_workspace():
106107
# NOTE: above lockfile currently disabled due to https://github.com/bazelbuild/rules_jvm_external/issues/1134.
107108
)
108109

110+
maven_install(
111+
# Specifically named since the worker API lib needs `@maven` to exist.
112+
# All lines in the artifacts list must be tagged "bazel worker api" for
113+
# the presubmit maven artifact consistency checker to pass.
114+
name = "maven",
115+
artifacts = [ # bazel worker api
116+
"com.google.code.gson:gson:2.10.1", # bazel worker api
117+
"com.google.errorprone:error_prone_annotations:2.23.0", # bazel worker api
118+
"com.google.guava:guava:33.0.0-jre", # bazel worker api
119+
"com.google.protobuf:protobuf-java:4.27.2", # bazel worker api
120+
"com.google.protobuf:protobuf-java-util:4.27.2", # bazel worker api
121+
"junit:junit:4.13.2", # bazel worker api
122+
"org.mockito:mockito-core:5.4.0", # bazel worker api
123+
"com.google.truth:truth:1.4.0", # bazel worker api
124+
], # bazel worker api
125+
aar_import_bzl_label = "@rules_android//rules:rules.bzl",
126+
repositories = [
127+
"https://repo1.maven.org/maven2",
128+
"https://maven.google.com",
129+
],
130+
)
109131
go_rules_dependencies()
110132

111133
_GO_TOOLCHAIN_VERSION = "1.22.4"
@@ -161,3 +183,6 @@ def rules_android_workspace():
161183
# We recommend using the same version your team is already standardized on.
162184
python_version = "3.11",
163185
)
186+
187+
rules_shell_dependencies()
188+
rules_shell_toolchains()

kokoro/presubmit/presubmit_main.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ function main() {
113113
# Maven artifact consistency test
114114
# The sed commands in the `<()` blocks extract the artifacts list from maven_install.
115115
# `diff -w` compares the two files without whitespaces.
116-
diff -w <(sed -n '/artifacts =/{:start /]/!{N;b start};/.*/p}' defs.bzl) <(sed -n '/artifacts =/{:start /]/!{N;b start};/.*/p}' MODULE.bazel)
116+
diff -w <(sed -n '/artifacts =/{:start /]/!{N;b start};/.*/p}' defs.bzl | grep -v "bazel worker api") <(sed -n '/artifacts =/{:start /]/!{N;b start};/.*/p}' MODULE.bazel)
117117

118118
# Sync with bzlmod disabled to sniff out WORKSPACE issues
119119
"$bazel" sync --noenable_bzlmod > /dev/null

prereqs.bzl

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,9 @@ def rules_android_prereqs(dev_mode = False):
4242
maybe(
4343
http_archive,
4444
name = "com_google_protobuf",
45-
sha256 = "87407cd28e7a9c95d9f61a098a53cf031109d451a7763e7dd1253abf8b4df422",
46-
strip_prefix = "protobuf-3.19.1",
47-
urls = ["https://github.com/protocolbuffers/protobuf/archive/v3.19.1.tar.gz"],
45+
sha256 = "b2340aa47faf7ef10a0328190319d3f3bee1b24f426d4ce8f4253b6f27ce16db",
46+
strip_prefix = "protobuf-28.2",
47+
urls = ["https://github.com/protocolbuffers/protobuf/archive/v28.2.tar.gz"],
4848
)
4949

5050
maybe(
@@ -130,9 +130,9 @@ def rules_android_prereqs(dev_mode = False):
130130
maybe(
131131
http_archive,
132132
name = "rules_proto",
133-
sha256 = "303e86e722a520f6f326a50b41cfc16b98fe6d1955ce46642a5b7a67c11c0f5d",
134-
strip_prefix = "rules_proto-6.0.0",
135-
url = "https://github.com/bazelbuild/rules_proto/releases/download/6.0.0/rules_proto-6.0.0.tar.gz",
133+
sha256 = "6fb6767d1bef535310547e03247f7518b03487740c11b6c6adb7952033fe1295",
134+
strip_prefix = "rules_proto-6.0.2",
135+
url = "https://github.com/bazelbuild/rules_proto/releases/download/6.0.2/rules_proto-6.0.2.tar.gz",
136136
)
137137

138138
maybe(
@@ -150,9 +150,6 @@ def rules_android_prereqs(dev_mode = False):
150150
http_archive,
151151
name = "bazel_worker_api",
152152
strip_prefix = "bazel-worker-api-0.0.1/proto",
153-
patch_cmds = [
154-
"find . -name 'BUILD.bazel' -exec sed -i 's/maven/rules_android_maven/g' {} \\;",
155-
],
156153
urls = [
157154
"https://github.com/bazelbuild/bazel-worker-api/releases/download/v0.0.1/bazel-worker-api-v0.0.1.tar.gz",
158155
],
@@ -163,15 +160,20 @@ def rules_android_prereqs(dev_mode = False):
163160
http_archive,
164161
name = "bazel_worker_java",
165162
strip_prefix = "bazel-worker-api-0.0.1/java",
166-
patch_cmds = [
167-
"find . -name 'BUILD.bazel' -exec sed -i 's/maven/rules_android_maven/g' {} \\;",
168-
],
169163
urls = [
170164
"https://github.com/bazelbuild/bazel-worker-api/releases/download/v0.0.1/bazel-worker-api-v0.0.1.tar.gz",
171165
],
172166
sha256 = "b341e3fba0a3dd0ab7bfdc7e256fad711a1f9e9255563a74c305676046b5a184",
173167
)
174168

169+
maybe(
170+
http_archive,
171+
name = "rules_shell",
172+
sha256 = "a86bcdcfb7a14267fa81bd18e199a53315b864a89378a7eecd3db739bfa436e2",
173+
strip_prefix = "rules_shell-0.1.2",
174+
url = "https://github.com/bazelbuild/rules_shell/releases/download/v0.1.2/rules_shell-v0.1.2.tar.gz",
175+
)
176+
175177
_apksig_archive()
176178

177179
if dev_mode:

rules/android_sdk_repository/helper.bzl

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
load("@local_config_platform//:constraints.bzl", "HOST_CONSTRAINTS")
1717
load("@rules_android//rules:rules.bzl", "android_sdk")
1818
load("@rules_java//java:defs.bzl", "java_binary", "java_import")
19+
load("@rules_shell//shell:sh_binary.bzl", "sh_binary")
1920

2021
def _bool_flag_impl(_unused_ctx):
2122
pass
@@ -315,7 +316,7 @@ def create_android_sdk_rules(
315316
]),
316317
)
317318

318-
native.sh_binary(
319+
sh_binary(
319320
name = tool + "_binary",
320321
srcs = [tool + "_runner.sh"],
321322
data = [
@@ -341,7 +342,7 @@ def create_android_sdk_rules(
341342
}),
342343
)
343344

344-
native.sh_binary(
345+
sh_binary(
345346
name = "bash_fail",
346347
srcs = [":generate_fail_sh"],
347348
)
@@ -353,7 +354,7 @@ def create_android_sdk_rules(
353354
executable = 1,
354355
)
355356

356-
native.sh_binary(
357+
sh_binary(
357358
name = "windows_fail.cmd",
358359
srcs = [":generate_fail_cmd"],
359360
)
@@ -385,7 +386,7 @@ def create_android_sdk_rules(
385386
]),
386387
)
387388

388-
native.sh_binary(
389+
sh_binary(
389390
name = "main_dex_list_creator",
390391
srcs = ["main_dex_list_creator.sh"],
391392
data = [":main_dex_list_creator_java"],
@@ -563,7 +564,7 @@ def create_dummy_sdk_toolchain():
563564
executable = 1,
564565
)
565566

566-
native.sh_binary(name = "empty-binary", srcs = [":genrule"])
567+
sh_binary(name = "empty-binary", srcs = [":genrule"])
567568

568569
android_sdk(
569570
name = "sdk-dummy",

src/tools/java/com/google/devtools/build/android/BUILD

Lines changed: 27 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Actions for Android rules.
22

33
load("@rules_java//java:defs.bzl", "java_binary", "java_import", "java_library")
4+
load("//tools/android:defs.bzl", "run_singlejar")
45

56
package(default_visibility = ["//visibility:public"])
67

@@ -24,47 +25,55 @@ java_binary(
2425
runtime_deps = [":android_builder_lib"],
2526
)
2627

27-
genrule(
28+
run_singlejar(
2829
name = "zip_jar_gen",
2930
srcs = ["@android_tools//:all_android_tools_deploy.jar"],
30-
outs = ["zip.jar"],
31-
cmd = "unzip -q $< 'com/google/devtools/build/zip/*.class' && zip $@ $$(find . -name \"*.class\")",
31+
out = "zip.jar",
32+
include_prefixes = [
33+
"com/google/devtools/build/zip/",
34+
],
3235
)
3336

3437
java_import(
3538
name = "zip_jar",
3639
jars = [":zip_jar_gen"],
3740
)
3841

39-
genrule(
42+
run_singlejar(
4043
name = "singlejar_jar_gen",
4144
srcs = ["@android_tools//:all_android_tools_deploy.jar"],
42-
outs = ["singlejar.jar"],
43-
cmd = "unzip -q $< 'com/google/devtools/build/singlejar/*.class' && zip $@ $$(find . -name \"*.class\")",
45+
out = "singlejar.jar",
46+
include_prefixes = [
47+
"com/google/devtools/build/singlejar/",
48+
],
4449
)
4550

4651
java_import(
4752
name = "singlejar_jar",
4853
jars = [":singlejar_jar_gen"],
4954
)
5055

51-
genrule(
56+
run_singlejar(
5257
name = "databinding_exec_jar_gen",
5358
srcs = ["@android_tools//:all_android_tools_deploy.jar"],
54-
outs = ["databinding_exec.jar"],
55-
cmd = "unzip -q $< 'android/databinding/*.class' && zip $@ $$(find . -name \"*.class\")",
59+
out = "databinding_exec.jar",
60+
include_prefixes = [
61+
"android/databinding/",
62+
],
5663
)
5764

5865
java_import(
5966
name = "databinding_exec_jar",
6067
jars = [":databinding_exec_jar_gen"],
6168
)
6269

63-
genrule(
70+
run_singlejar(
6471
name = "kotlin_jar_gen",
6572
srcs = ["@android_tools//:all_android_tools_deploy.jar"],
66-
outs = ["kotlin.jar"],
67-
cmd = "unzip -q $< 'kotlin/*.class' && zip $@ $$(find . -name \"*.class\")",
73+
out = "kotlin.jar",
74+
include_prefixes = [
75+
"kotlin/",
76+
],
6877
)
6978

7079
java_import(
@@ -141,11 +150,14 @@ java_library(
141150
],
142151
)
143152

144-
genrule(
153+
run_singlejar(
145154
name = "android_common_jar_gen",
146155
srcs = ["@android_tools//:all_android_tools_deploy.jar"],
147-
outs = ["android_common_exec.jar"],
148-
cmd = "unzip -q $< 'com/google/wireless*.class' 'com/android/*.class' && zip $@ $$(find . -name \"*.class\")",
156+
out = "android_common_exec.jar",
157+
include_prefixes = [
158+
"com/google/wireless/",
159+
"com/android/",
160+
],
149161
)
150162

151163
java_import(

src/tools/java/com/google/devtools/build/android/desugar/BUILD

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# Description:
22
# Tool for desugaring Java constructs not supported by Android tools or devices.
33

4+
load("@rules_java//java:defs.bzl", "java_library")
5+
46
java_library(
57
name = "desugar",
68
tags = ["manual"],

src/tools/java/com/google/devtools/build/android/dexer/BUILD

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
# Description:
22
# Collection of dex utilities used in the bazel android actions.
33

4-
load("@rules_java//java:defs.bzl", "java_import", "java_library")
4+
load("@rules_java//java:defs.bzl", "java_binary", "java_import", "java_library")
5+
load("//tools/android:defs.bzl", "run_singlejar")
56

67
filegroup(
78
name = "srcs",
@@ -12,11 +13,13 @@ filegroup(
1213
],
1314
)
1415

15-
genrule(
16+
run_singlejar(
1617
name = "android_dex_from_android_tools_gen",
1718
srcs = ["@android_tools//:all_android_tools_deploy.jar"],
18-
outs = ["android_dex_from_android_tools.jar"],
19-
cmd = "unzip -q $< 'com/android/dex/*.class' && zip $@ $$(find . -name \"*.class\")",
19+
out = "android_dex_from_android_tools.jar",
20+
include_prefixes = [
21+
"com/android/dex/",
22+
],
2023
)
2124

2225
java_import(
@@ -80,10 +83,8 @@ java_library(
8083
"//src/tools/java/com/google/devtools/build/android:__pkg__",
8184
],
8285
runtime_deps = [
83-
"@bazel_tools//src/main/protobuf:worker_protocol_java_proto",
8486
"//src/tools/java/com/google/devtools/build/android:android_builder_lib",
85-
#"//third_party/android_dex", # For DexFileSplitter so that it doesn't rely on dx.
86-
"@androidsdk//:dx_jar_import",
87+
"@bazel_tools//src/main/protobuf:worker_protocol_java_proto",
8788
"@rules_android_maven//:com_google_auto_value_auto_value",
8889
"@rules_android_maven//:com_google_code_findbugs_jsr305",
8990
"@rules_android_maven//:com_google_guava_guava",

0 commit comments

Comments
 (0)