ctx.actions
.
Membros
- args
- declare_directory
- declare_file
- declare_symlink
- do_nothing
- expand_template
- executar
- run_shell
- link simbólico
- template_dict
- escrever
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 não houver "irmão" fornecido, caminho do novo diretório, relativo ao pacote atual. Caso contrário, um nome base para um arquivo ("irmãos" define um diretório). |
sibling
|
File; or None
padrão = NenhumUm arquivo que reside no mesmo diretório que o 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.Lembre-se de que, além de declarar um arquivo, é preciso criar separadamente uma ação que o emita. Para criar essa ação, é necessário transmitir o objeto File
retornado para a função de construção da ação.
Os arquivos de saída pré-declarados não precisam ser declarados (nem podem ser) usando essa função. Você pode buscar os objetos File
deles em ctx.outputs
. Confira um exemplo de uso.
Parâmetros
Parâmetro | Descrição |
---|---|
filename
|
obrigatório Se não houver "irmão" fornecido, caminho do novo arquivo, relativo ao pacote atual. Caso contrário, um nome base para um arquivo ("irmão" determina um diretório). |
sibling
|
File; or None
padrão = NenhumUm arquivo que reside no mesmo diretório que o 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 ser alterado a qualquer momento. Não dependa disso. Ele pode ser ativado de forma experimental configurando --experimental_allow_unresolved_symlinks
Declara que a regra ou o aspecto cria um link simbólico com o nome especificado no pacote atual. Crie uma ação que gere esse link simbólico. O Bazel nunca vai cancelar a referência desse link simbólico e vai transferi-lo literalmente para sandboxes ou executores remotos.
Parâmetros
Parâmetro | Descrição |
---|---|
filename
|
obrigatório Se não houver "irmão" fornecido, caminho do novo link simbólico, relativo ao pacote atual. Caso contrário, um nome base para um arquivo ("irmãos" define um diretório). |
sibling
|
File; or None
padrão = NenhumUm arquivo que reside no mesmo diretório que o link simbólico recém-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
padrão = []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 aparecer no modelo (ou um resultado de uma substituição anterior), ela será substituída pelo valor associado. Não há sintaxe especial para as chaves. Você pode, por exemplo, 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
|
padrão = Falso Se o arquivo de saída deve ser executável. |
computed_substitutions
|
TemplateDict
padrão = não vinculadoExperimental. Esse parâmetro é experimental e pode ser alterado a qualquer momento. Não dependa disso. Para ativar esse recurso de forma experimental, defina --+experimental_lazy_template_expansion Experimental: substituições a serem feitas ao expandir o modelo. |
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
obrigatórioLista dos arquivos de saída da ação. |
inputs
|
sequence of Files; or depset
padrão = []Lista ou exclusão dos arquivos de entrada da ação. |
unused_inputs_list
|
File; or None
padrão = NenhumArquivo contendo 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. As alterações feitas nesses arquivos não podem afetar de maneira alguma as saídas da ação. |
executable
|
File; or string; or FilesToRunProvider
obrigatórioO arquivo executável que será chamado pela ação. |
tools
|
sequence; or depset
padrão = não vinculadoLista ou desativação de todas as ferramentas necessárias para a ação. As ferramentas são entradas com outros arquivos de execuçã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 dependências de Files. Os arquivos de execução que estiverem diretamente na lista e vindos de ctx.executable terão seus arquivos de execução adicionados automaticamente. Quando um recurso é fornecido, ele precisa conter apenas arquivos. Em ambos os casos, os arquivos em depsets não têm referência cruzada com o ctx.executable para runfiles. |
arguments
|
sequence
padrão = []Argumentos de linha de comando da ação. Precisa ser uma lista de strings ou objetos actions.args() .
|
mnemonic
|
string; or None
padrão = NenhumUma descrição de uma palavra da ação, por exemplo, CppCompile ou GoLink. |
progress_message
|
string; or None
padrão = NenhumMensagem de progresso a ser exibida ao usuário durante a compilação, por exemplo, "Compiling foo.cc to create foo.o". A mensagem pode conter padrões %{label} , %{input} ou %{output} , que são substituídos pela string de rótulo, pela primeira entrada ou pelo caminho da saída, respectivamente. Prefira usar padrões em vez de strings estáticas, porque as primeiras são mais eficientes.
|
use_default_shell_env
|
padrão = Falso Se a ação deve ou não usar o ambiente shell integrado. |
env
|
dict; or None
padrão = NenhumDefine o dicionário de variáveis de ambiente. |
execution_requirements
|
dict; or None
padrão = NenhumInformações para programar a ação. Consulte tags para ver chaves úteis. |
input_manifests
|
sequence; or None
padrão = Nenhum(Experimental) define os metadados dos arquivos de execução de entrada; eles normalmente são gerados por resolve_command. |
exec_group
|
string; or None
padrão = NenhumExecuta a ação na plataforma de execução de determinado grupo de execução. Se nenhuma, a plataforma de execução padrão do destino será usada. |
shadowed_action
|
Action
padrão = NenhumExecuta a ação usando as entradas e o ambiente da ação ocultada adicionados à lista de entradas e ao ambiente da ação. O ambiente da ação pode substituir qualquer uma das variáveis de ambiente da ação oculta. Se nenhum, usa apenas as entradas da ação e o ambiente fornecido. |
resource_set
|
callable; or None
padrão = NenhumUma função de callback que retorna um dicionário de conjunto de recursos, usada para estimar o uso de recursos em tempo de execução, se a 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 das quais pode ser um ponto flutuante ou int:
Se esse parâmetro for definido como O callback precisa ser de nível superior. Funções aninhadas e lambda não são permitidas. |
toolchain
|
Label; or string; or None
padrão = NenhumTipo de conjunto 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 de execução correta. No momento, ele está em ambiente autônomo, mas recomendamos defini-lo quando um conjunto de ferramentas for usado, porque ele será necessário nas próximas versões do Bazel. Observe que a regra que cria essa ação precisa definir esse conjunto de ferramentas dentro de sua "rule()" função. Quando os parâmetros "conjunto de ferramentas" e "exec_group" estiverem definidos, "exec_group" será usado. Um erro será gerado caso "exec_group" não especifique 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
obrigatórioLista dos arquivos de saída da ação. |
inputs
|
sequence of Files; or depset
padrão = []Lista ou exclusão dos arquivos de entrada da ação. |
tools
|
sequence of Files; or depset
padrão = não vinculadoLista ou desativação de todas as ferramentas necessárias para a ação. As ferramentas são entradas com outros arquivos de execução disponibilizados automaticamente para a ação. A lista pode conter instâncias de Files ou FilesToRunProvider. |
arguments
|
sequence
padrão = []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 No caso em que |
mnemonic
|
string; or None
padrão = NenhumUma descrição de uma palavra da ação, por exemplo, CppCompile ou GoLink. |
command
|
string; or sequence of strings
obrigatórioShell a ser executado. Pode ser uma string (preferencial) ou uma sequência de strings (descontinuado). Se (Descontinuado) Se O Bazel usa o mesmo shell para executar o comando das regras gerais. |
progress_message
|
string; or None
padrão = NenhumMensagem de progresso a ser exibida ao usuário durante a compilação, por exemplo, "Compiling foo.cc to create foo.o". A mensagem pode conter padrões %{label} , %{input} ou %{output} , que são substituídos pela string de rótulo, pela primeira entrada ou pelo caminho da saída, respectivamente. Prefira usar padrões em vez de strings estáticas, porque as primeiras são mais eficientes.
|
use_default_shell_env
|
padrão = Falso Se a ação deve ou não usar o ambiente shell integrado. |
env
|
dict; or None
padrão = NenhumDefine o dicionário de variáveis de ambiente. |
execution_requirements
|
dict; or None
padrão = NenhumInformações para programar a ação. Consulte tags para ver chaves úteis. |
input_manifests
|
sequence; or None
padrão = Nenhum(Experimental) define os metadados dos arquivos de execução de entrada; eles normalmente são gerados por resolve_command. |
exec_group
|
string; or None
padrão = NenhumExecuta a ação na plataforma de execução de determinado grupo de execução. Se nenhuma, a plataforma de execução padrão do destino será usada. |
shadowed_action
|
Action
padrão = NenhumExecuta a ação usando as entradas descobertas da ação sombreada adicionadas à lista de entradas da ação. Se nenhuma, usa apenas as entradas da ação. |
resource_set
|
callable; or None
padrão = NenhumUma função de callback para estimar o uso de recursos se executada localmente. Consulte ctx.actions.run() .
|
toolchain
|
Label; or string; or None
padrão = NenhumTipo de conjunto 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 de execução correta. No momento, ele está em ambiente autônomo, mas recomendamos defini-lo quando um conjunto de ferramentas for usado, porque ele será necessário nas próximas versões do Bazel. Observe que a regra que cria essa ação precisa definir esse conjunto de ferramentas dentro de sua "rule()" função. Quando os parâmetros "conjunto de ferramentas" e "exec_group" estiverem definidos, "exec_group" será usado. Um erro será gerado caso "exec_group" não especifique o mesmo. conjunto 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 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
. Ele 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
. Ele nunca resolve o link simbólico, e a saída dessa ação é invalidada somente quando o conteúdo de texto do link simbólico (ou seja, o valor de readlink()
) muda. Em especial, isso pode ser usado para criar um link simbólico pendente.
Parâmetros
Parâmetro | Descrição |
---|---|
output
|
obrigatório A saída desta ação. |
target_file
|
File; or None
padrão = NenhumO arquivo para o qual o link simbólico de saída apontará. |
target_path
|
string; or None
padrão = Nenhum(Experimental) O caminho exato para o qual o link simbólico de saída apontará. Nenhuma normalização ou outro processamento é aplicado. O acesso a esse recurso requer a configuração de --experimental_allow_unresolved_symlinks .
|
is_executable
|
padrão = Falso 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 que ele é executável. Caso contrário, um erro será informado. Definir is_executable como falso não significa que o destino não é executável, apenas que nenhuma verificação foi feita.Esse recurso não faz sentido para |
progress_message
|
string; or None
padrão = NenhumMensagem de progresso a ser exibida ao usuário durante a criação. |
template_dict
TemplateDict actions.template_dict()
--+experimental_lazy_template_expansion
Experimental: retorna um objeto TemplateDict para uma 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
obrigatórioo conteúdo do arquivo. Pode ser uma string ou um objeto actions.args() .
|
is_executable
|
padrão = Falso Se o arquivo de saída deve ser executável. |