ctx.actions を使用します。メンバー
- args
- declare_directory
- declare_file
- declare_symlink
- do_nothing
- expand_template
- map_directory
- run
- run_shell
- symlink
- template_dict
- 書き込み
args
Args actions.args()
declare_directory
File actions.declare_directory(filename, *, sibling=None)
Args.add_all() を使用してアクション コマンドで展開できます。declare_directory の展開されたコンテンツに含めることができるのは、通常のファイルとディレクトリのみです。
      パラメータ
| パラメータ | 説明 | 
|---|---|
| filename | string;
                                     必須 「兄弟」が指定されていない場合、現在のパッケージを基準とした新しいディレクトリのパス。それ以外の場合は、ファイルのベース名(「sibling」はディレクトリを定義します)。 | 
| sibling | File、または None。デフォルトはNoneです。新しく宣言されたディレクトリと同じディレクトリに存在するファイル。ファイルは現在のパッケージに含まれている必要があります。 | 
declare_file
File actions.declare_file(filename, *, sibling=None)
sibling が指定されていない場合、ファイル名はパッケージ ディレクトリを基準とします。指定されている場合、ファイルは sibling と同じディレクトリにあります。現在のパッケージの外部でファイルを作成することはできません。ファイルを宣言するだけでなく、ファイルを生成するアクションを別途作成する必要があることに注意してください。このアクションを作成するには、返された File オブジェクトをアクションの構築関数に渡す必要があります。
事前宣言された出力ファイルは、この関数を使用して宣言する必要はありません(また、宣言することもできません)。代わりに ctx.outputs から File オブジェクトを取得できます。使用例をご覧ください。
      
パラメータ
| パラメータ | 説明 | 
|---|---|
| filename | string;
                                     必須 「sibling」が指定されていない場合、現在のパッケージを基準とする新しいファイルのパス。それ以外の場合は、ファイルのベース名(「sibling」でディレクトリを決定)。 | 
| sibling | ファイル、または None。デフォルトはNoneです。新しく作成されたファイルと同じディレクトリに存在するファイル。ファイルは現在のパッケージに含まれている必要があります。 | 
declare_symlink
File actions.declare_symlink(filename, *, sibling=None)
パラメータ
| パラメータ | 説明 | 
|---|---|
| filename | 文字列。必須 「兄弟」が指定されていない場合、現在のパッケージに対する新しいシンボリック リンクの相対パス。それ以外の場合は、ファイルのベース名(「sibling」はディレクトリを定義します)。 | 
| sibling | ファイル。または None。デフォルトはNoneです。新しく宣言されたシンボリック リンクと同じディレクトリに存在するファイル。 | 
do_nothing
None actions.do_nothing(*, mnemonic, inputs=[])パラメータ
| パラメータ | 説明 | 
|---|---|
| mnemonic | 文字列;
                                     必須 アクションを 1 語で説明します(例: CppCompile、GoLink)。 | 
| inputs | File の sequence、または depset。デフォルトは []です。 アクションの入力ファイルのリスト。 | 
expand_template
None actions.expand_template(*, template, output, substitutions={}, is_executable=False, computed_substitutions=unbound)substitutions ディクショナリを使用して置き換えられます。辞書のキーがテンプレート(または以前の置換の結果)に現れるたびに、関連付けられた値に置き換えられます。キーに特別な構文はありません。たとえば、競合を避けるために中かっこを使用できます(例: {KEY})。使用例を参照してください。
      パラメータ
| パラメータ | 説明 | 
|---|---|
| template | ファイル;
                                     必須 テンプレート ファイル。UTF-8 でエンコードされたテキスト ファイルです。 | 
| output | ファイル;
                                     必須 出力ファイル。UTF-8 でエンコードされたテキスト ファイルです。 | 
| substitutions | dict; デフォルトは {}テンプレートを展開するときに行う置換。 | 
| is_executable | bool;
                                     デフォルトは False出力ファイルを実行可能にするかどうか。 | 
