# Action

{% dynamic setvar source_file "src/main/java/com/google/devtools/build/lib/starlarkbuildapi/ActionApi.java" %} {% dynamic setvar version "8.1.0" %} {% dynamic setvar original_path "/rules/lib/builtins/Action" %} {% include "_buttons.html" %} 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 for a general discussion of how to use actions when defining custom rules, or the API reference 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
- argv
- content
- env
- inputs
- mnemonic
- outputs
- substitutions

## args

    sequence Action.args

A list of frozen Args objects containing information about the action arguments. These objects contain accurate argument information, including arguments involving expanded action output directories. However, 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.

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() or ctx.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() or ctx.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 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(), an immutable dict holding the substitution mapping. May return `None`.