Quy tắc
sh_binary
Xem nguồn quy tắcsh_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 gọi sai: đầu ra của nó không nhất thiết phải là tệp nhị phân.) Quy tắc này đảm bảo
rằng tất cả các phần phụ thuộc đều được xây dựng 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() theo tên của tập lệnh trừ
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 shebang, vì vậy, bạn có thể sử dụng bất kỳ trình thông dịch nào có sẵn (ví dụ:
#!/bin/zsh)
Ví dụ:
Đối với một 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 |
Tên; cần có Tên dành riêng cho mục tiêu này. |
deps
|
Danh sách nhãn; giá trị mặc định là deps
tại Các thuộc tính thông thường do
hầu hết các quy tắc xây dựng xác định.
Bạn nên sử dụng thuộc tính này để liệt kê các quy tắc |
srcs
|
Danh sách nhãn; cần có 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ù là tập lệnh hay dữ liệu) đều thuộc thuộc tính
|
sh_library
Xem nguồn quy tắcsh_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 một
"thư viện" logic bao gồm các tập lệnh liên quan – các chương trình bằng ngôn ngữ được thông dịch 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ể sử dụng các "thư viện" như vậy từ
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 được thông dịch, không phải lúc nào cũng có sự phân 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" theo quan điểm của trình thông dịch. Vì lý do này
quy tắc này có 3 thuộc tính về cơ bản là tương đương:
srcs, deps và data.
Quá trình triển khai hiện tại không phân biệt giữa các phần tử của các
danh sách này.
Cả 3 thuộc tính đề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 của chú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 |
Tên; cần có Tên dành riêng cho mục tiêu này. |
deps
|
Danh sách nhãn; giá trị mặc định là deps
tại Các thuộc tính thông thường do
hầu hết các quy tắc xây dựng xác định.
Bạn nên sử dụng thuộc tính này để liệt kê các quy tắc |
srcs
|
Danh sách nhãn; giá trị mặc định là
Bạn nên sử 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. Tập lệnh có thể tải các tập lệnh khác bằng lệnh |
sh_test
Xem nguồn quy tắcsh_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 bài kiểm thử được viết dưới dạng tập lệnh shell Bourne.
Xem các thuộc tính chung cho 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 |
Tên; cần có Tên dành riêng cho mục tiêu này. |
deps
|
Danh sách nhãn; giá trị mặc định là deps
tại Các thuộc tính thông thường do
hầu hết các quy tắc xây dựng xác định.
Bạn nên sử dụng thuộc tính này để liệt kê các quy tắc |
srcs
|
Danh sách nhãn; cần có 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ù là tập lệnh hay dữ liệu) đều thuộc thuộc tính
|