操作

报告问题 查看来源 Nightly · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

在规则分析期间创建的操作。

此对象可用于测试,并且可以从 Actions 提供程序中获取。通常情况下,无需在规则的实现函数中访问 Action 对象或其字段。您可能更想查看“规则”页面,了解在定义自定义规则时如何使用操作,或者查看API 参考,了解如何创建操作。

此对象的某些字段仅适用于特定类型的操作。不适用的字段设置为 None

成员

args

sequence Action.args

包含操作实参相关信息的冻结 Args 对象列表。这些对象包含准确的实参信息,包括涉及扩展操作输出目录的实参。不过,在分析阶段,Args 对象不可读。如需了解分析阶段提供的不太准确的实参说明,请参阅 argv

请注意,某些类型的操作尚不支持公开此字段。对于此类操作类型,此值为 None。 可能会返回 None

argv

sequence Action.argv

对于由 ctx.actions.run()ctx.actions.run_shell() 创建的操作,这是要执行的命令行实参的不可变列表。请注意,对于 shell 操作,前两个实参将是 shell 路径和 "-c"。 可能会返回 None

内容

string Action.content

对于由 ctx.actions.write()ctx.actions.expand_template() 创建的操作,要写入的文件的内容(如果这些内容可以在分析阶段计算出来)。如果内容在执行阶段之前无法确定,则值为 None,例如当需要展开 Args 对象中的目录时。 可能会返回 None

env

dict Action.env

相应操作的“固定”环境变量。这仅包括由操作定义明确设置的环境设置,因此省略了仅在执行环境中预设的设置。

输入

depset Action.inputs

相应操作的一组输入文件。

助记符

string Action.mnemonic

相应操作的助记符。

输出

depset Action.outputs

相应操作的一组输出文件。

substitutions

dict Action.substitutions

对于由 ctx.actions.expand_template() 创建的操作,这是一个不可变的字典,用于保存替换映射。 可能会返回 None