Quy tắc vỏ

Báo cáo sự cố Xem nguồn

Quy tắc

nhị phân

Xem nguồn quy tắc
sh_binary(name, deps, srcs, data, args, compatible_with, deprecation, distribs, env, exec_compatible_with, exec_properties, features, licenses, output_licenses, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)

Quy tắc sh_binary được dùng để khai báo các tập lệnh shell có thể thực thi. (sh_binary là một tên khác: kết quả của hàm này không nhất thiết là tệp nhị phân.) Quy tắc này đảm bảo việc tất cả phần phụ thuộc đều được tạo và xuất hiện trong khu vực runfiles tại thời điểm thực thi. Bạn nên đặt tên cho các quy tắc sh_binary() sau tên của tập lệnh trừ đi phần mở rộng (ví dụ: .sh); tên quy tắc và tên tệp phải khác biệt. sh_binary tuân theo shebangs, vì vậy, bất kỳ người phiên dịch nào có sẵn đều có thể được sử dụng (ví dụ: #!/bin/zsh)

Ví dụ:

Đối với tập lệnh shell đơn giản không có phần phụ thuộc và một số tệp dữ liệu:

sh_binary(
    name = "foo",
    srcs = ["foo.sh"],
    data = glob(["datafiles/*.txt"]),
)

Đối số

Thuộc tính
name

Name; required

Tên duy nhất cho mục tiêu này.

deps

List of labels; optional

Danh sách các mục tiêu "thư viện" được tổng hợp vào mục tiêu này. Xem nhận xét chung về deps tại Các thuộc tính thông thường được xác định theo hầu hết các quy tắc tạo bản dựng.

Bạn nên sử dụng thuộc tính này để liệt kê các quy tắc sh_library khác cung cấp mã nguồn chương trình đã được diễn giải phụ thuộc vào mã trong srcs. Các tệp mà quy tắc này cung cấp sẽ xuất hiện trong runfiles của mục tiêu này.

srcs

List of labels; required

Tệp chứa tập lệnh shell.

Thuộc tính này phải là một danh sách singleton có phần tử là tập lệnh shell. Tập lệnh này phải có thể thực thi và có thể là tệp nguồn hoặc tệp được tạo. Tất cả các tệp khác cần thiết trong thời gian chạy (cho dù tập lệnh hay dữ liệu) đều thuộc về thuộc tính data.

thư viện sh_

Xem nguồn quy tắc
sh_library(name, deps, srcs, data, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, restricted_to, tags, target_compatible_with, testonly, visibility)

Mục đích chính của quy tắc này là tổng hợp cùng nhau một "thư viện" logic bao gồm các tập lệnh có liên quan – các chương trình bằng một ngôn ngữ được diễn giải không yêu cầu biên dịch hoặc liên kết, chẳng hạn như shell Bourne – và mọi dữ liệu mà các chương trình đó cần trong thời gian chạy. Sau đó, bạn có thể dùng những "thư viện" như vậy trong thuộc tính data của một hoặc nhiều quy tắc sh_binary.

Bạn có thể sử dụng quy tắc filegroup để tổng hợp các tệp dữ liệu.

Trong các ngôn ngữ lập trình đã diễn giải, không phải lúc nào cũng có sự khác biệt rõ ràng giữa "mã" và "dữ liệu": xét cho cùng, chương trình chỉ là "dữ liệu" từ quan điểm của người phiên dịch. Vì lý do này, quy tắc này có ba thuộc tính về cơ bản là tương đương: srcs, depsdata. Cách triển khai hiện tại không phân biệt được các thành phần của những danh sách này. Cả ba thuộc tính này đều chấp nhận quy tắc, tệp nguồn và tệp được tạo. Tuy nhiên, bạn nên sử dụng các thuộc tính cho mục đích thông thường (như với các quy tắc khác).

Ví dụ

sh_library(
    name = "foo",
    data = [
        ":foo_service_script",  # an sh_binary with srcs
        ":deploy_foo",  # another sh_binary with srcs
    ],
)

Đối số

Thuộc tính
name

Name; required

Tên duy nhất cho mục tiêu này.

deps

List of labels; optional

Danh sách các mục tiêu "thư viện" được tổng hợp vào mục tiêu này. Xem nhận xét chung về deps tại Các thuộc tính thông thường được xác định theo hầu hết các quy tắc tạo bản dựng.

Bạn nên sử dụng thuộc tính này để liệt kê các quy tắc sh_library khác cung cấp mã nguồn chương trình đã được diễn giải phụ thuộc vào mã trong srcs. Các tệp mà quy tắc này cung cấp sẽ xuất hiện trong runfiles của mục tiêu này.

srcs

List of labels; optional

Danh sách các tệp đầu vào.

Bạn nên dùng thuộc tính này để liệt kê các tệp nguồn tập lệnh shell thuộc thư viện này. Các tập lệnh có thể tải các tập lệnh khác bằng lệnh source hoặc . của shell.

thử_nghiệm

Xem nguồn quy tắc
sh_test(name, deps, srcs, data, args, compatible_with, deprecation, distribs, env, env_inherit, exec_compatible_with, exec_properties, features, flaky, licenses, local, restricted_to, shard_count, size, tags, target_compatible_with, testonly, timeout, toolchains, visibility)

Quy tắc sh_test() tạo một mã kiểm thử được viết dưới dạng tập lệnh Bourne shell.

Xem các thuộc tính phổ biến đối với tất cả các quy tắc kiểm thử (*_test).

Ví dụ

sh_test(
    name = "foo_integration_test",
    size = "small",
    srcs = ["foo_integration_test.sh"],
    deps = [":foo_sh_lib"],
    data = glob(["testdata/*.txt"]),
)

Đối số

Thuộc tính
name

Name; required

Tên duy nhất cho mục tiêu này.

deps

List of labels; optional

Danh sách các mục tiêu "thư viện" được tổng hợp vào mục tiêu này. Xem nhận xét chung về deps tại Các thuộc tính thông thường được xác định theo hầu hết các quy tắc tạo bản dựng.

Bạn nên sử dụng thuộc tính này để liệt kê các quy tắc sh_library khác cung cấp mã nguồn chương trình đã được diễn giải phụ thuộc vào mã trong srcs. Các tệp mà quy tắc này cung cấp sẽ xuất hiện trong runfiles của mục tiêu này.

srcs

List of labels; required

Tệp chứa tập lệnh shell.

Thuộc tính này phải là một danh sách singleton có phần tử là tập lệnh shell. Tập lệnh này phải có thể thực thi và có thể là tệp nguồn hoặc tệp được tạo. Tất cả các tệp khác cần thiết trong thời gian chạy (cho dù tập lệnh hay dữ liệu) đều thuộc về thuộc tính data.