Trang này dành cho chủ sở hữu và người duy trì kho lưu trữ quy tắc Bazel. Nó mô tả cách định cấu hình hệ thống Tích hợp liên tục (CI) Bazel cho kho lưu trữ của bạn để kiểm thử các quy tắc về khả năng tương thích với quá trình thực thi từ xa trong trường hợp này. Hướng dẫn trên trang này áp dụng cho các dự án được lưu trữ trong Kho lưu trữ GitHub.
Điều kiện tiên quyết
Trước khi hoàn tất các bước trên trang này, hãy đảm bảo:
- Kho lưu trữ GitHub của bạn là một phần của Tổ chức Bazel GitHub.
- Bạn đã định cấu hình Buildkite cho kho lưu trữ của mình theo mô tả trong Tích hợp liên tục Bazel.
Thiết lập Bazel CI để kiểm thử
Trong tệp
.bazelci/presubmit.yml
, hãy làm như sau:a. Thêm cấu hình có tên
rbe_ubuntu1604
.b. Trong cấu hình
rbe_ubuntu1604
, hãy thêm bản dựng và mục tiêu kiểm thử mà bạn muốn kiểm thử theo chế độ thực thi từ xa.Thêm
bazel-toolchains
Kho lưu trữ GitHub vào tệpWORKSPACE
, được ghim vào bản phát hành mới nhất. Ngoài ra thêm mục tiêurbe_autoconfig
có tên làbuildkite_config
. Ví dụ này tạo cấu hình chuỗi công cụ để thực thi từ xa bằng BuildKite CI với giárbe_ubuntu1604
.
load("@bazel_toolchains//rules:rbe_repo.bzl", "rbe_autoconfig")
rbe_autoconfig(name = "buildkite_config")
Gửi yêu cầu lấy dữ liệu kèm theo các thay đổi của bạn đối với tệp
presubmit.yml
. (Xem ví dụ về yêu cầu lấy dữ liệu.)Để xem kết quả về bản dựng, hãy nhấp vào Chi tiết cho RBE (Ubuntu 16.04) kiểm tra yêu cầu lấy trong GitHub, như trong hình dưới đây. Đường liên kết này có sẵn sau khi hợp nhất yêu cầu lấy dữ liệu và các thử nghiệm CI đã chạy. (Xem ví dụ về kết quả.)
(Không bắt buộc) Thiết lập quy trình kiểm tra thử nghiệm bazel (RBE (Ubuntu 16.04)) làm thử nghiệm phải vượt qua trước khi hợp nhất trong quy tắc bảo vệ nhánh. Chế độ cài đặt nằm trong GitHub trong phần Settings > Nhánh > Quy tắc bảo vệ nhánh, như minh hoạ trong hình sau.
Khắc phục sự cố với bản dựng và hoạt động kiểm thử không thành công
Nếu bản dựng hoặc kiểm thử của bạn không thành công, thì nguyên nhân có thể là:
Các công cụ kiểm thử hoặc bản dựng bắt buộc không được cài đặt trong vùng chứa mặc định. Các bản dựng sử dụng cấu hình
rbe_ubuntu1604
chạy theo mặc định bên trong mộtrbe-ubuntu16-04
vùng chứa, bao gồm các công cụ phổ biến cho nhiều bản dựng Bazel. Tuy nhiên, nếu quy tắc của bạn yêu cầu công cụ không có trong vùng chứa mặc định, bạn phải tạo vùng chứa tuỳ chỉnh dựa trênrbe-ubuntu16-04
và bao gồm các công cụ đó như được mô tả sau.Mục tiêu tạo hoặc kiểm thử đang sử dụng các quy tắc không tương thích với chế độ điều khiển từ xa thực thi. Xem Điều chỉnh quy tắc Bazel để thực thi từ xa cho thông tin chi tiết về khả năng tương thích với khả năng thực thi từ xa.
Sử dụng vùng chứa tuỳ chỉnh trong cấu hình rbe_ubuntu1604 CI
Vùng chứa rbe-ubuntu16-04
được cung cấp công khai tại URL sau:
http://gcr.io/cloud-marketplace/google/rbe-ubuntu16-04
Bạn có thể lấy trực tiếp từ Container Registry hoặc tạo miền từ nguồn. Chiến lược phát hành đĩa đơn phần tiếp theo mô tả cả hai tuỳ chọn.
Trước khi bắt đầu, hãy đảm bảo bạn đã cài đặt gcloud
, docker
và git
.
Nếu đang tạo vùng chứa từ nguồn, bạn cũng phải cài đặt phiên bản mới nhất
của Bazel.
Lấy rbe-ubuntu16-04 từ Container Registry
Để lấy vùng chứa rbe-ubuntu16-04
từ Container Registry, hãy chạy
sau đây:
gcloud docker -- pull gcr.io/cloud-marketplace/google/rbe-ubuntu16-04@sha256:sha256-checksum
Thay thế sha256-checksum bằng giá trị tổng kiểm SHA256 cho vùng chứa mới nhất.
Tạo vùng chứa rbe-ubuntu16-04 từ nguồn
Để tạo vùng chứa rbe-ubuntu16-04
từ nguồn, hãy làm như sau:
Sao chép kho lưu trữ
bazel-toolchains
:git clone https://github.com/bazelbuild/bazel-toolchains
Thiết lập mục tiêu vùng chứa chuỗi công cụ và tạo vùng chứa như được giải thích trong Vùng chứa chuỗi công cụ.
Lấy vùng chứa mới tạo:
gcloud docker -- pull gcr.io/project-id/custom-container-namesha256-checksum
Chạy vùng chứa tuỳ chỉnh
Để chạy vùng chứa tuỳ chỉnh, hãy làm theo một trong những cách sau:
Nếu bạn lấy vùng chứa từ Container Registry, hãy chạy lệnh sau :
docker run -it gcr.io/cloud-marketplace/google/rbe-ubuntu16-04@sha256:sha256-checksum/bin/bash
Thay thế
sha256-checksum
bằng giá trị tổng kiểm SHA256 cho giá trị vùng chứa mới nhất.Nếu bạn tạo vùng chứa từ nguồn, hãy chạy lệnh sau:
docker run -it gcr.io/project-id/custom-container-name@sha256:sha256sum /bin/bash
Thêm tài nguyên vào vùng chứa tuỳ chỉnh
Sử dụng Dockerfile
hoặc
rules_docker
để thêm tài nguyên hoặc
các phiên bản thay thế của tài nguyên ban đầu vào vùng chứa rbe-ubuntu16-04
.
Nếu bạn mới sử dụng Docker, hãy đọc các nội dung sau:
Ví dụ: đoạn mã Dockerfile
sau đây cài đặt my_tool_package
:
FROM gcr.io/cloud-marketplace/google/rbe-ubuntu16-04@sha256:sha256-checksum
RUN apt-get update && yes | apt-get install -y my_tool_package
Đẩy vùng chứa tuỳ chỉnh sang Container Registry
Khi bạn đã tuỳ chỉnh vùng chứa, hãy tạo hình ảnh vùng chứa rồi đẩy hình ảnh đó vào Vùng chứa Registry như sau:
Tạo hình ảnh vùng chứa:
docker build -t custom-container-name.
docker tag custom-container-name gcr.io/project-id/custom-container-name
Đẩy hình ảnh vùng chứa vào Container Registry:
gcloud docker -- push gcr.io/project-id/custom-container-name
Chuyển đến URL sau để xác minh rằng vùng chứa đã được đẩy:
https://console.cloud.google.com/gcr/images/project-id/GLOBAL/custom-container-name
Ghi lại giá trị tổng kiểm SHA256 của vùng chứa tuỳ chỉnh. Bạn sẽ cần hãy cung cấp thông tin đó trong định nghĩa nền tảng bản dựng sau này.
Định cấu hình vùng chứa cho quyền truy cập công khai như được mô tả công khai trong như được giải thích trong Phân phát hình ảnh công khai.
Để biết thêm thông tin, hãy xem Đẩy và kéo hình ảnh.
Chỉ định định nghĩa nền tảng bản dựng
Bạn phải thêm một cấu hình nền tảng Bazel vào
cấu hình chuỗi công cụ tuỳ chỉnh, cho phép Bazel chọn một chuỗi công cụ
phù hợp với nền tảng phần cứng/phần mềm mong muốn. Để tạo
tự động là một nền tảng hợp lệ, bạn có thể thêm vào WORKSPACE
của mình một
Mục tiêu rbe_autoconfig
có tên buildkite_config
bao gồm thông tin bổ sung
thuộc tính để chọn vùng chứa tùy chỉnh của mình. Để biết thông tin chi tiết về cách thiết lập này, hãy đọc
tài liệu mới nhất cho rbe_autoconfig
.