Giới thiệu về Bazel

Báo cáo vấn đề Xem nguồn

Bazel là một công cụ kiểm thử và xây dựng nguồn mở tương tự như Make, Maven và Gradle. Sử dụng ngôn ngữ xây 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 đầu ra cho nhiều nền tảng. Bazel hỗ trợ cơ sở mã lớn trên nhiều kho lưu trữ và số lượng lớn người dùng.

Lợi ích

Bazel cung cấp những ưu điểm sau:

  • Ngôn ngữ xây dựng cấp cao. Bazel sử dụng ngôn ngữ trừu tượng mà con người có thể đọc được để mô tả thuộc tính xây dựng của dự án ở mức độ ngữ nghĩa cao. Không giống như các công cụ khác, Bazel hoạt động dựa trên các khái niệm của thư viện, tệp nhị phân, tập lệnh và tập dữ liệu, giúp bạn không gặp phải khó khăn khi viết từng lệnh gọi đến các công cụ như trình biên dịch và trình liên kết.

  • Bazel hoạt động nhanh và ổn định. Bazel lưu tất cả công việc đã thực hiện trước đó vào bộ nhớ đệm và theo dõi các thay đổi đối với cả nội dung tệp và lệnh tạo. Bằng cách này, Bazel sẽ biết khi nào cần xây dựng lại thứ gì đó và chỉ xây dựng lại điều đó. Để tăng tốc hơn nữa các bản dựng, bạn có thể thiết lập dự án của mình theo cách song song và có mức độ gia tăng cao.

  • Bazel là một nền tảng đa nền tảng. Bazel chạy trên Linux, macOS và Windows. Bazel có thể tạo các tệp nhị phân và gói có thể triển khai cho nhiều nền tảng, bao gồm cả máy tính, máy chủ và thiết bị di động từ cùng một dự án.

  • Bazel vảy. Bazel duy trì tính linh hoạt trong khi xử lý các bản dựng có hơn 100 nghìn tệp nguồn. Công cụ 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 nghìn.

  • Bazel có thể mở rộng được. Chúng tôi hỗ trợ nhiều ngôn ngữ và bạn có thể mở rộng Bazel để hỗ trợ mọi ngôn ngữ hoặc khung khác.

Sử dụng Bazel

Để xây dựng hoặc kiểm thử một dự án bằng Bazel, bạn thường làm như sau:

  1. Thiết lập Bazel. Tải và cài đặt Bazel.

  2. Thiết lập một không gian làm việc dự án, là thư mục nơi Bazel tìm kiếm dữ liệu đầu vào của bản dựng và BUILD tệp, đồng thời là nơi lưu trữ đầu ra của bản dựng.

  3. Viết một tệp BUILD để cho Bazel biết nội dung cần xây dựng và cách tạo.

    Bạn viết tệp BUILD bằng cách khai báo mục tiêu bản dựng thông qua Starlark, một ngôn ngữ miền cụ thể. (Xem ví dụ tại đây.)

    Mục tiêu của 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 với các phần phụ thuộc, quy tắc bản dựng mà Bazel sẽ sử dụng để tạo bản dựng đó và các tuỳ chọn định cấu hình quy tắc xây dựng.

    Quy tắc xây dựng chỉ định các công cụ bản 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, cũng như cấu hình của các công cụ đó. Bazel đưa ra một số quy tắc xây dựng đề cập đến 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 các nền tảng được hỗ trợ.

  4. Chạy Bazel qua dòng lệnh. Bazel đặt đầu ra 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ửtruy vấn bản dựng để theo dõi các phần phụ thuộc trong mã.

Quy trình xây dựng Bazel

Khi chạy một bản dựng hoặc kiểm thử, Bazel sẽ thực hiện những việc sau:

  1. Tải các tệp BUILD liên quan đến mục tiêu.

  2. Phân tích các đầu vào và phần phụ thuộc của chúng, áp dụng các quy tắc xây dựng được chỉ định và tạo biểu đồ hành động.

  3. Thực thi các hành động xây dựng trên dữ liệu đầu vào cho đến khi tạo ra kết quả của bản dựng cuối cùng.

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 cấu phần phần mềm được lưu vào bộ nhớ đệm và chỉ tạo lại hoặc thử nghiệm lại những gì đã thay đổi. Để thực thi chính xác hơn nữa, 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 khép kín thông qua hộp cát, giảm thiểu độ lệch và tối đa hoá khả năng tái lập.

Biểu đồ hành động

Biểu đồ thao tác đại diện cho cấu phần phần mềm bản dựng, mối quan hệ giữa chúng và 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 các thay đổi đối với nội dung tệp cũng như các thay đổi đối với hành động, chẳng hạn như lệnh tạo hoặc kiểm thử và biết công việc xây dựng nào đã được thực hiện trước đó. Biểu đồ cũng cho phép bạn dễ dàng theo dõi các phần phụ thuộc trong mã.

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 thẳng đến hướng dẫn của Bazel: