ctx.actions
.
Participantes
- args
- declare_directory (em inglês)
- declare_file.
- declare_symlink.
- não fazer
- expand_template [modelo_de_expansão]
- executar
- run_shell (em inglês)
- link simbólico
- template_dict (em inglês)
- escrever
args
Args actions.args()Retorna um objeto Args que pode ser usado para criar linhas de comando com uso eficiente da memória.
diretório_declarar
File actions.declare_directory(filename, *, sibling=None)Declara que a regra ou o aspecto cria um diretório com o nome fornecido no pacote atual. Crie uma ação que gere o diretório. O conteúdo do diretório não pode ser acessado diretamente no Starlark, mas pode ser expandido em um comando de ação com
Args.add_all()
. Apenas arquivos e diretórios regulares podem estar no conteúdo expandido de um declarar_directory.
Parâmetros
Parâmetro | Descrição |
---|---|
filename
|
required Se nenhum "sibling" fornecido, o caminho do novo diretório, 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 reside no mesmo diretório do diretório recém-declarado. O arquivo precisa estar no pacote atual. |
declarar_arquivo
File actions.declare_file(filename, *, sibling=None)Declara que a regra ou o aspecto cria um arquivo com o nome de arquivo fornecido. Se
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, você precisa criar separadamente uma ação que emita o arquivo. Para criar essa ação, será 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 (e não podem) ser declarados usando essa função. Você pode ver os objetos File
de ctx.outputs
. Veja um exemplo de uso.
Parâmetros
Parâmetro | Descrição |
---|---|
filename
|
required Se nenhum "sibling" fornecido, o caminho do novo arquivo, em relação 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 reside no mesmo diretório do arquivo recém-criado. O arquivo precisa estar no pacote atual. |
declarar_link simbólico
File actions.declare_symlink(filename, *, sibling=None)
Este parâmetro é experimental e pode ser alterado a qualquer momento. Ele pode ser desativado ao definir --noexperimental_allow_unresolved_symlinks
Declara que a regra ou o aspecto cria um link simbólico com o nome fornecido no pacote atual. É preciso criar uma ação que gere esse link simbólico. O Bazel nunca faz referência a esse link simbólico e o transfere exatamente para sandboxes ou executores remotos. No momento, links simbólicos dentro de artefatos de árvore não são compatíveis.
Parâmetros
Parâmetro | Descrição |
---|---|
filename
|
required Se nenhum "sibling" fornecido, o caminho do novo symlink, em relação 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 reside no mesmo diretório do symlink recém-declarado. |
nada
None actions.do_nothing(mnemonic, inputs=[])Cria uma ação vazia que não executa um comando nem produz qualquer saída, mas que é útil para inserir "ações extras".
Parâmetros
Parâmetro | Descrição |
---|---|
mnemonic
|
required É 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. |
expandir_modelo
None actions.expand_template(template, output, substitutions={}, is_executable=False, computed_substitutions=unbound)Cria uma ação de expansão de modelo. Quando a ação é executada, ela gera um arquivo com base em um modelo. Partes do modelo serão substituídas usando o dicionário
substitutions
, na ordem em que as substituições forem especificadas. Sempre que uma chave do dicionário aparece no modelo (ou como resultado de uma substituição anterior), ela é 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}
). Veja um exemplo de uso.
Parâmetros
Parâmetro | Descrição |
---|---|
template
|
required O arquivo de modelo, que é um arquivo de texto codificado em UTF-8. |
output
|
required 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. Este parâmetro é experimental e pode ser alterado a qualquer momento. Não dependa dele. Ela pode ser ativada de forma experimental pela configuração de --+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=unbound)Cria uma ação que executa um executável. Veja um exemplo de uso.
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 ;
default = []Lista ou dependência 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 alteração nesses arquivos pode afetar as saídas da ação. |
executable
|
File; or string; or FilesToRunProvider ; obrigatórioO arquivo executável a ser chamado pela ação. |
tools
|
sequence; or depset ;
default = unboundLista ou dependência de todas as ferramentas necessárias para a ação. Ferramentas são entradas com arquivos de execução adicionais 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. Arquivos que estão diretamente na lista e são provenientes de ctx.executable têm seus arquivos de execução adicionados automaticamente. Quando um depset é fornecido, ele precisa conter apenas arquivos. Em ambos os casos, os arquivos dentro de dependências não têm referência cruzada com ctx.executable para runfiles. |
arguments
|
sequence ;
default = []Argumentos da 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 exibida ao usuário durante a compilação, por exemplo, "Compilação de foo.cc para criar foo.o". A mensagem pode conter padrões %{label} , %{input} ou %{output} , que são substituídos por string de rótulo, primeira entrada ou caminho de saída, respectivamente. Use padrões em vez de strings estáticas porque elas são mais eficientes.
|
use_default_shell_env
|
default = False Se a ação deve ou não usar o ambiente de shell integrado. |
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 dos arquivos de execução de entrada. Normalmente, eles são gerados por resolve_command. |
exec_group
|
string; or None ;
default = NoneExecuta a ação na plataforma de execução do grupo de executivos fornecido. Se não houver, 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 oculta determinada adicionados à lista de entradas e ao ambiente da ação. O ambiente de ação pode substituir qualquer variável de ambiente da ação oculta. Se não houver, usa apenas as entradas e o ambiente especificado da ação. |
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 flutuante ou um int:
Se esse parâmetro for definido como O callback precisa ser de nível superior (funções lambda e aninhadas não são permitidas). |
toolchain
|
Label; or string; or None ; padrão = não vinculadoTipo de conjunto de ferramentas do executável ou das ferramentas usadas nessa ação. O parâmetro deve ser definido para que a ação seja executada na plataforma de execução correta. Ela é um ambiente autônomo no momento, mas recomendamos defini-la quando um conjunto de ferramentas é usado, porque ele será necessário nas versões futuras do Bazel. A regra que cria essa ação precisa definir essa cadeia de ferramentas dentro da função "rule()". Quando os parâmetros `toolchain` e `exec_group` são definidos, o "exec_group" é usado. Um erro será gerado caso o `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=unbound)Cria uma ação que executa um comando de shell. Veja um exemplo de uso.
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 ;
default = []Lista ou dependência dos arquivos de entrada da ação. |
tools
|
sequence of Files; or depset ;
default = unboundLista ou dependência de todas as ferramentas necessárias para a ação. Ferramentas são entradas com arquivos de execução adicionais disponibilizados automaticamente para a ação. A lista pode conter instâncias de Files ou FilesToRunProvider. |
arguments
|
sequence ;
default = []Argumentos da 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 do shell, como Se |
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 ;
obrigatóriocomando do shell a ser executado. Pode ser uma string (de preferência) ou uma sequência de strings (obsoleta). Se (Obsoleto) Se O Bazel usa o mesmo shell para executar o comando das regras gerais. |
progress_message
|
string; or None ;
default = NoneMensagem de progresso exibida ao usuário durante a compilação, por exemplo, "Compilação de foo.cc para criar foo.o". A mensagem pode conter padrões %{label} , %{input} ou %{output} , que são substituídos por string de rótulo, primeira entrada ou caminho de saída, respectivamente. Use padrões em vez de strings estáticas porque elas são mais eficientes.
|
use_default_shell_env
|
default = False Se a ação deve ou não usar o ambiente de shell integrado. |
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 dos arquivos de execução de entrada. Normalmente, eles são gerados por resolve_command. |
exec_group
|
string; or None ;
default = NoneExecuta a ação na plataforma de execução do grupo de executivos fornecido. Se não houver, 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 oculta determinada que foram adicionadas à lista de entradas da ação. Se não houver, usa 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 ; padrão = não vinculadoTipo de conjunto de ferramentas do executável ou das ferramentas usadas nessa ação. O parâmetro deve ser definido para que a ação seja executada na plataforma de execução correta. Ela é um ambiente autônomo no momento, mas recomendamos defini-la quando um conjunto de ferramentas é usado, porque ele será necessário nas versões futuras do Bazel. A regra que cria essa ação precisa definir essa cadeia de ferramentas dentro da função "rule()". Quando os parâmetros `toolchain` e `exec_group` são definidos, o "exec_group" é 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)Cria uma ação que grava um link simbólico no sistema de arquivos.
Esta função precisa ser chamada com exatamente uma das target_file
ou target_path
especificadas.
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 é alterado.
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()
) é alterado. Em particular, isso pode ser usado para criar um link simbólico suspenso.
Parâmetros
Parâmetro | Descrição |
---|---|
output
|
required A saída dessa ação. |
target_file
|
File; or None ;
default = NoneO arquivo a que o symlink de saída apontará. |
target_path
|
string; or None ;
default = NoneO caminho exato para o qual o symlink de saída apontará. Nenhuma normalização ou outro processamento é aplicado. |
is_executable
|
default = False Pode ser usado apenas com target_file , não target_path . Se verdadeiro, quando a ação for executada, o caminho do target_file será verificado para confirmar que é executável, e um erro será informado se não for. 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 ;
default = NoneMensagem de progresso a ser exibida para o usuário durante a build. |
modelo_dict
TemplateDict actions.template_dict()Experimental. Esta API é experimental e pode ser alterada a qualquer momento. Não dependa dele. Ele pode ser ativado em uma experiência experimental, definindo
--+experimental_lazy_template_expansion
Experimental: retorna um objeto TemplateDict para expansão de modelo com eficiência de memória.
write
None actions.write(output, content, is_executable=False)Cria uma ação de gravação de arquivo. Quando a ação é executada, ela grava o conteúdo fornecido em um arquivo. Ele é usado para gerar arquivos com as informações disponíveis na fase de análise. Se o arquivo for grande e tiver muito conteúdo estático, considere usar
expand_template
.
Parâmetros
Parâmetro | Descrição |
---|---|
output
|
required 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
|
default = False Se o arquivo de saída precisa ser executável. |