Bazel là một công cụ xây dựng nhanh, chính xác và có khả năng mở rộng , với tính năng kiểm thử tích hợp hỗ trợ nhiều ngôn ngữ, kho lưu trữ và nền tảng trong một hệ sinh thái hàng đầu trong ngành.
Bazel hoạt động nhanh
Bazel biết chính xác những tệp đầu vào mà mỗi lệnh xây dựng cần, tránh công việc không cần thiết bằng cách chỉ chạy lại khi tập hợp tệp đầu vào đã thay đổi giữa mỗi bản dựng. Công cụ này chạy các lệnh xây dựng với mức độ song song cao nhất có thể, trong cùng một máy tính hoặc trên các nút xây dựng từ xa. Nếu cấu trúc của bản dựng cho phép, thì công cụ này có thể chạy hàng nghìn lệnh xây dựng hoặc kiểm thử cùng một lúc.
Tính năng này được hỗ trợ bởi nhiều lớp bộ nhớ đệm, trong bộ nhớ, trên đĩa và trên trang trại xây dựng từ xa (nếu có). Tại Google, chúng tôi thường xuyên đạt được tỷ lệ kết quả tìm kiếm trong bộ nhớ cache trên 99%.
Bazel hoạt động chính xác
Bazel đảm bảo rằng các tệp nhị phân của bạn được xây dựng chỉ từ mã nguồn của riêng bạn. Các thao tác của Bazel chạy trong các hộp cát riêng lẻ và Bazel theo dõi mọi tệp đầu vào của bản dựng, chỉ và luôn chạy lại các lệnh xây dựng khi cần. Điều này giúp các tệp nhị phân của bạn luôn được cập nhật để cùng một mã nguồn luôn cho ra cùng một tệp nhị phân, từng bit một.
Bạn không cần phải gọi make clean liên tục và không cần phải tìm lỗi ảo thực ra đã được giải quyết trong mã nguồn chưa bao giờ được xây dựng.
Bazel có khả năng mở rộng
Khai thác toàn bộ sức mạnh của Bazel bằng cách viết các quy tắc và macro của riêng bạn để tuỳ chỉnh Bazel cho các nhu cầu cụ thể của bạn trên nhiều dự án.
Các quy tắc của Bazel được viết bằng Starlark, ngôn ngữ lập trình nội bộ của chúng tôi là một tập hợp con của Python. Starlark giúp hầu hết nhà phát triển có thể viết quy tắc, đồng thời tạo các quy tắc có thể được sử dụng trên toàn bộ hệ sinh thái.
Kiểm thử tích hợp
Trình chạy kiểm thử tích hợp của Bazel biết và chỉ chạy những kiểm thử cần chạy lại, sử dụng tính năng thực thi từ xa (nếu có) để chạy song song. Phát hiện sớm các lỗi không ổn định bằng cách sử dụng tính năng thực thi từ xa để nhanh chóng chạy kiểm thử hàng nghìn lần.
Bazel cung cấp các tiện ích để tải kết quả kiểm thử lên một vị trí trung tâm, nhờ đó tạo điều kiện thuận lợi cho việc truyền đạt hiệu quả kết quả kiểm thử, dù là trên CI hay do các nhà phát triển riêng lẻ.
Hỗ trợ đa ngôn ngữ
Bazel hỗ trợ nhiều ngôn ngữ lập trình phổ biến, bao gồm C++, Java, Kotlin, Python, Go và Rust. Bạn có thể xây dựng nhiều tệp nhị phân (ví dụ: phần phụ trợ, giao diện người dùng web và ứng dụng di động) trong cùng một lệnh gọi Bazel mà không bị giới hạn ở công cụ xây dựng thành ngữ của một ngôn ngữ.
Hỗ trợ nhiều kho lưu trữ
Bazel có thể thu thập mã nguồn từ nhiều vị trí: bạn không cần phải cung cấp các phần phụ thuộc (nhưng bạn có thể!), thay vào đó, bạn có thể trỏ Bazel đến vị trí của mã nguồn hoặc các cấu phần phần mềm được tạo sẵn (ví dụ: kho lưu trữ git hoặc Maven Central) và công cụ này sẽ xử lý phần còn lại.
Hỗ trợ nhiều nền tảng
Bazel có thể đồng thời xây dựng các dự án cho nhiều nền tảng, bao gồm Linux, macOS, Windows và Android. Công cụ này cũng cung cấp các khả năng biên dịch chéo mạnh mẽ để xây dựng mã cho một nền tảng trong khi chạy bản dựng trên một nền tảng khác.
Hệ sinh thái rộng lớn
Các công ty hàng đầu trong ngành yêu thích Bazel, xây dựng một cộng đồng lớn gồm các nhà phát triển sử dụng và đóng góp cho Bazel. Tìm các công cụ, dịch vụ và tài liệu, bao gồm dịch vụ tư vấn và dịch vụ SaaS mà Bazel có thể sử dụng. Khám phá các tiện ích như hỗ trợ ngôn ngữ lập trình trong kho lưu trữ phần mềm nguồn mở của chúng tôi.