blob: 4df968ad7ba6edd39166e5cb12bc5212586c9c68 [file]
---
title: 'Action'
---
An action created during rule analysis.
This object is visible for the purpose of testing, and may be obtained from an `Actions` provider. It is normally not necessary to access `Action` objects or their fields within a rule's implementation function. You may instead want to see the [Rules page](https://bazel.build/versions/7.6.1/extending/rules#actions) for a general discussion of how to use actions when defining custom rules, or the [API reference](../builtins/actions) for creating actions.
Some fields of this object are only applicable for certain kinds of actions. Fields that are inapplicable are set to `None`.
## Members
* [args](#args)
* [argv](#argv)
* [content](#content)
* [env](#env)
* [inputs](#inputs)
* [mnemonic](#mnemonic)
* [outputs](#outputs)
* [substitutions](#substitutions)
## args
```
sequence Action.args
```
A list of frozen [Args](../builtins/Args) objects containing information about the action arguments. These objects contain accurate argument information, including arguments involving expanded action output directories. However, [Args](../builtins/Args) objects are not readable in the analysis phase. For a less accurate account of arguments which is available in the analysis phase, see [argv](#argv).
Note that some types of actions do not yet support exposure of this field. For such action types, this is `None`.
May return `None`.
## argv
```
sequence Action.argv
```
For actions created by [ctx.actions.run()](../builtins/actions#run) or [ctx.actions.run\_shell()](../builtins/actions#run_shell) an immutable list of the arguments for the command line to be executed. Note that for shell actions the first two arguments will be the shell path and `"-c"`.
May return `None`.
## content
```
string Action.content
```
For actions created by [ctx.actions.write()](../builtins/actions#write) or [ctx.actions.expand\_template()](../builtins/actions#expand_template), the contents of the file to be written, if those contents can be computed during the analysis phase. The value is `None` if the contents cannot be determined until the execution phase, such as when a directory in an [Args](../builtins/Args) object needs to be expanded.
May return `None`.
## env
```
dict Action.env
```
The 'fixed' environment variables for this action. This includes only environment settings which are explicitly set by the action definition, and thus omits settings which are only pre-set in the execution environment.
## inputs
```
depset Action.inputs
```
A set of the input files of this action.
## mnemonic
```
string Action.mnemonic
```
The mnemonic for this action.
## outputs
```
depset Action.outputs
```
A set of the output files of this action.
## substitutions
```
dict Action.substitutions
```
For actions created by [ctx.actions.expand\_template()](../builtins/actions#expand_template), an immutable dict holding the substitution mapping.
May return `None`.