Bazel là một công cụ kiểm thử và bản dựng nguồn mở tương tự như Make, Maven và Gradle. Công cụ này sử dụng một ngôn ngữ bản dựng cấp cao và dễ đọc. Bazel hỗ trợ các dự án bằng nhiều ngôn ngữ và tạo kết quả cho nhiều nền tảng. Hỗ trợ Bazel cơ sở mã lớn trên nhiều kho lưu trữ và số lượng người dùng lớn.
Lợi ích
Bazel có những ưu điểm sau:
Ngôn ngữ bản dựng cấp cao. Bazel sử dụng một thuật toán trừu tượng mà con người có thể đọc được để mô tả các thuộc tính bản dựng của dự án ở mức cao. ngữ nghĩa. Không giống như những công cụ khác, Bazel hoạt động dựa trên các khái niệm thư viện, tệp nhị phân, tập lệnh và tập dữ liệu, giúp bạn tránh độ phức tạp của việc ghi lệnh gọi riêng lẻ đến các công cụ như trình biên dịch và trình liên kết.
Bazel rất nhanh và đáng tin cậy. Bazel lưu mọi công việc đã thực hiện trước đó vào bộ nhớ đệm và theo dõi thay đổi đối với cả nội dung tệp và lệnh tạo. Bằng cách này, Bazel biết khi nào cần xây dựng lại một thứ gì đó và chỉ cần xây dựng lại thứ đó. Để nâng cao giúp tăng tốc các bản dựng, bạn có thể thiết lập dự án để tạo kiểu song song và tăng dần.
Bazel hoạt động trên nhiều nền tảng. Bazel chạy trên Linux, macOS và Windows. Bazel sản xuất có thể tạo tệp nhị phân và gói có thể triển khai cho nhiều nền tảng, bao gồm máy tính, máy chủ và thiết bị di động, từ cùng một dự án.
Tiếng Bazel cân. Bazel duy trì sự linh hoạt khi xử lý các bản dựng có hơn 100 nghìn tệp nguồn. Giải pháp này hoạt động với nhiều kho lưu trữ và cơ sở người dùng trong hàng chục trong tổng số hàng nghìn.
Baazel có thể mở rộng. Nhiều ngôn ngữ và bạn có thể mở rộng Bazel để hỗ trợ bất kỳ ngôn ngữ nào khác hoặc khung.
Sử dụng Bazel
Để tạo hoặc kiểm thử một dự án bằng Bazel, bạn thường làm như sau:
Thiết lập Bazel. Tải xuống và cài đặt Bazel.
Thiết lập một không gian làm việc cho dự án thư mục nơi Bazel tìm kiếm đầu vào của bản dựng và các tệp
BUILD
, cũng như nơi Bazel lưu trữ đầu ra của bản dựng.Viết một tệp
BUILD
để cho Bazel biết những gì cần tạo và cách xây dựng tạo dựng nó.Bạn viết tệp
BUILD
bằng cách khai báo các mục tiêu bản dựng sử dụng Starlark, một ngôn ngữ dành riêng cho một miền. (Xem ví dụ tại đây.)Mục tiêu bản dựng chỉ định một tập hợp các cấu phần phần mềm đầu vào mà Bazel sẽ tạo cộng thêm các phần phụ thuộc của chúng, quy tắc xây dựng mà Bazel sẽ sử dụng để tạo quy tắc đó và các tuỳ chọn để định cấu hình quy tắc bản dựng.
Quy tắc bản dựng chỉ định các công cụ xây dựng mà Bazel sẽ sử dụng, chẳng hạn như trình biên dịch và trình liên kết và cấu hình của chúng. Bazel cung cấp một số quy tắc xây dựng bao gồm các loại cấu phần phần mềm phổ biến nhất bằng các ngôn ngữ được hỗ trợ trên nền tảng được hỗ trợ.
Chạy Bazel từ dòng lệnh. Bazel sản xuất đặt dữ liệu đầu ra của bạn vào không gian làm việc.
Ngoài việc xây dựng, bạn cũng có thể sử dụng Bazel để chạy kiểm thử và truy vấn bản dựng để theo dõi các phần phụ thuộc trong mã của bạn.
Quy trình xây dựng Bazel
Khi chạy một bản dựng hoặc kiểm thử, Bazel thực hiện những việc sau:
Tải các tệp
BUILD
liên quan đến mục tiêu.Phân tích thông tin đầu vào và phần phụ thuộc, áp dụng bản dựng đã chỉ định quy tắc và tạo một hành động biểu đồ.
Thực thi các hành động tạo bản dựng trên dữ liệu đầu vào cho đến khi tạo ra bản dựng hoàn chỉnh được tạo.
Vì tất cả công việc xây dựng trước đó đều được lưu vào bộ nhớ đệm, nên Bazel có thể xác định và sử dụng lại các bản dựng đã lưu vào bộ nhớ đệm cấu phần phần mềm và chỉ tạo lại hoặc kiểm tra lại những gì đã thay đổi. Để thực thi hơn nữa về tính chính xác, bạn có thể thiết lập Bazel để chạy các bản dựng và kiểm thử một cách thuần tuý thông qua hộp cát, giảm thiểu độ lệch và tối đa hoá khả năng tái tạo.
Biểu đồ hành động
Biểu đồ hành động thể hiện các cấu phần phần mềm của bản dựng, mối quan hệ giữa chúng, và các thao tác tạo bản dựng mà Bazel sẽ thực hiện. Nhờ biểu đồ này, Bazel có thể theo dõi thay đổi thành nội dung tệp cũng như các thay đổi đối với hành động, chẳng hạn như tạo hoặc kiểm tra lệnh và công việc xây dựng nào đã được thực hiện trước đó. Biểu đồ này cũng cho phép bạn dễ dàng theo dõi các phần phụ thuộc trong mã của mình.
Hướng dẫn bắt đầu
Để bắt đầu sử dụng Bazel, hãy xem phần Bắt đầu hoặc chuyển đến trực tiếp đến các hướng dẫn về Bazel: