Skip to content

Commit e25bcb3

Browse files
Willy Zhangtimothytrippel
authored andcommitted
Modernize Bazel setup: Upgrade to 8.0.1 and use Bazelisk
Signed-off-by: Willy Zhang <[email protected]>
1 parent 75a8747 commit e25bcb3

File tree

9 files changed

+12044
-13597
lines changed

9 files changed

+12044
-13597
lines changed

.bazelversion

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
7.3.1
1+
8.0.1

.github/workflows/main.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
- name: Prepare environment
1717
uses: ./.github/actions/prepare-env
1818
- name: Run linter checks
19-
run: bazel test //quality/... --test_output=errors
19+
run: bazelisk test //quality/... --test_output=errors
2020

2121
# Build and test everything in the codebase (except the FPGA tests).
2222
build_and_test:
@@ -28,9 +28,9 @@ jobs:
2828
lfs: true
2929
- name: Build everything
3030
run: |
31-
bazel build //...
32-
bazel build --//src/pa/services:use_vendor_shim //src/pa/services:pa
33-
bazel run //release:release -- \
31+
bazelisk build //...
32+
bazelisk build --//src/pa/services:use_vendor_shim //src/pa/services:pa
33+
bazelisk run //release:release -- \
3434
--norelease \
3535
--copy "${PWD}/artifacts" \
3636
"no_tag_not_a_release"
@@ -41,7 +41,7 @@ jobs:
4141
path: artifacts/*
4242
- name: Test everything
4343
# Skip running lint tests as those are run in a previous stage.
44-
run: bazel test --test_tag_filters=-lint,-fpga //...
44+
run: bazelisk test --test_tag_filters=-lint,-fpga //...
4545

4646
# Run integration tests.
4747
integration_tests:

MODULE.bazel

Lines changed: 36 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,38 @@ bazel_dep(name = "platforms", version = "0.0.11")
3535
bazel_dep(name = "rules_cc", version = "0.1.2")
3636
bazel_dep(name = "rules_fuzzing", version = "0.5.2")
3737
bazel_dep(name = "rules_pkg", version = "1.0.1")
38-
bazel_dep(name = "rules_proto", version = "6.0.2")
38+
bazel_dep(name = "rules_proto", version = "7.0.2")
3939
bazel_dep(name = "aspect_rules_lint", version = "1.0.8")
40+
bazel_dep(name = "rules_apple", version = "3.16.1")
4041
bazel_dep(name = "rules_rust", version = "0.59.2")
42+
bazel_dep(name = "protobuf", version = "29.0", repo_name = "com_google_protobuf")
43+
bazel_dep(name = "gazelle", version = "0.41.0", repo_name = "bazel_gazelle")
44+
45+
# Use a modern gRPC (compatible with Protobuf 27+)
46+
bazel_dep(name = "grpc", version = "1.66.0.bcr.3", repo_name = "com_github_grpc_grpc")
47+
single_version_override(
48+
module_name = "grpc",
49+
patch_strip = 0,
50+
patches = [
51+
"third_party/google/grpc_windows_config_setting.patch",
52+
"third_party/google/grpc_windows_endpoint_fix.patch",
53+
],
54+
)
55+
56+
# Explicitly add upb (required by gRPC 1.66+ in Bzlmod)
57+
bazel_dep(name = "upb", version = "0.0.0-20230907-e7430e6")
58+
bazel_dep(name = "rules_foreign_cc", version = "0.9.0")
59+
single_version_override(
60+
module_name = "rules_foreign_cc",
61+
version = "0.9.0",
62+
)
63+
64+
# Go Toolchain: Used for Go code
65+
bazel_dep(name = "rules_go", version = "0.52.0", repo_name = "io_bazel_rules_go")
66+
single_version_override(
67+
module_name = "rules_go",
68+
version = "0.52.0",
69+
)
4170

4271
# Protobuf matchers for googletest
4372
http_archive = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
@@ -73,47 +102,12 @@ http_archive(
73102
urls = ["https://github.com/inazarenko/protobuf-matchers/archive/7c8e15741bcea83db7819cc472c3e96301a95158.zip"],
74103
)
75104

76-
# Use a modern gRPC (compatible with Protobuf 27+)
77-
bazel_dep(name = "grpc", version = "1.66.0.bcr.3", repo_name = "com_github_grpc_grpc")
78-
single_version_override(
79-
module_name = "grpc",
80-
patch_strip = 0,
81-
patches = [
82-
"third_party/google/grpc_windows_config_setting.patch",
83-
"third_party/google/grpc_windows_endpoint_fix.patch",
84-
],
85-
)
86-
87-
# Pin Protobuf explicitly to ensure sync
88-
bazel_dep(name = "protobuf", version = "27.3", repo_name = "com_google_protobuf")
89-
90-
# Explicitly add upb (required by gRPC 1.66+ in Bzlmod)
91-
bazel_dep(name = "upb", version = "0.0.0-20230907-e7430e6")
92-
bazel_dep(name = "rules_foreign_cc", version = "0.9.0")
93-
single_version_override(
94-
module_name = "rules_foreign_cc",
95-
version = "0.9.0",
96-
)
97-
98-
bazel_dep(name = "rules_apple", version = "3.5.1", repo_name = "build_bazel_rules_apple")
99-
bazel_dep(name = "rules_swift", version = "1.18.0", repo_name = "build_bazel_rules_swift")
100-
101-
# Go Toolchain: Used for Go code
102-
bazel_dep(name = "rules_go", version = "0.52.0", repo_name = "io_bazel_rules_go")
103-
single_version_override(
104-
module_name = "rules_go",
105-
version = "0.52.0",
106-
)
107-
108105
go_sdk = use_extension("@io_bazel_rules_go//go:extensions.bzl", "go_sdk")
109106
go_sdk.download(version = "1.24.0")
110107
use_repo(go_sdk, "go_default_sdk")
111108

112109
register_toolchains("@go_default_sdk//:all")
113110

114-
# Gazelle: Tool to generate Bazel build files for Go (and others)
115-
bazel_dep(name = "gazelle", version = "0.41.0", repo_name = "bazel_gazelle")
116-
117111
# Go Dependencies
118112
go_deps = use_extension("@bazel_gazelle//:extensions.bzl", "go_deps")
119113
go_deps.from_file(go_mod = "//:go.mod")
@@ -175,7 +169,7 @@ crate.from_cargo(
175169
manifests = ["@lowrisc_opentitan//third_party/rust:Cargo.toml"],
176170
supported_platform_triples = ["x86_64-unknown-linux-gnu"],
177171
)
178-
use_repo(crate, crate_index = "provisioning_index")
172+
use_repo(crate, "crate_index", "provisioning_index")
179173

180174
# Dev dependencies:
181175
bazel_dep(
@@ -283,9 +277,11 @@ http_archive(
283277
http_archive(
284278
name = "io_bazel_rules_docker",
285279
patch_args = ["-p1"],
286-
patches = ["//third_party/docker:rules_docker_fix.patch"],
287-
sha256 = "b1e80761a8a8243d03ebca8845e9cc1ba6c82ce7c5179ce2b295cd36f7e394bf",
288-
urls = ["https://github.com/bazelbuild/rules_docker/releases/download/v0.25.0/rules_docker-v0.25.0.tar.gz"],
280+
patches = [
281+
"//third_party/docker:rules_docker_fix.patch",
282+
],
283+
sha256 = "f6dcb97e992f13bc9effd794e9bb300f06b0dadc88061f81ae68d8d5994be964",
284+
urls = ["https://github.com/bazelbuild/rules_docker/releases/download/v0.26.0/rules_docker-v0.26.0.tar.gz"],
289285
)
290286

291287
http_file = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_file")

0 commit comments

Comments
 (0)