ctx.actions
を使用します。
メンバー
- args
- declare_directory
- declare_file
- declare_symlink
- do_nothing
- expand_template
- ランニング
- run_shell
- symlink
- template_dict
- 書き込み
args
Args actions.args()メモリ効率の高いコマンドラインの構築に使用できる Args オブジェクトを返します。
declare_directory
File actions.declare_directory(filename, *, sibling=None)ルールまたはアスペクトが、現在のパッケージ内に指定の名前のディレクトリを作成することを宣言します。ディレクトリを生成するアクションを作成する必要があります。ディレクトリの内容は Starlark から直接アクセスすることはできませんが、
Args.add_all()
を使用してアクション コマンドで展開できます。
パラメータ
パラメータ | 説明 |
---|---|
filename
|
必須 「sibling」がない場合指定された新しいディレクトリのパス(現在のパッケージに対する相対パス)。それ以外は、ファイルのベース名です(兄弟姉妹はディレクトリを定義)。 |
sibling
|
File; or None 、
デフォルト = None新たに宣言されたディレクトリと同じディレクトリに存在するファイル。ファイルは現在のパッケージ内に存在する必要があります。 |
declare_file
File actions.declare_file(filename, *, sibling=None)ルールまたはアスペクトが、指定されたファイル名でファイルを作成することを宣言します。
sibling
が指定されていない場合、ファイル名はパッケージ ディレクトリからの相対名になります。それ以外の場合は、ファイルは sibling
と同じディレクトリにあります。現在のパッケージの外部でファイルを作成することはできません。ファイルを宣言するだけでなく、ファイルを発行するアクションを別途作成する必要があります。このアクションを作成するには、返された File
オブジェクトをアクションの構築関数に渡す必要があります。
事前に宣言された出力ファイルは、この関数を使用して宣言する必要はありません(宣言することもできません)。代わりに、ctx.outputs
から File
オブジェクトを取得できます。使用例をご覧ください。
パラメータ
パラメータ | 説明 |
---|---|
filename
|
必須 「sibling」がない場合指定された新しいファイルのパス(現在のパッケージに対する相対パス)。それ以外の場合は、ファイルのベース名を指定します(兄弟要素でディレクトリが決まります)。 |
sibling
|
File; or None 、
デフォルト = None新しく作成されたファイルと同じディレクトリに存在するファイル。ファイルは現在のパッケージ内に存在する必要があります。 |
declare_symlink
File actions.declare_symlink(filename, *, sibling=None)
試験運用版。このパラメータは試験運用版で、いつでも変更できます。これに依存しないでください。--experimental_allow_unresolved_symlinks
を設定することで、試験運用版として有効にできます。
ルールまたはアスペクトが、現在のパッケージ内に指定の名前のシンボリック リンクを作成することを宣言します。このシンボリック リンクを生成するアクションを作成する必要があります。Bazel はこのシンボリック リンクを逆参照せず、サンドボックスまたはリモート エグゼキュータにそのまま転送します。
パラメータ
パラメータ | 説明 |
---|---|
filename
|
必須 「sibling」がない場合指定された、新しいシンボリック リンクのパス(現在のパッケージを基準とする相対パス)。それ以外は、ファイルのベース名です(兄弟姉妹はディレクトリを定義)。 |
sibling
|
File; or None 、
デフォルト = None新しく宣言されたシンボリック リンクと同じディレクトリに存在するファイル。 |
do_nothing
None actions.do_nothing(mnemonic, inputs=[])コマンドを実行も出力も生成しない空のアクションを作成しますが、「追加のアクション」を挿入するために役立ちます。
パラメータ
パラメータ | 説明 |
---|---|
mnemonic
|
必須 アクションの 1 単語の説明(CppCompile や GoLink など)。 |
inputs
|
sequence of Files; or 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
|
default = {} テンプレートを展開する際の置換。 |
is_executable
|
デフォルト = False 出力ファイルを実行可能にするかどうか。 |
computed_substitutions
|
TemplateDict 、
デフォルト = バインドなし試験運用版。このパラメータは試験運用版で、いつでも変更できます。これに依存しないでください。 --+experimental_lazy_template_expansion [試験運用版: テンプレートの拡張時に使用する置換] を設定すると、試験運用版に基づいて有効にできます。 |
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=None)実行可能ファイルを実行するアクションを作成します。使用例をご覧ください。
パラメータ
パラメータ | 説明 |
---|---|
outputs
|
sequence of Files 、
必須アクションの出力ファイルのリスト。 |
inputs
|
sequence of Files; or depset 、
デフォルト = []アクションの入力ファイルのリストまたは依存関係。 |
unused_inputs_list
|
File; or None 、
デフォルト = Noneアクションで使用しない入力のリストを含むファイル。 このファイルの内容(通常はアクションの出力の一つ)は、アクションの実行中に使用されなかった入力ファイルのリストに対応しています。これらのファイルを変更しても、アクションの出力にはどのような影響も及びません。 |
executable
|
File; or string; or FilesToRunProvider 、
必須アクションによって呼び出される実行可能ファイル。 |
tools
|
sequence; or depset 、
デフォルト = バインドなしアクションに必要なツールを列挙またはデプロイします。ツールは、アクションで自動的に使用可能になる追加のランファイルを含む入力です。リストを指定する場合、Files の異種コレクション、FilesToRunProvider インスタンス、または Files の Depset になります。リスト内に直接あり、{6}cache.executable からのファイルには、runfile が自動的に追加されます。依存関係を指定する場合は、Files のみを含める必要があります。いずれの場合も、depset 内のファイルは、runfile で HDFS.executable との相互参照は行われません。 |
arguments
|
sequence 、
デフォルト = []アクションのコマンドライン引数。文字列または actions.args() オブジェクトのリストにする必要があります。
|
mnemonic
|
string; or None 、
デフォルト = Noneアクションの 1 単語の説明(CppCompile や GoLink など)。 |
progress_message
|
string; or None 、
デフォルト = Noneビルド中にユーザーに表示される進行状況メッセージ(例: 「Compiling foo.cc to create foo.o」)。メッセージには %{label} 、%{input} 、%{output} のパターンを含めることができ、これらはそれぞれラベル文字列、最初の入力、出力のパスに置換されます。静的文字列ではなくパターンを使用する方が効率的であるため、パターンを使用する。
|
use_default_shell_env
|
デフォルト = False アクションが組み込みのシェル環境を使用するかどうか。 |
env
|
dict; or None 、
デフォルト = None環境変数のディクショナリを設定します。 |
execution_requirements
|
dict; or None 、
デフォルト = Noneアクションをスケジュールするための情報。便利なキーについては、タグをご覧ください。 |
input_manifests
|
sequence; or None 、
デフォルト = None(試験運用版)入力ランファイル メタデータを設定します。これらは通常、resolve_command によって生成されます。 |
exec_group
|
string; or None 、
デフォルト = None指定された実行グループの実行プラットフォームでアクションを実行します。指定しない場合、ターゲットのデフォルトの実行プラットフォームが使用されます。 |
shadowed_action
|
Action 、
デフォルト = None指定されたシャドウ アクションの入力と、アクションの入力リストと環境に追加された環境を使用して、アクションを実行します。アクション環境は、シャドウ アクションの環境変数を上書きできます。指定しない場合、アクションの入力と指定された環境のみを使用します。 |
resource_set
|
callable; or None 、
デフォルト = Noneリソースセット ディクショナリを返すコールバック関数。このアクションがローカルで実行される場合に、実行時にリソース使用量を見積もるために使用されます。 この関数は 2 つの位置引数を受け取ります。OS 名(「osx」など)を表す文字列と、アクションへの入力数を表す整数です。返されるディクショナリには次のエントリが含まれます。各エントリは float または int です。
このパラメータが コールバックはトップレベルにする必要があります(ラムダ関数とネストされた関数は使用できません)。 |
toolchain
|
Label; or string; or None 、
デフォルト = Noneこのアクションで使用される実行可能ファイルまたはツールのツールチェーン タイプ。アクションが正しい実行プラットフォームで実行されるように、このパラメータを設定する必要があります。 現時点では何もする必要はありませんが、今後の Bazel リリースで必要になるため、ツールチェーンを使用するときに設定することをおすすめします。 このアクションを作成するルールでは、このツールチェーンを「rule()」内で定義する必要があります。使用します。 「ツールチェーン」と「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=None)シェルコマンドを実行するアクションを作成します。使用例をご覧ください。
パラメータ
パラメータ | 説明 |
---|---|
outputs
|
sequence of Files 、
必須アクションの出力ファイルのリスト。 |
inputs
|
sequence of Files; or depset 、
デフォルト = []アクションの入力ファイルのリストまたは依存関係。 |
tools
|
sequence of Files; or depset 、
デフォルト = バインドなしアクションに必要なツールを列挙またはデプロイします。ツールは、アクションで自動的に使用可能になる追加のランファイルを含む入力です。このリストには、Files インスタンスまたは FilesToRunProvider インスタンスを含めることができます。 |
arguments
|
sequence 、
デフォルト = []アクションのコマンドライン引数。文字列または actions.args() オブジェクトのリストにする必要があります。Bazel は、この属性内の要素を引数としてコマンドに渡します。コマンドは、
|
mnemonic
|
string; or None 、
デフォルト = Noneアクションの 1 単語の説明(CppCompile や GoLink など)。 |
command
|
string; or sequence of strings 、
必須実行するシェルコマンドを実行します。文字列(推奨)か、文字列のシーケンス(非推奨)を指定できます。
(非推奨) Bazel は genrules と同じシェルを使用してコマンドを実行します。 |
progress_message
|
string; or None 、
デフォルト = Noneビルド中にユーザーに表示される進行状況メッセージ(例: 「Compiling foo.cc to create foo.o」)。メッセージには %{label} 、%{input} 、%{output} のパターンを含めることができ、これらはそれぞれラベル文字列、最初の入力、出力のパスに置換されます。静的文字列ではなくパターンを使用する方が効率的であるため、パターンを使用する。
|
use_default_shell_env
|
デフォルト = False アクションが組み込みのシェル環境を使用するかどうか。 |
env
|
dict; or None 、
デフォルト = None環境変数のディクショナリを設定します。 |
execution_requirements
|
dict; or None 、
デフォルト = Noneアクションをスケジュールするための情報。便利なキーについては、タグをご覧ください。 |
input_manifests
|
sequence; or None 、
デフォルト = None(試験運用版)入力ランファイル メタデータを設定します。これらは通常、resolve_command によって生成されます。 |
exec_group
|
string; or None 、
デフォルト = None指定された実行グループの実行プラットフォームでアクションを実行します。指定しない場合、ターゲットのデフォルトの実行プラットフォームが使用されます。 |
shadowed_action
|
Action 、
デフォルト = Noneアクションの入力リストに追加された、指定されたシャドウ アクションで検出された入力を使用してアクションを実行します。指定しない場合は、アクションの入力のみを使用します。 |
resource_set
|
callable; or None 、
デフォルト = Noneローカルで実行する場合のリソース使用量を見積もるためのコールバック関数。 ctx.actions.run() を参照してください。
|
toolchain
|
Label; or string; or None 、
デフォルト = Noneこのアクションで使用される実行可能ファイルまたはツールのツールチェーン タイプ。アクションが正しい実行プラットフォームで実行されるように、このパラメータを設定する必要があります。 現時点では何もする必要はありませんが、今後の Bazel リリースで必要になるため、ツールチェーンを使用するときに設定することをおすすめします。 このアクションを作成するルールでは、このツールチェーンを「rule()」内で定義する必要があります。使用します。 「ツールチェーン」と「exec_group」の両方のパラメータが設定されている場合、`exec_group` が使用されます。`exec_group` で同じものが指定されていない場合、エラーが発生します。ツールチェーン。 |
symlink
None actions.symlink(output, target_file=None, target_path=None, is_executable=False, progress_message=None)ファイル システムにシンボリック リンクを書き込むアクションを作成します。
この関数は、target_file
または target_path
のいずれか 1 つのみを指定して呼び出す必要があります。
target_file
を使用する場合は、output
を declare_file()
または declare_directory()
で宣言し、target_file
の型と一致させます。これにより、シンボリック リンクが target_file
を指すようになります。Bazel は、シンボリック リンクのターゲットまたはその内容が変更されるたびに、このアクションの出力を無効にします。
それ以外の場合は、target_path
を使用するときに、declare_symlink()
で output
を宣言します。この場合、シンボリック リンクは target_path
を指します。Bazel ではシンボリック リンクは解決されず、シンボリック リンクのテキスト コンテンツ(readlink()
の値)が変更された場合にのみ、このアクションの出力が無効になります。特に、これを使用してダングリング シンボリック リンクを作成できます。
パラメータ
パラメータ | 説明 |
---|---|
output
|
必須 このアクションの出力。 |
target_file
|
File; or None 、
デフォルト = None出力シンボリック リンクが参照するファイル。 |
target_path
|
string; or None 、
デフォルト = None(試験運用版)出力シンボリック リンクが指す正確なパス。正規化やその他の処理は適用されません。この機能を使用するには、 --experimental_allow_unresolved_symlinks を設定する必要があります。
|
is_executable
|
デフォルト = Falsetarget_file でのみ使用でき、target_path では使用できません。true の場合、アクションの実行時に target_file のパスがチェックされて実行可能かどうかが確認され、実行可能でない場合はエラーが報告されます。is_executable を False に設定しても、ターゲットが実行不可であるわけではなく、検証が行われないだけです。
|
progress_message
|
string; or None 、
デフォルト = Noneビルド中にユーザーに表示される進行状況メッセージ。 |
template_dict
TemplateDict actions.template_dict()試験運用版。この API は試験運用版であり、いつでも変更される可能性があります。これに依存しないでください。
--+experimental_lazy_template_expansion
を設定すると、試験運用版として有効にできます。試験運用版: メモリ効率の高いテンプレート拡張用の TemplateDict オブジェクトを返します。
write
None actions.write(output, content, is_executable=False)ファイル書き込みアクションを作成します。アクションの実行時に、指定されたコンテンツがファイルに書き込まれます。分析フェーズで入手可能な情報を使用してファイルを生成するために使用されます。ファイルが大きく、静的コンテンツが多い場合は、
expand_template
の使用を検討してください。
パラメータ
パラメータ | 説明 |
---|---|
output
|
必須 出力ファイル。 |
content
|
string; or Args 、
必須表示されます。文字列または actions.args() オブジェクトのいずれかになります。
|
is_executable
|
デフォルト = False 出力ファイルを実行可能にするかどうか。 |