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

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

Các tuỳ chọn chung hữu ích

Bạn cần đặt rõ ràng các cờ sau 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ác cờ để gỡ lỗi hoặc phát hành bản dựng. 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 hết sức để tiếp tục quá trình xây dựng và thực thi kiểm 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 từ xa hoặc lưu vào bộ nhớ đệm (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ấ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 (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 thao tác 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ử Bazel.

Cờ Mô tả

--announce_rc

Cho biết cờ nào đượ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 nhật ký rác 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 thành --auto_output_filter=none.

--sandbox_debug

Cho phép bạn tìm hiểu sâu về các lỗi trong 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 đưa vào hộp cát, hãy xem tài liệu về hộp cát của chúng tôi.

--subcommands (-s)

Hiển thị danh sách đầy đủ mọi lệnh mà Bazel chạy trong quá trình tạo 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 tuỳ chọn Bazel mặc định trong tệp .bazelrc. Nếu có nhiều tệp .bazelrc, bạn có thể chọn tệp .bazelrc sẽ đượ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ụ: nội dung sau đây giới hạn kích thước vùng nhớ khối xếp Bazel ở mức 3GB:
--host_jvm_args=-Xmx3g

--output_base

Kiểm soát cây đầu ra của Bazel. Bazel không lưu trữ kết quả bản dựng, bao gồm cả nhật ký, trong chính cây nguồn. Thay vào đó, nó 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 liên quan đến kiểm thử Bazel

Cờ Mô tả

--java_debug

Khiến các chương trình 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 kiểm thử không ổn định và xem liệu một bản sửa lỗi có giúp kiểm thử luôn vượt qua hay không.

--test_filter

Cờ này đặc biệt hữu ích khi lặp lại một phương thức kiểm thử, chẳng hạn như khi một thay đổi bạn thực hiện làm hỏng một kiểm thử. Thay vì chạy lại tất cả các phương thức kiểm thử trong bộ kiểm thử, bạn có thể chỉ tập trung vào(các) kiểm thử cụ thể không thành công. Điều này cho phép phản hồi nhanh hơn và gỡ lỗi hiệu quả hơn. Cờ này thường được sử dụng kết hợp với --test_output=streamed để xuất kết quả kiểm thử theo thời gian thực.

--test_output

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

Chạy Bazel

Các cờ sau đây liên quan đến quá trình 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.

Tuỳ chọn bazelrc dành riêng cho người dùng

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

Cờ Mô tả

--disk_cache

Đường dẫn đến thư mục mà Bazel có thể đọc và ghi các hành động cũng như kết quả hành động. Nếu thư mục không tồn tại, thư mục đó sẽ được tạo. Bạn có thể chia sẻ 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 bản dựng Bazel bằng cách thêm --disk_cache=<path> vào lệnh của bạn.

--jobs

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

--local_resources

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

--sandbox_base

Cho phép hộp cát tạo 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ộ trong hộp cát, làm tăng thêm một số chi phí cho bản dựng.

Các tuỳ chọn bazelrc dành riêng cho dự án

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

Cờ Mô tả

--flaky_test_attempts

Thử lại từng kiểm thử tối đa theo số lần được chỉ định trong trường hợp kiểm thử không thành công. Điều này đặc biệt hữu ích khi 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 đạt được sẽ được đánh dấu là FLAKY trong phần tóm tắt kiểm thử.

--remote_cache

URI của đ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 hay để tăng tốc bản dựng Bazel. Bạn có thể kết hợp với bộ nhớ đệm ổ đĩa cục bộ.

--remote_download_regex

Buộc tải các đầu ra 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 điểm cuối thực thi từ xa. Truyền giá trị 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 rất 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ố thao tác tạo bản dựng trên máy 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.