ctx.actions.
Hội viên
- args
- declare_directory
- declare_file
- declare_symlink
- do_nothing
- expand_template
- run
- run_shell
- symlink
- template_dict
- viết
args
Args actions.args()
declare_directory
File actions.declare_directory(filename, *, sibling=None)
Args.add_all().
Thông số
| Tham số | Mô tả |
|---|---|
filename
|
required Nếu không có "sibling" nào được cung cấp, thì đường dẫn của thư mục mới sẽ tương ứng với gói hiện tại. Nếu không, đây là tên cơ sở của một tệp ("sibling" xác định một thư mục). |
sibling
|
File; or None;
default = NoneMột tệp nằm trong cùng thư mục với thư mục mới khai báo. Tệp 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, 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 một tệp, bạn phải tạo riêng một thao tác phát tệp đó. Để tạo thao tác đó, bạn sẽ cần truyền đối tượng File đã trả về vào hàm tạo của thao tác.
Xin lưu ý rằng bạn không cần (và không thể) khai báo các tệp đầu ra được khai báo trước 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.
Thông số
| Tham số | Mô tả |
|---|---|
filename
|
bắt buộc Nếu không có "sibling" nào được cung cấp, thì đường dẫn của tệp mới, tương ứng với gói hiện tại. Nếu không, đây là tên cơ sở của một tệp ("sibling" xác định một thư mục). |
sibling
|
File; or None;
default = NoneMột tệp nằm trong cùng thư mục với tệp mới tạo. Tệp phải nằm trong gói hiện tại. |
declare_symlink
File actions.declare_symlink(filename, *, sibling=None)
Thử nghiệm. Đây là một thông số thử nghiệm và có thể thay đổi bất cứ lúc nào. Vui lòng không phụ thuộc vào thông tin này. Bạn có thể bật tính năng này theo cách thử nghiệm bằng cách đặt --experimental_allow_unresolved_symlinks
Khai báo rằng quy tắc hoặc khía cạnh tạo một đường liên kết tượng trưng có tên đã cho trong gói hiện tại. Bạn phải tạo một thao tác tạo ra symlink này. Bazel sẽ không bao giờ huỷ tham chiếu symlink này và sẽ chuyển nguyên trạng symlink này đến các hộp cát hoặc trình thực thi từ xa.
Thông số
| Tham số | Mô tả |
|---|---|
filename
|
bắt buộc Nếu không có "sibling" nào được cung cấp, thì đường dẫn của symlink mới, tương ứng với gói hiện tại. Nếu không, đây là tên cơ sở của một tệp ("sibling" xác định một thư mục). |
sibling
|
File; or None;
default = NoneMột 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=[])
Thông số
| Tham 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;
default = []Danh sách các tệp đầu vào của thao tác. |
expand_template
None actions.expand_template(template, output, substitutions={}, is_executable=False, computed_substitutions=unbound)
substitutions, theo thứ tự mà các nội dung thay thế được chỉ định. 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 kết. Không có cú pháp đặc biệt cho các khoá. Ví dụ: bạn có thể dùng dấu ngoặc nhọn để tránh xung đột (ví dụ: {KEY}). Xem ví dụ về cách sử dụng.
Thông số
| Tham số | Mô tả |
|---|---|
template
|
bắt buộc Tệp mẫu, là tệp văn bản được mã hoá UTF-8. |
output
|
bắt buộc Tệp đầu ra, là một tệp văn bản được mã hoá UTF-8. |
substitutions
|
default = {} Các mục thay thế cần thực hiện khi mở rộng mẫu. |
is_executable
|
default = False Liệu tệp đầu ra có thể thực thi hay không. |
computed_substitutions
|
TemplateDict;
default = unboundThử nghiệm. Đây là một thông số thử nghiệm và có thể thay đổi bất cứ lúc nào. Vui lòng không phụ thuộc vào thông tin này. Bạn có thể bật tính năng này trên cơ sở thử nghiệm bằng cách đặt --+experimental_lazy_template_expansion Thử nghiệm: Các 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)
Thông số
| Tham số | Mô tả |
|---|---|
outputs
|
sequence of Files;
requiredDanh sách các tệp đầu ra của thao tác. |
inputs
|
sequence of Files; or depset;
default = []Danh sách hoặc depset của các tệp đầu vào của thao tác. |
unused_inputs_list
|
File; or None;
default = NoneTệp chứa danh sách các đầu vào không được hành động sử dụng. Nội dung của tệp này (thường là một trong các đầu ra của thao tác) tương ứng với danh sách các tệp đầu vào không được dùng trong toàn bộ quá trình thực thi thao tác. Mọi thay đổi trong các tệp đó đều không được ảnh hưởng đến đầu ra của thao tác. |
executable
|
File; or string; or FilesToRunProvider;
requiredTệp thực thi mà thao tác sẽ gọi. |
tools
|
sequence; or depset;
default = unboundDanh sách hoặc depset của mọi công cụ cần thiết cho thao tác. Công cụ là các đầu vào có các tệp chạy bổ sung được tự động cung cấp cho thao tác. Khi được cung cấp, danh sách này có thể là một tập hợp không đồng nhất gồm các tệp, các thực thể FilesToRunProvider hoặc các depsets của tệp. Các tệp nằm ngay trong danh sách và đến từ ctx.executable sẽ tự động được thêm runfile. Khi được cung cấp, depset chỉ được chứa các tệp. Trong cả hai trường hợp, các tệp trong depsets không được tham chiếu chéo với ctx.executable cho runfiles. |
arguments
|
sequence;
default = []Đối số dòng lệnh của thao tác. Phải là danh sách các chuỗi hoặc đối tượng actions.args().
|
mnemonic
|
string; or None;
default = NoneNội dung mô tả gồm một từ về thao tác, ví dụ: CppCompile hoặc GoLink. |
progress_message
|
string; or None;
default = NoneThông báo tiến trình sẽ hiển thị cho người dùng trong quá trình tạo, ví dụ: "Đang 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}, lần lượt được thay thế bằng chuỗi nhãn, đầu vào đầu tiên hoặc đường dẫn của đầu ra. Nên sử dụng các mẫu thay vì chuỗi tĩnh, vì các mẫu hiệu quả hơn.
|
use_default_shell_env
|
default = False Whether the action should use the built in shell environment or not. |
env
|
dict; or None;
default = NoneĐặt từ điển của các biến môi trường. |
execution_requirements
|
dict; or None;
default = NoneThông tin về việc lập lịch cho hành động. Hãy xem các thẻ để biết các khoá hữu ích. |
input_manifests
|
sequence; or None;
default = None(Thử nghiệm) đặt siêu dữ liệu runfiles đầu vào; siêu dữ liệu này thường do resolve_command tạo. |
exec_group
|
string; or None;
default = NoneChạy thao tác trên nền tảng thực thi của nhóm exec đã cho. 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;
default = NoneChạy thao tác bằng cách sử dụng các đầu vào và môi trường của thao tác được che khuất đã cho được thêm vào danh sách đầu vào và môi trường của thao tác. Môi trường hành động có thể ghi đè mọi biến môi trường của hành động được che. Nếu không có, chỉ sử dụng các đầu vào của thao tác và môi trường đã cho. |
resource_set
|
callable; or None;
default = NoneMột hàm gọi lại trả về từ điển tập hợp tài nguyên, dùng để ước tính mức sử dụng tài nguyên tại thời gian thực thi nếu thao tác này được chạy cục bộ. Hàm này chấp nhận hai đố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 đại diện cho 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 đây, mỗi mục có thể là một số thực hoặc số nguyên:
Nếu tham số này được đặt thành Lệnh gọi lại phải ở cấp cao nhất (không được phép dùng lambda và các hàm lồng nhau). |
toolchain
|
Label; or string; or None;
default = NoneLoại chuỗi công cụ của tệp thực thi hoặc các công cụ được dùng trong thao tác này. Bạn phải đặt tham số để thao tác thực thi trên nền tảng thực thi chính xác. Hiện tại, đây là một thao tác không có hiệu lực, nhưng bạn nên đặt thao tác này khi sử dụng một chuỗi công cụ, vì thao tác này sẽ bắt buộc trong các bản phát hành Bazel trong tương lai. Xin lưu ý rằng quy tắc tạo thao tác này cần xác định chuỗi công cụ này trong hàm "rule()". Khi cả hai tham số "toolchain" và "exec_group" đều được đặt, "exec_group" sẽ được dùng. Lỗi sẽ xảy ra trong trường hợp `exec_group` không chỉ định cùng một lỗi. |
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)
Thông số
| Tham số | Mô tả |
|---|---|
outputs
|
sequence of Files;
requiredDanh sách các tệp đầu ra của thao tác. |
inputs
|
sequence of Files; or depset;
default = []Danh sách hoặc depset của các tệp đầu vào của thao tác. |
tools
|
sequence of Files; or depset;
default = unboundDanh sách hoặc depset của mọi công cụ cần thiết cho thao tác. Công cụ là các đầu vào có các tệp chạy bổ sung được tự động cung cấp cho thao tác. Danh sách này có thể chứa các thực thể Files hoặc FilesToRunProvider. |
arguments
|
sequence;
default = []Đối số dòng lệnh của thao tác. Phải là danh sách các chuỗi hoặc đối tượng actions.args().Bazel truyề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 vào các đối số này bằng cách sử dụng các phép thay thế biến shell như Trong trường hợp |
mnemonic
|
string; or None;
default = NoneNội dung mô tả gồm một từ về thao tác, ví dụ: CppCompile hoặc GoLink. |
command
|
string; or sequence of strings;
requiredLệnh shell cần thực thi. Đây có thể là một chuỗi (nên dùng) hoặc một chuỗi các 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 như đối với genrules. |
progress_message
|
string; or None;
default = NoneThông báo tiến trình sẽ hiển thị cho người dùng trong quá trình tạo, ví dụ: "Đang 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}, lần lượt được thay thế bằng chuỗi nhãn, đầu vào đầu tiên hoặc đường dẫn của đầu ra. Nên sử dụng các mẫu thay vì chuỗi tĩnh, vì các mẫu hiệu quả hơn.
|
use_default_shell_env
|
default = False Whether the action should use the built in shell environment or not. |
env
|
dict; or None;
default = NoneĐặt từ điển của các biến môi trường. |
execution_requirements
|
dict; or None;
default = NoneThông tin về việc lập lịch cho hành động. Hãy xem các thẻ để biết các khoá hữu ích. |
input_manifests
|
sequence; or None;
default = None(Thử nghiệm) đặt siêu dữ liệu runfiles đầu vào; siêu dữ liệu này thường do resolve_command tạo. |
exec_group
|
string; or None;
default = NoneChạy thao tác trên nền tảng thực thi của nhóm exec đã cho. 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;
default = NoneChạy thao tác bằng cách sử dụng các đầu vào đã phát hiện của thao tác được che khuất nhất định được thêm vào danh sách đầu vào của thao tác. Nếu không có, chỉ sử dụng các đầu vào của thao tác. |
resource_set
|
callable; or None;
default = NoneHàm gọi lại để ước tính mức sử dụng tài nguyên nếu chạy cục bộ. Xem ctx.actions.run().
|
toolchain
|
Label; or string; or None;
default = NoneLoại chuỗi công cụ của tệp thực thi hoặc các công cụ được dùng trong thao tác này. Bạn phải đặt tham số để thao tác thực thi trên nền tảng thực thi chính xác. Hiện tại, đây là một thao tác không có hiệu lực, nhưng bạn nên đặt thao tác này khi sử dụng một chuỗi công cụ, vì thao tác này sẽ bắt buộc trong các bản phát hành Bazel trong tương lai. Xin lưu ý rằng quy tắc tạo thao tác này cần xác định chuỗi công cụ này trong hàm "rule()". Khi cả hai tham số "toolchain" và "exec_group" đều được đặt, "exec_group" sẽ được dùng. Lỗi sẽ xảy ra trong trường hợp `exec_group` không chỉ định cùng một 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)
Bạn phải gọi hàm này khi chỉ định chính xác một trong hai thuộc tính target_file hoặc target_path.
Khi bạn sử dụng target_file, hãy khai báo output bằng declare_file() hoặc declare_directory() và so khớp loại target_file. Thao tác này sẽ khiến đường liên kết tượng trưng trỏ đến target_file. Bazel sẽ vô hiệu hoá đầu ra của hành động này bất cứ khi nào đích của đường liên kết tượng trưng hoặc nội dung của đích 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, symlink sẽ trỏ đến target_path. Bazel không bao giờ phân giải đường liên kết tượng trưng và đầu ra của thao tác này chỉ bị vô hiệu hoá 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ụ thể, bạn có thể dùng phương thức này để tạo một symlink không hợp lệ.
Thông số
| Tham số | Mô tả |
|---|---|
output
|
required Đầu ra của thao tác này. |
target_file
|
File; or None;
default = NoneTệp mà đường liên kết tượng trưng đầu ra sẽ trỏ đến. |
target_path
|
string; or None;
default = None(Thử nghiệm) Đường dẫn chính xác mà symlink đầu ra sẽ trỏ đến. Không có quá trình chuẩn hoá hoặc xử lý nào khác được áp dụng. Bạn cần thiết lập --experimental_allow_unresolved_symlinks để có thể sử dụng tính năng này.
|
is_executable
|
default = False Chỉ có thể dùng với target_file, không dùng với target_path. Nếu đúng, khi thao tác được thực thi, đường dẫn của target_file sẽ được kiểm tra để xác nhận rằng đường dẫn đó có thể thực thi và một lỗi sẽ được báo cáo nếu đường dẫn đó không thực thi được. 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ó quy trình xác minh nào được thực hiện.Tính năng này không có ý nghĩa đối với |
progress_message
|
string; or None;
default = NoneThông báo tiến trình sẽ hiển thị cho người dùng trong quá trình tạo. |
template_dict
TemplateDict actions.template_dict()
--+experimental_lazy_template_expansion Thử nghiệm: Trả về một đối tượng TemplateDict để mở rộng mẫu tiết kiệm bộ nhớ.
viết
None actions.write(output, content, is_executable=False)
expand_template.
Thông số
| Tham 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ể là một chuỗi hoặc một đối tượng actions.args().
|
is_executable
|
default = False Liệu tệp đầu ra có thể thực thi hay không. |