ctx.actions
.
Participantes
- args
- declare_directory
- declare_file
- declare_symlink
- do_nothing
- expand_template
- run
- run_shell
- link simbólico
- template_dict
- escrever
args
Args actions.args()Retorna um objeto Args que pode ser usado para criar linhas de comando com eficiência de memória.
declare_directory
File actions.declare_directory(filename, *, sibling=None)Declara que a regra ou o aspecto cria um diretório com o nome indicado no pacote atual. Você precisa criar uma ação que gere o diretório. O conteúdo do diretório não pode ser acessado diretamente do Starlark, mas pode ser aberto em um comando de ação com
Args.add_all()
.
Parâmetros
Parâmetro | Descrição |
---|---|
filename
|
Obrigatório Se nenhum "irmão" for fornecido, o caminho do novo diretório, relativo ao pacote atual. Caso contrário, um nome base para um arquivo ('IR' define um diretório). |
sibling
|
File; or None ;
default = NoneUm arquivo que reside 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)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 emite esse arquivo. 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 usando essa função (nem podem ser). Você pode acessar os objetos File
de ctx.outputs
em vez disso. Confira um exemplo de uso.
Parâmetros
Parâmetro | Descrição |
---|---|
filename
|
Obrigatório Se nenhum "irmão" for fornecido, o caminho do novo arquivo em relação ao pacote atual. Caso contrário, um nome base para um arquivo ('IRm' determina um diretório). |
sibling
|
File; or None ;
default = NoneUm 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. Ela pode ser ativada de forma experimental ao definir --experimental_allow_unresolved_symlinks
.
Declara que a regra ou o aspecto cria um link simbólico com o nome fornecido no pacote atual. Crie uma ação que gere esse link simbólico. O Bazel nunca cancela a referência a esse link simbólico e o transfere literalmente para sandboxes ou executores remotos.
Parâmetros
Parâmetro | Descrição |
---|---|
filename
|
Obrigatório Se nenhum "irmão" for fornecido, o caminho do novo link simbólico, relativo ao pacote atual. Caso contrário, um nome base para um arquivo ('IR' define um diretório). |
sibling
|
File; or None ;
default = NoneUm arquivo que fica no mesmo diretório que o link simbólico recém-declarado. |
do_nothing
None actions.do_nothing(mnemonic, inputs=[])Cria uma ação vazia que não executa um comando nem produz saídas, mas que é útil para inserir "ações extras".
Parâmetros
Parâmetro | Descrição |
---|---|
mnemonic
|
necessário Uma descrição da ação com uma palavra, 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)Cria uma ação de expansão do modelo. Quando a ação é executada, ela gera um arquivo com base em um modelo. Partes do modelo serão substituídas pelo dicionário
substitutions
, na ordem em que as substituições forem especificadas. Sempre que uma chave do dicionário aparecer no modelo (ou o 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
|
default = False Define se o arquivo de saída precisa 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. Ela pode ser ativada de forma experimental configurando --+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)Cria uma ação que executa um executável. Confira 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 desativação dos arquivos de entrada da ação. |
unused_inputs_list
|
File; or None ;
default = NoneArquivo contendo a lista de entradas não utilizadas 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 nesses arquivos não podem afetar de forma alguma 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 ;
padrão = não vinculadoLista ou remoção de todas as ferramentas necessárias para a ação. Ferramentas são entradas com runfiles adicionais que são automaticamente disponibilizadas para a ação. Quando uma lista é fornecida, ela pode ser uma coleção heterogênea de arquivos, instâncias do FilesToRunProvider ou depsets de arquivos. Os arquivos que estão diretamente na lista e vêm de ctx.executable terão os arquivos de execução adicionados automaticamente. Quando um depset é fornecido, ele precisa conter apenas arquivos. Nos dois casos, os arquivos em dependências não são comparados com ctx.executable para arquivos de execução. |
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 a ser mostrada ao usuário durante a criaçã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 os primeiros são mais eficientes.
|
use_default_shell_env
|
default = False Indica se a ação precisa usar o ambiente 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 as tags para ver as chaves úteis. |
input_manifests
|
sequence; or None ;
default = None(Experimental) define os metadados de entrada dos arquivos de execução. Eles normalmente são gerados por resolve_command. |
exec_group
|
string; or None ;
default = NoneExecuta a ação na plataforma de execução do grupo executivo especificado. Se nenhuma, 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 fornecida 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 oculta. Se nenhum, usa apenas as entradas da ação e o ambiente fornecido. |
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 tempo de execução se essa ação for executada localmente. A função aceita dois argumentos de posicionamento: uma string que representa um nome do SO (por exemplo, "osx") e um número inteiro que representa o número de entradas da ação. O dicionário retornado pode conter as seguintes entradas, cada uma delas pode ser um ponto flutuante ou um int:
Se o 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 = NoneTipo de conjunto de ferramentas do executável ou das ferramentas usadas na ação. O parâmetro precisa ser definido para que a ação seja executada na plataforma de execução correta. Ele é um ambiente autônomo no momento, mas recomendamos que você o defina quando um conjunto de ferramentas for usado, porque ele será necessário em versões futuras do Bazel. A regra que cria essa ação precisa definir esse conjunto de ferramentas dentro da função "rule()". Quando os parâmetros "dataset" e "exec_group" estiverem definidos, o "exec_group" será usado. Um erro é 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=None)Cria uma ação que executa um comando do shell. Confira 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 desativação dos arquivos de entrada da ação. |
tools
|
sequence of Files; or depset ;
padrão = não vinculadoLista ou remoção de todas as ferramentas necessárias para a ação. Ferramentas são entradas com runfiles adicionais que são automaticamente disponibilizadas para a ação. A lista pode conter instâncias do Files ou do 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 desse atributo como argumentos ao comando.Ele pode acessar esses argumentos usando substituições de variáveis de shell, como No caso em que |
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órioo comando do shell para 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 que as regras gerais. |
progress_message
|
string; or None ;
default = NoneMensagem de progresso a ser mostrada ao usuário durante a criaçã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 os primeiros são mais eficientes.
|
use_default_shell_env
|
default = False Indica se a ação precisa usar o ambiente 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 as tags para ver as chaves úteis. |
input_manifests
|
sequence; or None ;
default = None(Experimental) define os metadados de entrada dos arquivos de execução. Eles normalmente são gerados por resolve_command. |
exec_group
|
string; or None ;
default = NoneExecuta a ação na plataforma de execução do grupo executivo especificado. Se nenhuma, 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 fornecida adicionadas à lista de entradas da ação. Se nenhum, 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 = NoneTipo de conjunto de ferramentas do executável ou das ferramentas usadas na ação. O parâmetro precisa ser definido para que a ação seja executada na plataforma de execução correta. Ele é um ambiente autônomo no momento, mas recomendamos que você o defina quando um conjunto de ferramentas for usado, porque ele será necessário em versões futuras do Bazel. A regra que cria essa ação precisa definir esse conjunto de ferramentas dentro da função "rule()". Quando os parâmetros "dataset" e "exec_group" estiverem definidos, o "exec_group" será usado. Um erro é 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.
Essa função precisa ser chamada com exatamente um target_file
ou target_path
especificado.
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 do texto do link simbólico (ou seja, o valor de readlink()
) muda. Ele pode ser usado principalmente para criar um link simbólico.
Parâmetros
Parâmetro | Descrição |
---|---|
output
|
obrigatório Saída dessa 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) O caminho exato para o qual o link simbólico de saída vai apontar. Nenhuma normalização ou outro processamento é aplicado. O acesso a esse recurso requer a configuração de --experimental_allow_unresolved_symlinks .
|
is_executable
|
default = False Só pode ser usado com target_file , não 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 será 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. Essa API é experimental e pode mudar a qualquer momento. Não dependa disso. Ela pode ser ativada de forma 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. Isso é usado para gerar arquivos usando as informações disponíveis na fase de análise. Se o arquivo for grande e com muito conteúdo estático, use
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
|
default = False Define se o arquivo de saída precisa ser executável. |