ctx.actions.
Membros
- args
- declare_directory
- declare_file
- declare_symlink
- do_nothing
- expand_template
- run
- run_shell
- symlink
- template_dict
- write
args
Args actions.args()
declare_directory
File actions.declare_directory(filename, *, sibling=None)
Args.add_all().
Parâmetros
| Parâmetro | Descrição |
|---|---|
filename
|
obrigatório Se nenhum "sibling" for fornecido, o caminho do novo diretório será relativo ao pacote atual. Caso contrário, um nome base para um arquivo ("sibling" define um diretório). |
sibling
|
File; or None;
default = NoneUm arquivo que fica no mesmo diretório que o diretório recém-declarado. O arquivo precisa estar no pacote atual. |
declare_file
File actions.declare_file(filename, *, sibling=None)
sibling não for especificado, o nome do arquivo será relativo ao diretório do pacote. Caso contrário, o arquivo estará no mesmo diretório que sibling. Não é possível criar arquivos fora do pacote atual.Além de declarar um arquivo, você precisa criar uma ação que o emita. Para criar essa ação, é necessário transmitir o objeto File retornado à função de construção da ação.
Os arquivos de saída pré-declarados não precisam (e não podem) ser declarados usando essa função. Em vez disso, obtenha os objetos File de ctx.outputs. Veja um exemplo de uso.
Parâmetros
| Parâmetro | Descrição |
|---|---|
filename
|
obrigatório Se nenhum "sibling" for fornecido, o caminho do novo arquivo será relativo ao pacote atual. Caso contrário, um nome base para um arquivo ("sibling" determina um diretório). |
sibling
|
File; or None;
default = NoneUm arquivo que fica no mesmo diretório do arquivo recém-criado. O arquivo precisa estar no pacote atual. |
declare_symlink
File actions.declare_symlink(filename, *, sibling=None)
Experimental. Esse parâmetro é experimental e pode mudar a qualquer momento. Não dependa dela. Ele pode ser ativado experimentalmente definindo --experimental_allow_unresolved_symlinks
Declara que a regra ou o aspecto cria um link simbólico com o nome especificado no pacote atual. Você precisa criar uma ação que gere esse link simbólico. O Bazel nunca vai desreferenciar esse link simbólico e o transferirá literalmente para sandboxes ou executores remotos.
Parâmetros
| Parâmetro | Descrição |
|---|---|
filename
|
obrigatório Se nenhum "sibling" for fornecido, o caminho do novo link simbólico será relativo ao pacote atual. Caso contrário, um nome base para um arquivo ("sibling" define um diretório). |
sibling
|
File; or None;
default = NoneUm arquivo que fica no mesmo diretório do novo link simbólico declarado. |
do_nothing
None actions.do_nothing(mnemonic, inputs=[])
Parâmetros
| Parâmetro | Descrição |
|---|---|
mnemonic
|
obrigatório Uma descrição de uma palavra da ação, por exemplo, CppCompile ou GoLink. |
inputs
|
sequence of Files; or depset;
default = []Lista dos arquivos de entrada da ação. |
expand_template
None actions.expand_template(template, output, substitutions={}, is_executable=False, computed_substitutions=unbound)
substitutions, na ordem em que as substituições são especificadas. Sempre que uma chave do dicionário aparece no modelo (ou em um resultado de uma substituição anterior), ela é substituída pelo valor associado. Não há uma sintaxe especial para as chaves. Por exemplo, você pode usar chaves para evitar conflitos (por exemplo, {KEY}). Confira um exemplo de uso.
Parâmetros
| Parâmetro | Descrição |
|---|---|
template
|
obrigatório O arquivo de modelo, que é um arquivo de texto codificado em UTF-8. |
output
|
obrigatório O arquivo de saída, que é um arquivo de texto codificado em UTF-8. |
substitutions
|
default = {} Substituições a serem feitas ao expandir o modelo. |
is_executable
|
default = False Se o arquivo de saída precisa ser executável. |
computed_substitutions
|
TemplateDict;
default = unboundExperimental. Esse parâmetro é experimental e pode mudar a qualquer momento. Não dependa dela. Ele pode ser ativado de forma experimental definindo --+experimental_lazy_template_expansion Experimental: Substitutions to make when expanding the template. |
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)
Parâmetros
| Parâmetro | Descrição |
|---|---|
outputs
|
sequence of Files;
requiredLista dos arquivos de saída da ação. |
inputs
|
sequence of Files; or depset;
default = []Lista ou depset dos arquivos de entrada da ação. |
unused_inputs_list
|
File; or None;
default = NoneArquivo que contém a lista de entradas não usadas pela ação. O conteúdo desse arquivo (geralmente uma das saídas da ação) corresponde à lista de arquivos de entrada que não foram usados durante toda a execução da ação. Nenhuma mudança nesses arquivos pode afetar as saídas da ação. |
executable
|
File; or string; or FilesToRunProvider;
requiredO arquivo executável a ser chamado pela ação. |
tools
|
sequence; or depset;
default = unboundLista ou conjunto de dependências de qualquer ferramenta necessária para a ação. As ferramentas são entradas com runfiles extras que são disponibilizados automaticamente para a ação. Quando uma lista é fornecida, ela pode ser uma coleção heterogênea de arquivos, instâncias de FilesToRunProvider ou depsets de arquivos. Os arquivos que estão diretamente na lista e vêm de ctx.executable terão os runfiles adicionados automaticamente. Quando um depset é fornecido, ele precisa conter apenas arquivos. Em ambos os casos, os arquivos dentro dos depsets não são referenciados com ctx.executable para runfiles. |
arguments
|
sequence;
default = []Argumentos de linha de comando da ação. Precisa ser uma lista de strings ou objetos actions.args().
|
mnemonic
|
string; or None;
default = NoneUma descrição de uma palavra da ação, por exemplo, CppCompile ou GoLink. |
progress_message
|
string; or None;
default = NoneMensagem de progresso a ser mostrada ao usuário durante o build, por exemplo, "Compilando foo.cc para criar foo.o". A mensagem pode conter padrões %{label}, %{input} ou %{output}, que são substituídos pela string de marcador, pela primeira entrada ou pelo caminho da saída, respectivamente. Prefira usar padrões em vez de strings estáticas, porque os primeiros são mais eficientes.
|
use_default_shell_env
|
default = False Indica se a ação deve usar o ambiente de shell integrado ou não. |
env
|
dict; or None;
default = NoneDefine o dicionário de variáveis de ambiente. |
execution_requirements
|
dict; or None;
default = NoneInformações para programar a ação. Consulte tags para chaves úteis. |
input_manifests
|
sequence; or None;
default = None(Experimental) define os metadados de runfiles de entrada, que geralmente são gerados por resolve_command. |
exec_group
|
string; or None;
default = NoneExecuta a ação na plataforma de execução do grupo de execução especificado. Se nenhum, usa a plataforma de execução padrão do destino. |
shadowed_action
|
Action;
default = NoneExecuta a ação usando as entradas e o ambiente da ação sombreada especificada, que são adicionados à lista de entradas e ao ambiente da ação. O ambiente de ação pode substituir qualquer uma das variáveis de ambiente da ação sombreada. Se nenhum, usa apenas as entradas da ação e o ambiente especificado. |
resource_set
|
callable; or None;
default = NoneUma função de callback que retorna um dicionário de conjunto de recursos, usado para estimar o uso de recursos no momento da execução se essa ação for executada localmente. A função aceita dois argumentos posicionais: uma string que representa um nome de SO (por exemplo, "osx") e um número inteiro que representa o número de entradas para a ação. O dicionário retornado pode conter as seguintes entradas, cada uma delas podendo ser um ponto flutuante ou um número inteiro:
Se esse parâmetro for definido como O callback precisa ser de nível superior (lambdas e funções aninhadas não são permitidos). |
toolchain
|
Label; or string; or None;
default = NoneTipo de cadeia de ferramentas do executável ou das ferramentas usadas nesta ação. O parâmetro precisa ser definido para que a ação seja executada na plataforma correta. No momento, não há operação, mas recomendamos definir isso quando um conjunto de ferramentas é usado, porque será necessário em versões futuras do Bazel. A regra que cria essa ação precisa definir essa cadeia de ferramentas na função "rule()". Quando os parâmetros "toolchain" e "exec_group" são definidos, o "exec_group" é usado. Um erro será gerado se o `exec_group` não especificar o mesmo. |
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)
Parâmetros
| Parâmetro | Descrição |
|---|---|
outputs
|
sequence of Files;
requiredLista dos arquivos de saída da ação. |
inputs
|
sequence of Files; or depset;
default = []Lista ou depset dos arquivos de entrada da ação. |
tools
|
sequence of Files; or depset;
default = unboundLista ou conjunto de dependências de qualquer ferramenta necessária para a ação. As ferramentas são entradas com runfiles extras que são disponibilizados automaticamente para a ação. A lista pode conter instâncias de "Files" ou "FilesToRunProvider". |
arguments
|
sequence;
default = []Argumentos de linha de comando da ação. Precisa ser uma lista de strings ou objetos actions.args().O Bazel transmite os elementos nesse atributo como argumentos para o comando.O comando pode acessar esses argumentos usando substituições de variáveis de shell, como Quando |
mnemonic
|
string; or None;
default = NoneUma descrição de uma palavra da ação, por exemplo, CppCompile ou GoLink. |
command
|
string; or sequence of strings;
requiredComando do shell a ser executado. Pode ser uma string (preferencial) ou uma sequência de strings (descontinuada). Se (Descontinuado) Se O Bazel usa o mesmo shell para executar o comando que usa para genrules. |
progress_message
|
string; or None;
default = NoneMensagem de progresso a ser mostrada ao usuário durante o build, por exemplo, "Compilando foo.cc para criar foo.o". A mensagem pode conter padrões %{label}, %{input} ou %{output}, que são substituídos pela string de marcador, pela primeira entrada ou pelo caminho da saída, respectivamente. Prefira usar padrões em vez de strings estáticas, porque os primeiros são mais eficientes.
|
use_default_shell_env
|
default = False Indica se a ação deve usar o ambiente de shell integrado ou não. |
env
|
dict; or None;
default = NoneDefine o dicionário de variáveis de ambiente. |
execution_requirements
|
dict; or None;
default = NoneInformações para programar a ação. Consulte tags para chaves úteis. |
input_manifests
|
sequence; or None;
default = None(Experimental) define os metadados de runfiles de entrada, que geralmente são gerados por resolve_command. |
exec_group
|
string; or None;
default = NoneExecuta a ação na plataforma de execução do grupo de execução especificado. Se nenhum, usa a plataforma de execução padrão do destino. |
shadowed_action
|
Action;
default = NoneExecuta a ação usando as entradas descobertas da ação sombreada fornecida adicionadas à lista de entradas da ação. Se não houver, use apenas as entradas da ação. |
resource_set
|
callable; or None;
default = NoneUma função de callback para estimar o uso de recursos se executada localmente. Consulte ctx.actions.run().
|
toolchain
|
Label; or string; or None;
default = NoneTipo de cadeia de ferramentas do executável ou das ferramentas usadas nesta ação. O parâmetro precisa ser definido para que a ação seja executada na plataforma correta. No momento, não há operação, mas recomendamos definir isso quando um conjunto de ferramentas é usado, porque será necessário em versões futuras do Bazel. A regra que cria essa ação precisa definir essa cadeia de ferramentas na função "rule()". Quando os parâmetros "toolchain" e "exec_group" são definidos, o "exec_group" é usado. Um erro será gerado se o `exec_group` não especificar a mesma cadeia de ferramentas. |
link simbólico
None actions.symlink(output, target_file=None, target_path=None, is_executable=False, progress_message=None)
Essa função precisa ser chamada com exatamente um dos valores target_file ou target_path especificados.
Ao usar target_file, declare output com declare_file() ou declare_directory() e corresponda ao tipo de target_file. Isso faz com que o link simbólico aponte para target_file. O Bazel invalida a saída dessa ação sempre que o destino do link simbólico ou o conteúdo dele muda.
Caso contrário, ao usar target_path, declare output com declare_symlink()). Nesse caso, o link simbólico aponta para target_path. O Bazel nunca resolve o link simbólico, e a saída dessa ação é invalidada apenas quando o conteúdo de texto do link simbólico (ou seja, o valor de readlink()) muda. Em particular, isso pode ser usado para criar um link simbólico pendente.
Parâmetros
| Parâmetro | Descrição |
|---|---|
output
|
required A saída desta ação. |
target_file
|
File; or None;
default = NoneO arquivo para o qual o link simbólico de saída vai apontar. |
target_path
|
string; or None;
default = None(Experimental) The exact path that the output symlink will point to. Nenhuma normalização ou outro processamento é aplicado. Para acessar esse recurso, defina --experimental_allow_unresolved_symlinks.
|
is_executable
|
default = False Só pode ser usado com target_file, não com target_path. Se for verdadeiro, quando a ação for executada, o caminho do target_file será verificado para confirmar se ele é executável, e um erro será informado se não for. Definir is_executable como "False" não significa que o destino não é executável, apenas que nenhuma verificação é feita.Esse recurso não faz sentido para |
progress_message
|
string; or None;
default = NoneMensagem de progresso a ser mostrada ao usuário durante o build. |
template_dict
TemplateDict actions.template_dict()
--+experimental_lazy_template_expansion Experimental: retorna um objeto TemplateDict para expansão de modelo com eficiência de memória.
gravação
None actions.write(output, content, is_executable=False)
expand_template.
Parâmetros
| Parâmetro | Descrição |
|---|---|
output
|
obrigatório O arquivo de saída. |
content
|
string; or Args;
requiredo conteúdo do arquivo. Pode ser uma string ou um objeto actions.args().
|
is_executable
|
default = False Se o arquivo de saída precisa ser executável. |