Giới thiệu về Bazel

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. Công cụ này sử dụng ngôn ngữ bản dựng cấp cao, mà con người có thể đọc được. Bazel hỗ trợ các dự án bằng nhiều ngôn ngữ và tạo bản dựng đầ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 người dùng lớn.

Lợi ích

Bazel mang lại 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ả các thuộc tính bản dựng của dự án ở cấp độ ngữ nghĩa cao. Không giống như các công cụ khác, Bazel hoạt động trên khái niệm về thư viện, tệp nhị phân, tập lệnh và tập dữ liệu, giúp bạn không bị phức tạp khi ghi các lệnh gọi riêng lẻ vào 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 đã làm 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ản dựng. Bằng cách này, Bazel biết được thời điểm cần xây dựng lại và chỉ xây dựng lại phần đó. Để tăng tốc hơn nữa các bản dựng, bạn có thể thiết lập dự án để xây dựng theo cách tăng dần và song song.

  • Bazel hoạt động trên nhiều 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à các 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.

  • Cỡ bazel. Bazel duy trì tính linh hoạt trong khi xử lý các bản dựng có hơn 100.000 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 lên đến hàng chục nghìn.

  • Bazel có thể mở rộng. Nhiều ngôn ngữ được hỗ trợ và bạn có thể mở rộng Bazel để hỗ trợ bất kỳ ngôn ngữ hoặc khung nào khác.

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:

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

  2. Thiết lập không gian làm việc cho dự án. Đây là một thư mục nơi Bazel tìm đầu vào của bản dựng và tệp BUILD, cũng như 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 cần tạo gì và cách xây dựng tệp đó.

    Bạn viết tệp BUILD bằng cách khai báo mục tiêu bản dựng bằng Starlark, một ngôn ngữ dành riêng cho 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ấ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 tạo 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 tạo bản dựng.

    Quy tắc tạo bản dựng chỉ định những 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 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 các nền tảng được hỗ trợ.

  4. Chạy Bazel qua dòng lệnh. Bazel đặt kết quả đầu ra của bạn trong không gian làm việc.

Ngoài việc tạo bản dựng, bạn cũng có thể sử dụng Bazel để chạy các chương trình kiểm thửtruy vấn bản dựng nhằm theo dõi các phần phụ thuộc trong mã của bạn.

Quy trình sản xuất Bazel

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

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

  2. Phân tích dữ liệu đầ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 đầu vào cho đến khi đầu ra bản dựng cuối cùng được tạo.

Vì mọi 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 đã lưu vào bộ nhớ đệm, đồng thời chỉ tạo lại hoặc kiểm thử lại những nội dung thay đổi. Để tăng cường độ 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ử theo cách tuần tự thông qua hộp cát, giảm thiểu độ lệch và tối đa hoá độ tái lặp.

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 các cấu phần đó và những hành động 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 công việc tạo bản 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 truy vết các phần phụ thuộc trong mã của mình.

Hướng dẫn bắt đầu sử dụng

Để bắt đầu sử dụng Bazel, hãy xem phần Bắt đầu hoặc chuyển thẳng đến các hướng dẫn về Bazel: