Bản tóm tắt về cờ Bazel

Việc điều hướng danh sách cờ dòng lệnh mở rộng của Bazel có thể là một thử thách. Trang này tập trung vào những cờ quan trọng nhất mà bạn cần biết.

Các lựa chọn chung hữu ích

Các cờ sau đây được dùng để đặt một cách rõ ràng trên dòng lệnh.

Cờ Mô tả

--config

Bạn có thể sắp xếp các cờ trong tệp .bazelrc thành các cấu hình, chẳng hạn như cấu hình để gỡ lỗi hoặc bản phát hành. Bạn có thể chọn các nhóm cấu hình bổ sung bằng --config=<group>.

--keep_going

Bazel nên cố gắng tiếp tục thực thi bản dựng và kiểm thử nhiều nhất có thể. Theo mặc định, Bazel sẽ nhanh chóng báo lỗi.

--remote_download_outputs

Khi sử dụng tính năng thực thi hoặc lưu vào bộ nhớ đệm từ xa (cả đĩa và từ xa), bạn có thể báo hiệu cho Bazel rằng bạn muốn tải tất cả các cấu phần phần mềm bản dựng (trung gian) xuống như sau:
--remote_download_outputs=all
Theo mặc định, Bazel chỉ tải các cấu phần phần mềm cấp cao nhất xuống, chẳng hạn như tệp nhị phân cuối cùng, và các cấu phần phần mềm trung gian cần thiết cho các hành động cục bộ.

--stamp

Thêm thông tin bản dựng (người dùng, dấu thời gian) vào tệp nhị phân.

Khám phá các vấn đề về bản dựng và kiểm thử

Các cờ sau đây có thể giúp bạn hiểu rõ hơn về lỗi bản dựng hoặc lỗi kiểm thử của Bazel.

Cờ Mô tả

--announce_rc

Cho biết những cờ được đặt ngầm thông qua các tệp .bazelrc do người dùng, máy hoặc dự án xác định.

--auto_output_filter

Theo mặc định, Bazel cố gắng ngăn chặn nội dung rác trong nhật ký và chỉ in cảnh báo của trình biên dịch và đầu ra gỡ lỗi Starlark cho các gói và gói con được yêu cầu trên dòng lệnh. Để tắt tất cả tính năng lọc, hãy đặt --auto_output_filter=none.

--sandbox_debug

Cho phép bạn đi sâu vào các lỗi hộp cát. Để biết thông tin chi tiết về lý do Bazel tạo hộp cát cho các bản dựng theo mặc định và những nội dung được tạo hộp cát, hãy xem tài liệu về hộp cát.

--subcommands (-s)

Hiển thị danh sách đầy đủ của mọi lệnh mà Bazel chạy trong quá trình bản dựng, bất kể lệnh đó thành công hay không

Khởi động

Cờ Mô tả

--bazelrc

Bạn có thể chỉ định các lựa chọn mặc định của Bazel trong các tệp .bazelrc. Nếu có nhiều tệp .bazelrc, bạn có thể chọn tệp .bazelrc nào được sử dụng bằng cách thêm --bazelrc=<path to the .bazelrc file>.

--host_jvm_args

Giới hạn dung lượng RAM mà máy chủ Bazel sử dụng. Ví dụ: lệnh sau đây giới hạn kích thước vùng nhớ khối xếp của Bazel ở mức 3 GB:
--host_jvm_args=-Xmx3g

--output_base

Kiểm soát cây đầu ra của Bazel. Bazel không lưu trữ dữ liệu đầu ra của bản dựng, bao gồm cả nhật ký, trong chính cây nguồn. Thay vào đó, Bazel sử dụng một cây đầu ra riêng biệt cho mục đích này.

Kiểm thử Bazel

Các cờ sau đây có liên quan đến kiểm thử Bazel

Cờ Mô tả

--java_debug

Yêu cầu các bài kiểm thử Java chờ kết nối trình gỡ lỗi trước khi được thực thi.

--runs_per_test

Số lần chạy kiểm thử. Ví dụ: để chạy kiểm thử N lần, hãy thêm --runs_per_test=N. Điều này có thể hữu ích để gỡ lỗi các bài kiểm thử không ổn định và xem liệu bản sửa lỗi có khiến bài kiểm thử vượt qua một cách nhất quán hay không.

--test_output

Chỉ định chế độ đầu ra. Theo mặc định, Bazel ghi lại đầu ra kiểm thử trong các tệp nhật ký cục bộ. Khi lặp lại một bài kiểm thử bị lỗi, bạn thường muốn sử dụng --test_output=streamed để xem đầu ra kiểm thử theo thời gian thực.

Chạy Bazel

Các cờ sau đây có liên quan đến việc chạy Bazel.

Cờ Mô tả

--run_under

Thay đổi cách gọi các tệp thực thi. Ví dụ: --run_under="strace -c" thường được dùng để gỡ lỗi.

Các lựa chọn bazelrc dành riêng cho người dùng

Các cờ sau đây có liên quan đến các lựa chọn .bazelrc dành riêng cho người dùng.

Cờ Mô tả

--disk_cache

Đường dẫn đến một thư mục nơi Bazel có thể đọc và ghi các hành động và đầu ra của hành động. Nếu thư mục không tồn tại, thì thư mục đó sẽ được tạo. Bạn có thể chia sẻ các cấu phần phần mềm bản dựng giữa nhiều nhánh hoặc không gian làm việc và tăng tốc các bản dựng Bazel bằng cách thêm --disk_cache=<path> vào lệnh.

--jobs

Số lượng công việc đồng thời cần chạy. Thông thường, bạn chỉ cần thực hiện việc này khi sử dụng tính năng thực thi từ xa, trong đó một cụm bản dựng từ xa thực thi nhiều công việc hơn số lõi mà bạn có cục bộ.

--local_resources

Giới hạn mức sử dụng CPU hoặc RAM của các hành động đang chạy cục bộ.

--sandbox_base

Cho phép hộp cát tạo các thư mục hộp cát bên dưới đường dẫn này. Theo mặc định, Bazel thực thi các hành động cục bộ được tạo hộp cát, điều này làm tăng một số chi phí cho bản dựng.

Các lựa chọn bazelrc dành riêng cho dự án

Các cờ sau đây có liên quan đến các lựa chọn .bazelrc dành riêng cho dự án.

Cờ Mô tả

--flaky_test_attempts

Thử lại từng bài kiểm thử tối đa số lần được chỉ định trong trường hợp có bất kỳ lỗi kiểm thử nào. Điều này đặc biệt hữu ích trong Tích hợp liên tục. Các bài kiểm thử yêu cầu nhiều lần thử mới vượt qua sẽ được đánh dấu là FLAKY trong bản tóm tắt kiểm thử.

--remote_cache

URI của một điểm cuối lưu vào bộ nhớ đệm. Việc thiết lập tính năng lưu vào bộ nhớ đệm từ xa có thể là một cách tuyệt vời để tăng tốc các bản dựng Bazel. Bạn có thể kết hợp tính năng này với bộ nhớ đệm đĩa cục bộ.

--remote_download_regex

Buộc tải các dữ liệu đầu ra của bản dựng từ xa có đường dẫn khớp với mẫu này xuống, bất kể chế độ cài đặt --remote_download_outputs. Bạn có thể chỉ định nhiều mẫu bằng cách lặp lại cờ này.

--remote_executor

HOST hoặc HOST:PORT của một điểm cuối thực thi từ xa. Truyền điểm cuối này nếu bạn đang sử dụng dịch vụ thực thi từ xa. Bạn thường cần thêm --remote_instance_name=<name>.

--remote_instance_name

Giá trị cần truyền dưới dạng instance_name trong API thực thi từ xa.

--show-timestamps

Nếu được chỉ định, dấu thời gian sẽ được thêm vào mỗi thông báo do Bazel tạo, cho biết thời điểm thông báo được hiển thị. Điều này hữu ích trên các hệ thống CI để nhanh chóng hiểu được bước nào mất bao lâu.

--spawn_strategy

Ngay cả khi thực thi từ xa, việc chạy một số hành động bản dựng cục bộ có thể nhanh hơn. Điều này phụ thuộc vào các yếu tố như dung lượng của cụm bản dựng, tốc độ mạng và độ trễ mạng.