1+ load ("@bazel_skylib//lib:selects.bzl" , "selects" )
12load ("@rules_rust//rust:defs.bzl" , "rust_library" , "rust_test" )
23
4+ # Platform configurations for protoc
5+ PLATFORM_OS_ARCH = [
6+ ("linux" , "aarch64" ),
7+ ("linux" , "x86_64" ),
8+ ("macos" , "aarch64" ),
9+ ("macos" , "x86_64" ),
10+ ("windows" , "aarch64" ),
11+ ("windows" , "x86_64" ),
12+ ]
13+
14+ [
15+ selects .config_setting_group (
16+ name = "{}_{}" .format (
17+ os .replace ("macos" , "osx" ),
18+ arch .replace ("aarch64" , "aarch_64" ),
19+ ),
20+ match_all = [
21+ "@platforms//cpu:{}" .format (arch ),
22+ "@platforms//os:{}" .format (os ),
23+ ],
24+ )
25+ for (os , arch ) in PLATFORM_OS_ARCH
26+ ]
27+
28+ PLATFORM_NAMES = [
29+ "{}_{}" .format (
30+ os .replace ("macos" , "osx" ),
31+ arch .replace ("aarch64" , "aarch_64" ),
32+ )
33+ for (os , arch ) in PLATFORM_OS_ARCH
34+ ]
35+
36+ # Generate Rust code from CRI proto files
37+ genrule (
38+ name = "gen_cri_protos" ,
39+ srcs = ["proto/cri/api.proto" ],
40+ outs = ["runtime.v1.pb.rs" ],
41+ cmd = select ({
42+ platform : '''
43+ set -e
44+ export PROTOC=$(execpath @@toolchains_protoc++protoc+toolchains_protoc_hub.{}//:bin/protoc)
45+
46+ $(execpath //nativelink-proto:gen_protos_tool) $(SRCS) -o $(RULEDIR)
47+
48+ for file in $(RULEDIR)/*.rs; do
49+ mv -- "$$file" "$${{file%.rs}}.pb.rs"
50+ done
51+ ''' .format (platform )
52+ for platform in PLATFORM_NAMES
53+ }),
54+ tools = [
55+ "//nativelink-proto:gen_protos_tool" ,
56+ ] + select ({
57+ platform : ["@@toolchains_protoc++protoc+toolchains_protoc_hub.{}//:bin/protoc" .format (platform )]
58+ for platform in PLATFORM_NAMES
59+ }),
60+ )
61+
362rust_library (
463 name = "nativelink-crio-worker-pool" ,
564 srcs = [
665 "src/cache.rs" ,
766 "src/config.rs" ,
867 "src/cri_client.rs" ,
68+ "src/cri_client_grpc.rs" ,
69+ "src/isolation.rs" ,
970 "src/lib.rs" ,
1071 "src/lifecycle.rs" ,
1172 "src/pool_manager.rs" ,
1273 "src/warmup.rs" ,
1374 "src/worker.rs" ,
75+ ":gen_cri_protos" ,
76+ ],
77+ compile_data = [
78+ ":gen_cri_protos" ,
1479 ],
80+ tags = ["no-clippy" ],
1581 visibility = ["//visibility:public" ],
1682 deps = [
83+ "//nativelink-config" ,
1784 "//nativelink-error" ,
85+ "//nativelink-metric" ,
1886 "//nativelink-util" ,
87+ "@crates//:hyper-util" ,
88+ "@crates//:prost" ,
1989 "@crates//:serde" ,
2090 "@crates//:serde_json" ,
2191 "@crates//:serde_with" ,
2292 "@crates//:tempfile" ,
2393 "@crates//:tokio" ,
94+ "@crates//:tonic" ,
95+ "@crates//:tower" ,
2496 "@crates//:tracing" ,
2597 "@crates//:uuid" ,
2698 ],
@@ -29,4 +101,5 @@ rust_library(
29101rust_test (
30102 name = "unit_tests" ,
31103 crate = ":nativelink-crio-worker-pool" ,
104+ tags = ["no-clippy" ],
32105)
0 commit comments