| computed_substitutions | TemplateDict。デフォルトは unboundです。 テンプレートを拡張するときに行う置換。 | 
map_directory
None actions.map_directory(*, input_directories, additional_inputs={}, output_directories, tools, additional_params={}, execution_requirements=None, exec_group=None, toolchain=None, use_default_shell_env=False, env=None, mnemonic=None, implementation)パラメータ
| パラメータ | 説明 | 
|---|---|
| input_directories | File の dict。必須 ctx.actions.declare_directory()で宣言された文字列と入力ディレクトリのマッピング(ここでは値としてディレクトリのみが許可されます)。これらの値は、実装関数でファイルにアクセスするために展開するディレクトリを指定します。キー(文字列)は、実装関数内の特定のディレクトリを簡単に参照するための識別子として機能します。 | 
| additional_inputs | dict。デフォルトは {}です。 文字列と追加の入力のマッピングのディクショナリ(ここではファイル、FilesToRunProvider、Depset のみが許可されます)。これらの値は、実装関数によって作成されたアクションからアクセスできるようにする追加の入力を指定します。キー(文字列)は、実装関数内から特定の入力を簡単に参照するための識別子として機能します。 | 
| output_directories | File の dict。必須 ctx.actions.declare_directory()で宣言された文字列と出力ディレクトリのマッピングの辞書。値は、実装関数によって作成されたアクションで生成する出力ディレクトリを指定します。キー(文字列)は、実装関数内から特定の出力ディレクトリを簡単に参照するための識別子として機能します。 | 
| tools | dict;
                                     必須 文字列とツール(ファイル、FilesToRunProvider、Depset のみ使用可能)のマッピングの辞書。値は、実装関数によって作成されたアクションからアクセスできるようにするツールを指定します。キー(文字列)は、実装関数内から特定のツールを簡単に参照するための識別子として機能します。 | 
| additional_params | dict; デフォルトは {}文字列を追加パラメータにマッピングする辞書(ここでは文字列、ブール値、整数値のみが許可されます)。値は、実装関数の動作に影響を与える可能性のある追加のパラメータを指定します。キー(文字列)は、実装関数内から特定のパラメータを簡単に参照するための識別子として機能します。 | 
| execution_requirements | dict。または None。デフォルトはNoneです。 作成されたアクションのスケジュール設定に関する情報。便利なキーについては、タグをご覧ください。 | 
| exec_group | 文字列、または None。デフォルトはNoneです。 指定された実行グループの実行プラットフォームで、作成されたアクションを実行します。指定しない場合は、ターゲットのデフォルトの実行プラットフォームを使用します。 | 
| toolchain | ラベル、文字列、 None。デフォルトはNoneです。 作成されたアクションで使用される実行可能ファイルまたはツールのツールチェーン タイプ。 実行可能ファイルとツールがツールチェーンから提供されていない場合は、このパラメータを  実行可能ファイルとツールがツールチェーンから提供される場合、作成されたアクションが正しい実行プラットフォームで実行されるように、ツールチェーン タイプを設定する必要があります。 これらのアクションを作成するルールでは、その「rule()」関数内でこのツールチェーンを定義する必要があります。 
 | 
| use_default_shell_env | bool; デフォルトは False作成されたアクションで、いくつかの OS 依存変数と --action_envで設定された変数で構成されるデフォルトのシェル環境を使用するかどうか。
 | 
| env | dict、または None。デフォルトはNoneです。 環境変数の辞書を設定します。 
 | 
| mnemonic | 文字列。または None。デフォルトはNoneです。 作成されたアクションの説明(CppCompile や GoLink など)。 | 
| implementation | function;
                                     必須 入力ディレクトリがビルドされた後に呼び出され、指定された出力ディレクトリにファイルを出力するアクションを生成する Starlark 関数。この関数には、次の引数が渡されます。 
 | 
run
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=unbound)パラメータ
| パラメータ | 説明 | 
|---|---|
| outputs | File の sequence。必須 アクションの出力ファイルのリスト。 | 
| inputs | File の sequence、または depset。デフォルトは []です。 アクションの入力ファイルのリストまたは depset。 | 
| unused_inputs_list | File または None。デフォルトはNoneです。アクションで使用されていない入力のリストを含むファイル。 このファイルの内容(通常はアクションの出力の 1 つ)は、アクションの実行全体で使用されなかった入力ファイルのリストに対応しています。これらのファイルに対する変更は、アクションの出力に影響を与えてはなりません。 | 
| executable | File、string、または FilesToRunProvider。必須。 アクションによって呼び出される実行可能ファイル。 | 
| tools | sequence、または depset。デフォルトは unboundです。 アクションに必要なツールのリストまたは depset。ツールは実行可能な入力であり、アクションで自動的に使用可能になる独自のランファイルを持つ場合があります。リストが指定されている場合、次の要素の異種コレクションにすることができます。 
 ctx.executableのFileと、リストに直接含まれるFilesToRunProviderの実行ファイルは自動的に追加されます。すべてのツールが入力として暗黙的に追加されます。 | 
| arguments | sequence;
                                     デフォルトは []アクションのコマンドライン引数。文字列または actions.args()オブジェクトのリストにする必要があります。 | 
