ctx.actions
.
Hội viên
- args
- declare_directory
- declare_file
- declare_symlink
- do_nothing
- expand_template
- chạy
- run_shell
- đường liên kết tượng trưng
- template_dict
- viết
args
Args actions.args()
declare_directory
File actions.declare_directory(filename, *, sibling=None)
Args.add_all()
.
Tham số
Thông số | Mô tả |
---|---|
filename
|
bắt buộc Nếu không có "đồng cấp" đã cung cấp, đường dẫn của thư mục mới, so với gói hiện tại. Nếu không, tên cơ sở cho tệp ('ương đồng' xác định một thư mục). |
sibling
|
File; or None ;
mặc định = Không cóMột tệp nằm trong cùng thư mục với thư mục mới khai báo. Tệp này phải nằm trong gói hiện tại. |
declare_file
File actions.declare_file(filename, *, sibling=None)
sibling
, tên tệp sẽ tương ứng với thư mục gói, nếu không thì tệp sẽ nằm trong cùng thư mục với sibling
. Không thể tạo tệp bên ngoài gói hiện tại.Hãy nhớ rằng ngoài việc khai báo tệp, bạn phải tạo riêng một thao tác dùng để phát tệp đó. Khi tạo thao tác đó, bạn sẽ phải truyền đối tượng File
được trả về đến hàm xây dựng của thao tác đó.
Lưu ý rằng tệp đầu ra được khai báo trước không cần (và không thể) được khai báo bằng hàm này. Thay vào đó, bạn có thể lấy các đối tượng File
của chúng từ ctx.outputs
. Xem ví dụ về cách sử dụng.
Tham số
Thông số | Mô tả |
---|---|
filename
|
bắt buộc Nếu không có "đồng cấp" đã cung cấp, đường dẫn của tệp mới, so với gói hiện tại. Nếu không, tên cơ sở cho một tệp ("con" (đồng cấp) sẽ xác định một thư mục). |
sibling
|
File; or None ;
mặc định = Không cóTệp nằm trong cùng thư mục với tệp mới tạo. Tệp này phải nằm trong gói hiện tại. |
declare_symlink
File actions.declare_symlink(filename, *, sibling=None)
Thử nghiệm. Thông số này đang trong giai đoạn thử nghiệm và có thể thay đổi bất cứ lúc nào. Vui lòng đừng phụ thuộc vào tính năng này. Bạn có thể bật tính năng này trong giai đoạn thử nghiệm bằng cách đặt --experimental_allow_unresolved_symlinks
Khai báo rằng quy tắc hoặc khung hình tạo ra một đường liên kết tượng trưng với tên đã cho trong gói hiện tại. Bạn phải tạo một thao tác tạo ra đường liên kết tượng trưng này. Bazel sẽ không bao giờ huỷ tham chiếu đường liên kết tượng trưng này và sẽ chuyển đường liên kết nguyên văn này sang hộp cát hoặc trình thực thi từ xa.
Tham số
Thông số | Mô tả |
---|---|
filename
|
bắt buộc Nếu không có "đồng cấp" đã cung cấp, đường dẫn của liên kết tượng trưng mới, so với gói hiện tại. Nếu không, tên cơ sở cho tệp ('ương đồng' xác định một thư mục). |
sibling
|
File; or None ;
mặc định = Không cóTệp nằm trong cùng thư mục với đường liên kết tượng trưng mới khai báo. |
do_nothing
None actions.do_nothing(mnemonic, inputs=[])
Tham số
Thông số | Mô tả |
---|---|
mnemonic
|
bắt buộc Nội dung mô tả một từ về hành động, ví dụ: CppCompile hoặc GoLink. |
inputs
|
sequence of Files; or depset ;
mặc định = []Danh sách các tệp nhập của thao tác. |
expand_template
None actions.expand_template(template, output, substitutions={}, is_executable=False, computed_substitutions=unbound)
substitutions
, theo thứ tự chỉ định các mục thay thế. Bất cứ khi nào một khoá của từ điển xuất hiện trong mẫu (hoặc kết quả của một lần thay thế trước đó), khoá đó sẽ được thay thế bằng giá trị có liên quan. Không có cú pháp đặc biệt cho khoá. Chẳng hạn như bạn có thể sử dụng dấu ngoặc nhọn để tránh xung đột (ví dụ: {KEY}
). Xem ví dụ về cách sử dụng.
Tham số
Thông số | Mô tả |
---|---|
template
|
bắt buộc Tệp mẫu là một tệp văn bản được mã hoá UTF-8. |
output
|
bắt buộc Tệp đầu ra là tệp văn bản mã hoá UTF-8. |
substitutions
|
default = {} Các thay thế cần thực hiện khi mở rộng mẫu. |
is_executable
|
mặc định = Sai Liệu tệp đầu ra có thể thực thi hay không. |
computed_substitutions
|
TemplateDict ;
mặc định = không liên kếtThử nghiệm. Thông số này đang trong giai đoạn thử nghiệm và có thể thay đổi bất cứ lúc nào. Vui lòng đừng phụ thuộc vào tính năng này. Có thể bật tính năng này trong thử nghiệm bằng cách đặt --+experimental_lazy_template_expansion Thử nghiệm: Phép thay thế cần thực hiện khi mở rộng mẫu. |
chạy
None actions.run(outputs, inputs=[], unused_inputs_list=None, executable, tools=unbound, arguments=[], mnemonic=None, progress_message=None, use_default_shell_env=False, env=None, execution_requirements=None, input_manifests=None, exec_group=None, shadowed_action=None, resource_set=None, toolchain=None)
Tham số
Thông số | Mô tả |
---|---|
outputs
|
sequence of Files ;
bắt buộcDanh sách các tệp đầu ra của thao tác. |
inputs
|
sequence of Files; or depset ;
mặc định = []Danh sách hoặc phần tách các tệp đầu vào của thao tác. |
unused_inputs_list
|
File; or None ;
mặc định = Không cóTệp chứa danh sách dữ liệu đầu vào mà hành động không dùng đến. Nội dung của tệp này (thường là một trong các kết quả của hành động) tương ứng với danh sách các tệp đầu vào không được sử dụng trong toàn bộ quá trình thực thi hành động. Mọi thay đổi trong các tệp đó đều không được gây ảnh hưởng đến kết quả của thao tác. |
executable
|
File; or string; or FilesToRunProvider ;
bắt buộcTệp thực thi mà thao tác sẽ gọi. |
tools
|
sequence; or depset ;
mặc định = không liên kếtLiệt kê hoặc gỡ bỏ mọi công cụ cần thiết cho hành động. Công cụ là dữ liệu đầu vào có các tệp chạy bổ sung được cung cấp tự động cho thao tác. Khi một danh sách được cung cấp, đó có thể là một tập hợp các tệp không đồng nhất, các phiên bản FilesToRunProvider hoặc phần phụ thuộc của các tệp. Các tệp nằm ngay trong danh sách và đến từ ctx.executable sẽ tự động được thêm các tệp chạy bộ của chúng. Khi cung cấp phần phụ thuộc, phần phụ thuộc đó chỉ được chứa Tệp. Trong cả hai trường hợp, các tệp trong phần phân tách đều không được tham chiếu chéo với ctx.executable cho các tệp chạy. |
arguments
|
sequence ;
mặc định = []Đối số dòng lệnh của thao tác. Phải là một danh sách chuỗi hoặc đối tượng actions.args() .
|
mnemonic
|
string; or None ;
mặc định = Không cóNội dung mô tả một từ về hành động, ví dụ: CppCompile hoặc GoLink. |
progress_message
|
string; or None ;
mặc định = Không cóThông báo về tiến trình sẽ hiển thị cho người dùng trong quá trình tạo bản dựng, ví dụ: "Biên dịch foo.cc để tạo foo.o". Thông báo có thể chứa các mẫu %{label} , %{input} hoặc %{output} được thay thế bằng chuỗi nhãn, đường dẫn đầu vào hoặc đường dẫn đầu ra tương ứng. Ưu tiên sử dụng các mẫu thay vì chuỗi tĩnh, vì kiểu này hiệu quả hơn.
|
use_default_shell_env
|
mặc định = Sai Liệu hành động có nên sử dụng môi trường shell tích hợp sẵn hay không. |
env
|
dict; or None ;
mặc định = Không cóThiết lập từ điển cho các biến môi trường. |
execution_requirements
|
dict; or None ;
mặc định = Không cóThông tin để lên lịch hành động. Xem thẻ để biết khoá hữu ích. |
input_manifests
|
sequence; or None ;
mặc định = Không có(Thử nghiệm) thiết lập siêu dữ liệu các tệp runfile đầu vào; chúng thường được tạo bằng resolve_command. |
exec_group
|
string; or None ;
mặc định = Không cóChạy hành động trên nền tảng thực thi của nhóm thực thi nhất định. Nếu không có, hãy sử dụng nền tảng thực thi mặc định của mục tiêu. |
shadowed_action
|
Action ;
mặc định = Không cóChạy hành động bằng cách sử dụng dữ liệu đầu vào và môi trường của hành động bị đổ bóng đã thêm vào danh sách đầu vào và môi trường của hành động đó. Môi trường hành động có thể ghi đè mọi biến môi trường của hành động bị ẩn. Nếu không có, chỉ sử dụng dữ liệu đầu vào của thao tác và môi trường đã cho. |
resource_set
|
callable; or None ;
mặc định = Không cóHàm callback trả về từ điển nhóm tài nguyên, dùng để ước tính mức sử dụng tài nguyên tại thời điểm thực thi nếu hành động này được chạy cục bộ. Hàm này chấp nhận 2 đối số vị trí: một chuỗi đại diện cho tên hệ điều hành (ví dụ: "osx") và một số nguyên biểu thị số lượng dữ liệu đầu vào cho thao tác. Từ điển được trả về có thể chứa các mục sau, mỗi mục có thể là một số thực hoặc một số nguyên:
Nếu bạn đặt tham số này thành Lệnh gọi lại phải là cấp cao nhất (không được phép sử dụng các hàm lambda và hàm lồng nhau). |
toolchain
|
Label; or string; or None ;
mặc định = Không cóLoại chuỗi công cụ của tệp thực thi hoặc công cụ được dùng trong hành động này. Bạn phải đặt tham số này để hành động này sẽ thực thi trên đúng nền tảng thực thi. Hiện tại, tính năng này không hoạt động, nhưng bạn nên đặt chuỗi công cụ này khi sử dụng một chuỗi công cụ, vì bạn sẽ phải đặt chuỗi công cụ này trong các bản phát hành Bazel trong tương lai. Lưu ý rằng quy tắc tạo ra hành động này cần xác định chuỗi công cụ này bên trong "quy tắc()" của nó . Khi cả hai tham số "toolchain" và "exec_group" được đặt, "exec_group" sẽ được sử dụng. Sẽ xảy ra lỗi trong trường hợp "exec_group" không chỉ định giống nhau. |
run_shell
None actions.run_shell(outputs, inputs=[], tools=unbound, arguments=[], mnemonic=None, command, progress_message=None, use_default_shell_env=False, env=None, execution_requirements=None, input_manifests=None, exec_group=None, shadowed_action=None, resource_set=None, toolchain=None)
Tham số
Thông số | Mô tả |
---|---|
outputs
|
sequence of Files ;
bắt buộcDanh sách các tệp đầu ra của thao tác. |
inputs
|
sequence of Files; or depset ;
mặc định = []Danh sách hoặc phần tách các tệp đầu vào của thao tác. |
tools
|
sequence of Files; or depset ;
mặc định = không liên kếtLiệt kê hoặc gỡ bỏ mọi công cụ cần thiết cho hành động. Công cụ là dữ liệu đầu vào có các tệp chạy bổ sung được cung cấp tự động cho thao tác. Danh sách này có thể chứa các thực thể Files hoặc FilesToRunProvider. |
arguments
|
sequence ;
mặc định = []Đối số dòng lệnh của thao tác. Phải là một danh sách chuỗi hoặc đối tượng actions.args() .Bazel chuyển các phần tử trong thuộc tính này làm đối số cho lệnh. Lệnh có thể truy cập các đối số này bằng cách sử dụng các thay thế biến shell như Trong trường hợp |
mnemonic
|
string; or None ;
mặc định = Không cóNội dung mô tả một từ về hành động, ví dụ: CppCompile hoặc GoLink. |
command
|
string; or sequence of strings ;
bắt buộcLệnh shell để thực thi. Đây có thể là một chuỗi (ưu tiên) hoặc một chuỗi (không dùng nữa). Nếu (Không dùng nữa) Nếu Bazel sử dụng cùng một shell để thực thi lệnh giống như với genrules. |
progress_message
|
string; or None ;
mặc định = Không cóThông báo về tiến trình sẽ hiển thị cho người dùng trong quá trình tạo bản dựng, ví dụ: "Biên dịch foo.cc để tạo foo.o". Thông báo có thể chứa các mẫu %{label} , %{input} hoặc %{output} được thay thế bằng chuỗi nhãn, đường dẫn đầu vào hoặc đường dẫn đầu ra tương ứng. Ưu tiên sử dụng các mẫu thay vì chuỗi tĩnh, vì kiểu này hiệu quả hơn.
|
use_default_shell_env
|
mặc định = Sai Liệu hành động có nên sử dụng môi trường shell tích hợp sẵn hay không. |
env
|
dict; or None ;
mặc định = Không cóThiết lập từ điển cho các biến môi trường. |
execution_requirements
|
dict; or None ;
mặc định = Không cóThông tin để lên lịch hành động. Xem thẻ để biết khoá hữu ích. |
input_manifests
|
sequence; or None ;
mặc định = Không có(Thử nghiệm) thiết lập siêu dữ liệu các tệp runfile đầu vào; chúng thường được tạo bằng resolve_command. |
exec_group
|
string; or None ;
mặc định = Không cóChạy hành động trên nền tảng thực thi của nhóm thực thi nhất định. Nếu không có, hãy sử dụng nền tảng thực thi mặc định của mục tiêu. |
shadowed_action
|
Action ;
mặc định = Không cóChạy hành động bằng cách sử dụng các dữ liệu đầu vào đã phát hiện được của hành động bị đổ bóng được thêm vào danh sách dữ liệu đầu vào của hành động đó. Nếu không có, chỉ sử dụng dữ liệu đầu vào của hành động. |
resource_set
|
callable; or None ;
mặc định = Không cóMột hàm callback để ước tính mức sử dụng tài nguyên nếu chạy cục bộ. Hãy xem ctx.actions.run() .
|
toolchain
|
Label; or string; or None ;
mặc định = Không cóLoại chuỗi công cụ của tệp thực thi hoặc công cụ được dùng trong hành động này. Bạn phải đặt tham số này để hành động này sẽ thực thi trên đúng nền tảng thực thi. Hiện tại, tính năng này không hoạt động, nhưng bạn nên đặt chuỗi công cụ này khi sử dụng một chuỗi công cụ, vì bạn sẽ phải đặt chuỗi công cụ này trong các bản phát hành Bazel trong tương lai. Lưu ý rằng quy tắc tạo ra hành động này cần xác định chuỗi công cụ này bên trong "quy tắc()" của nó . Khi cả hai tham số "toolchain" và "exec_group" được đặt, "exec_group" sẽ được sử dụng. Sẽ xảy ra lỗi trong trường hợp "exec_group" không chỉ định giống nhau. chuỗi công cụ. |
liên kết tượng trưng
None actions.symlink(output, target_file=None, target_path=None, is_executable=False, progress_message=None)
Hàm này phải được gọi bằng chính xác một trong số target_file
hoặc target_path
đã chỉ định.
Khi bạn sử dụng target_file
, hãy khai báo output
bằng declare_file()
hoặc declare_directory()
và khớp với loại target_file
. Thao tác này làm cho đường liên kết tượng trưng trỏ đến target_file
. Bazel vô hiệu hoá đầu ra của thao tác này bất cứ khi nào mục tiêu của đường liên kết tượng trưng hoặc nội dung trong đó thay đổi.
Nếu không, khi bạn sử dụng target_path
, hãy khai báo output
bằng declare_symlink()
). Trong trường hợp này, đường liên kết tượng trưng trỏ đến target_path
. Bazel không bao giờ phân giải đường liên kết tượng trưng và kết quả của thao tác này chỉ mất hiệu lực khi nội dung văn bản của đường liên kết tượng trưng (tức là giá trị của readlink()
) thay đổi. Đặc biệt, bạn có thể dùng tính năng này để tạo một đường liên kết tượng trưng lủng lẳng.
Tham số
Thông số | Mô tả |
---|---|
output
|
bắt buộc Kết quả của thao tác này. |
target_file
|
File; or None ;
mặc định = Không cóTệp mà đường liên kết tượng trưng đầu ra sẽ trỏ đến. |
target_path
|
string; or None ;
mặc định = Không có(Thử nghiệm) Đường dẫn chính xác mà đường liên kết tượng trưng đầu ra sẽ trỏ đến. Không chuẩn hoá hoặc xử lý khác được áp dụng. Để sử dụng tính năng này, bạn phải đặt --experimental_allow_unresolved_symlinks .
|
is_executable
|
mặc định = Sai Chỉ dùng được với target_file , không dùng được với target_path . Nếu đúng thì khi hành động đó được thực thi, đường dẫn của target_file sẽ được kiểm tra để xác nhận rằng hành động đó có thể thực thi và báo cáo lỗi nếu không phải. Việc đặt is_executable thành False không có nghĩa là mục tiêu không thể thực thi mà chỉ là không có quá trình xác minh nào được thực hiện.Tính năng này không phù hợp với |
progress_message
|
string; or None ;
mặc định = Không cóThông báo về tiến trình sẽ hiển thị cho người dùng trong quá trình tạo bản dựng. |
template_dict
TemplateDict actions.template_dict()
--+experimental_lazy_template_expansion
Thử nghiệm: Trả về đối tượng TemplateDict để mở rộng mẫu tiết kiệm bộ nhớ.
ghi
None actions.write(output, content, is_executable=False)
expand_template
.
Tham số
Thông số | Mô tả |
---|---|
output
|
bắt buộc Tệp đầu ra. |
content
|
string; or Args ;
bắt buộcnội dung của tệp. Có thể ở dạng chuỗi hoặc đối tượng actions.args() .
|
is_executable
|
mặc định = Sai Liệu tệp đầu ra có thể thực thi hay không. |