| mnemonic | 文字列、または None。デフォルトはNoneです。 アクションの 1 語の説明(CppCompile や GoLink など)。 | 
| progress_message | string、または None。デフォルトはNoneです。 ビルド中にユーザーに表示する進行状況メッセージ(例: 「foo.cc をコンパイルして foo.o を作成中」)。メッセージには %{label}、%{input}、%{output}のパターンを含めることができます。これらのパターンは、それぞれラベル文字列、最初の入力、出力のパスに置き換えられます。静的文字列よりもパターンを使用することをおすすめします。パターンの方が効率的です。 | 
| use_default_shell_env | bool。デフォルトは Falseです。 アクションでデフォルトのシェル環境を使用するかどうか。デフォルトのシェル環境は、いくつかの OS 依存変数と --action_envで設定された変数で構成されます。
 | 
| env | dict、または None。デフォルトはNoneです。 環境変数の辞書を設定します。 
 | 
| execution_requirements | dict、または None。デフォルトはNoneです。 アクションのスケジュール設定に関する情報。便利なキーについては、タグをご覧ください。 | 
| input_manifests | sequence、または None。デフォルトはNoneです。 以前の引数。無視されます。 | 
| exec_group | string、または None。デフォルトはNoneです。 指定された実行グループの実行プラットフォームでアクションを実行します。指定しない場合は、ターゲットのデフォルトの実行プラットフォームを使用します。 | 
| shadowed_action | アクション。デフォルトは Noneです。指定されたシャドー アクションの入力と環境を使用してアクションを実行します。この入力と環境は、アクションの入力リストと環境に追加されます。アクション環境は、シャドーイングされたアクションの環境変数を上書きできます。ない場合は、アクションの入力と指定された環境のみを使用します。 | 
| resource_set | 呼び出し可能、または None。デフォルトはNoneです。 このアクションがローカルで実行される場合に、実行時のリソース使用量を推定するために使用される、リソースセット ディクショナリを返すコールバック関数。 この関数は、OS 名を表す文字列(「osx」など)と、アクションへの入力数を表す整数という 2 つの位置引数を受け取ります。返される辞書には、次のエントリが含まれる場合があります。各エントリは float または int のいずれかになります。 
 このパラメータが  コールバックはトップレベルにする必要があります(ラムダ関数とネストされた関数は使用できません)。 | 
| toolchain | ラベル、文字列、または None。デフォルトはunboundです。 このアクションで使用される実行可能ファイルまたはツールのツールチェーン タイプ。 実行可能ファイルとツールがツールチェーンから取得されていない場合は、このパラメータを `None` に設定します。 実行可能ファイルとツールがツールチェーンから提供される場合、アクションが正しい実行プラットフォームで実行されるように、ツールチェーン タイプを設定する必要があります。 このアクションを作成するルールでは、その rule() 関数内でこのツールチェーンを定義する必要があります。 `toolchain` パラメータと `exec_group` パラメータの両方が設定されている場合は、`exec_group` が使用されます。`exec_group` で同じツールチェーンが指定されていない場合、エラーが発生します。 | 
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=unbound)パラメータ
| パラメータ | 説明 | 
|---|---|
| outputs | File の sequence。必須 アクションの出力ファイルのリスト。 | 
| inputs | File の sequence、または depset。デフォルトは []です。 アクションの入力ファイルのリストまたは depset。 | 
| tools | File の sequence、または depset。デフォルトは unboundです。 アクションに必要なツールのリストまたは depset。ツールは実行可能な入力であり、アクションで自動的に使用可能になる独自のランファイルを持つ場合があります。リストが指定されている場合、次の要素の異種コレクションにすることができます。 
 ctx.executableのFileと、リストに直接含まれるFilesToRunProviderの実行ファイルは自動的に追加されます。すべてのツールが入力として暗黙的に追加されます。 | 
| arguments | sequence;
                                     デフォルトは []アクションのコマンドライン引数。文字列のリストまたは actions.args()オブジェクトにする必要があります。Bazel は、この属性の要素をコマンドの引数として渡します。コマンドは、 
 | 
| mnemonic | 文字列、または None。デフォルトはNoneです。 アクションの 1 語の説明(CppCompile や GoLink など)。 | 
| command | string、または string の sequence。必須 実行するシェル コマンド。これは、文字列(推奨)または文字列のシーケンス (非推奨)のいずれかになります。 
 (非推奨)  Bazel は、genrule と同じシェルを使用してコマンドを実行します。 | 
| progress_message | string、または None。デフォルトはNoneです。 ビルド中にユーザーに表示する進行状況メッセージ(例: 「foo.cc をコンパイルして foo.o を作成中」)。メッセージには %{label}、%{input}、%{output}のパターンを含めることができます。これらのパターンは、それぞれラベル文字列、最初の入力、出力のパスに置き換えられます。静的文字列よりもパターンを使用することをおすすめします。パターンの方が効率的です。 | 
| use_default_shell_env | bool。デフォルトは Falseです。 アクションでデフォルトのシェル環境を使用するかどうか。デフォルトのシェル環境は、いくつかの OS 依存変数と --action_envで設定された変数で構成されます。
 | 
| env | dict、または None。デフォルトはNoneです。 環境変数の辞書を設定します。 
 | 
| execution_requirements | dict、または None。デフォルトはNoneです。 アクションのスケジュール設定に関する情報。便利なキーについては、タグをご覧ください。 | 
| input_manifests | sequence、または None。デフォルトはNoneです。 以前の引数。無視されます。 | 
| exec_group | string、または None。デフォルトはNoneです。 指定された実行グループの実行プラットフォームでアクションを実行します。指定しない場合は、ターゲットのデフォルトの実行プラットフォームを使用します。 | 
| shadowed_action | Action: デフォルトは None指定されたシャドー アクションの検出された入力がアクションの入力リストに追加された状態で、アクションを実行します。指定しない場合は、アクションの入力のみを使用します。 | 
| resource_set | 呼び出し可能。または None。デフォルトはNoneです。ローカルで実行する場合のリソース使用量を推定するためのコールバック関数。 ctx.actions.run()をご覧ください。 | 
| toolchain | ラベル、文字列、または None。デフォルトはunboundです。 このアクションで使用される実行可能ファイルまたはツールのツールチェーン タイプ。 実行可能ファイルとツールがツールチェーンから取得されていない場合は、このパラメータを `None` に設定します。 実行可能ファイルとツールがツールチェーンから提供される場合、アクションが正しい実行プラットフォームで実行されるように、ツールチェーン タイプを設定する必要があります。 このアクションを作成するルールでは、その rule() 関数内でこのツールチェーンを定義する必要があります。 `toolchain` パラメータと `exec_group` パラメータの両方が設定されている場合は、`exec_group` が使用されます。`exec_group` で同じツールチェーンが指定されていない場合、エラーが発生します。 | 
symlink
None actions.symlink(*, output, target_file=None, target_path=None, target_type=None, is_executable=False, progress_message=None)この関数は、target_file または target_path のいずれか 1 つを指定して呼び出す必要があります。
target_file を使用する場合は、declare_file() または declare_directory() を使用して output を宣言し、target_file の型と一致させます。これにより、シンボリック リンクが target_file を指すようになります。Bazel は、シンボリック リンクのターゲットまたはその内容が変更されるたびに、このアクションの出力を無効にします。
それ以外の場合は、target_path を使用するときに、declare_symlink() を使用して output を宣言します。この場合、シンボリック リンクは target_path を指します。Bazel はシンボリック リンクを解決しません。このアクションの出力が無効になるのは、シンボリック リンクのテキスト コンテンツ(つまり readlink() の値)が変更された場合のみです。特に、これを使用して、ぶら下がりシンボリック リンクを作成できます。
パラメータ
| パラメータ | 説明 | 
|---|---|
| output | ファイル;
                                     必須 このアクションの出力。 | 
| target_file | ファイル。または None。デフォルトはNoneです。 出力シンボリック リンクが指すファイル。 | 
| target_path | 文字列、または None。デフォルトはNoneです。 出力シンボリック リンクが指す正確なパス。正規化などの処理は適用されません。 | 
| target_type | 文字列、または None。デフォルトはNoneです。 target_fileではなくtarget_pathでのみ使用できます。指定する場合、ターゲット パスの想定されるタイプを示す「file」または「directory」のいずれかにする必要があります。Windows では、作成するファイル システム オブジェクトの種類(ディレクトリの場合はジャンクション、ファイルの場合はシンボリック リンク)を決定します。他のオペレーティング システムには影響しません。 | 
| is_executable | bool;
                                     デフォルトは Falsetarget_fileでのみ使用できます。target_pathでは使用できません。true の場合、アクションの実行時にtarget_fileのパスがチェックされ、実行可能であることが確認されます。実行可能でない場合はエラーが報告されます。is_executableを False に設定しても、ターゲットが実行不可能になるわけではありません。検証が行われないだけです。
 | 
| progress_message | 文字列、または None。デフォルトはNoneです。 ビルド中にユーザーに表示する進行状況メッセージ。 | 
template_dict
TemplateDict actions.template_dict()
write
None actions.write(output, content, is_executable=False, *, mnemonic=None)expand_template の使用を検討してください。
      パラメータ
| パラメータ | 説明 | 
|---|---|
| output | ファイル;
                                     必須 出力ファイル。 | 
| content | string、または Args。必須。 ファイルのコンテンツ。文字列または actions.args()オブジェクトを指定できます。 | 
| is_executable | bool;
                                     デフォルトは False出力ファイルを実行可能にするかどうか。 | 
| mnemonic | 文字列、または None。デフォルトはNoneです。 アクションの 1 語の説明(CppCompile や GoLink など)。 |