Bash@3 – Tarefa Bash v3
Use essa tarefa para executar um script Bash no macOS, Linux ou Windows.
Nota
Em um host do Windows, isso executa bash da distribuição padrão do WSL. O WSL deve ser instalado e o usuário que o agente executa como deve ter uma configuração de distribuição. O WSL é instalado em imagens de agente do Windows hospedadas pela Microsoft. Para obter mais informações, consulte agentes hospedados pela Microsoft – Software.
Sintaxe
# Bash v3
# Run a Bash script on macOS, Linux, or Windows.
- task: Bash@3
inputs:
#targetType: 'filePath' # 'filePath' | 'inline'. Type. Default: filePath.
filePath: # string. Required when targetType = filePath. Script Path.
#arguments: # string. Optional. Use when targetType = filePath. Arguments.
#script: # string. Required when targetType = inline. Script.
# Advanced
#workingDirectory: # string. Working Directory.
#failOnStderr: false # boolean. Fail on Standard Error. Default: false.
#bashEnvValue: # string. Set value for BASH_ENV environment variable.
# Bash v3
# Run a Bash script on macOS, Linux, or Windows.
- task: Bash@3
inputs:
#targetType: 'filePath' # 'filePath' | 'inline'. Type. Default: filePath.
filePath: # string. Required when targetType = filePath. Script Path.
#arguments: # string. Optional. Use when targetType = filePath. Arguments.
#script: # string. Required when targetType = inline. Script.
# Advanced
#workingDirectory: # string. Working Directory.
#failOnStderr: false # boolean. Fail on Standard Error. Default: false.
#noProfile: true # boolean. Don't load the profile startup/initialization files. Default: true.
#noRc: true # boolean. Don't read the `~/.bashrc' initialization file. Default: true.
# Bash v3
# Run a Bash script on macOS, Linux, or Windows.
- task: Bash@3
inputs:
#targetType: 'filePath' # 'filePath' | 'inline'. Type. Default: filePath.
filePath: # string. Required when targetType = filePath. Script Path.
#arguments: # string. Optional. Use when targetType = filePath. Arguments.
#script: # string. Required when targetType = inline. Script.
# Advanced
#workingDirectory: # string. Working Directory.
#failOnStderr: false # boolean. Fail on Standard Error. Default: false.
Entradas
targetType
-
tipo
string
. Valores permitidos: filePath
(Caminho do Arquivo), inline
. Valor padrão: filePath
.
Tipo de script de destino: caminho do arquivo ou embutido.
filePath
-
caminho de script
string
. Necessário quando targetType = filePath
.
O caminho do script a ser executado. Esse deve ser um caminho totalmente qualificado ou relativo a $(System.DefaultWorkingDirectory)
.
argumentos arguments
-
string
. Opcional. Use quando targetType = filePath
.
Os argumentos passados para o script de shell. Parâmetros ordinais ou parâmetros nomeados.
de Script script
-
string
. Necessário quando targetType = inline
. Valor padrão: # Write your commands here\n\necho 'Hello world'
.
O conteúdo do script.
de Script script
-
string
. Necessário quando targetType = inline
. Valor padrão: # Write your commands here\n\n# Use the environment variables input below to pass secret variables to this script
.
O conteúdo do script.
do Diretório de Trabalho do workingDirectory
-
string
.
Especifica o diretório de trabalho no qual você deseja executar o comando. Se você deixá-lo vazio, o diretório de trabalho será $(Build.SourcesDirectory).
failOnStderr
-
falha no de erro padrão
boolean
. Valor padrão: false
.
Se isso for verdadeiro, essa tarefa falhará se algum erro for gravado no fluxo de StandardError
.
bashEnvValue
-
Definir valor para BASH_ENV variável de ambiente
string
.
Se a entrada for especificada, seu valor será expandido e usado como o caminho de um arquivo de inicialização a ser executado antes de executar o script. Se a variável de ambiente BASH_ENV
já tiver sido definida, a tarefa substituirá essa variável apenas para a tarefa atual. Saiba mais sobre de arquivos de inicialização do bash.
noProfile
-
Não carregue os arquivos de inicialização/inicialização de perfil
boolean
. Valor padrão: true
.
Não carregue o arquivo de inicialização em todo o sistema /etc/profile
ou qualquer um dos arquivos de inicialização pessoal.
noRc
- **Não leia o ~/.bashrc' initialization file**<br>
booliano. Default value:
verdadeiro".
Opções de controle de tarefa
Todas as tarefas têm opções de controle além de suas entradas de tarefa. Para obter mais informações, consulte as opções de Controle de e as propriedades comuns da tarefa.
Variáveis de saída
Nenhum.
Observações
A tarefa bash tem um atalho em YAML: steps.bash.
steps:
- bash: string # Required as first property. An inline script.
## Other task inputs
A tarefa Bash encontrará a primeira implementação bash em seu sistema.
Executar which bash
no Linux/macOS ou where bash
no Windows lhe dará uma ideia de qual deles ele selecionará.
Informações sobre arquivos de inicialização do Bash
A tarefa Bash invoca o Bash como um shell não interativo e não de logon. Quando o Bash é iniciado de forma não interativa, para executar um script de shell, o Bash procura a variável BASH_ENV
no ambiente, desdobra seu valor se ele aparece lá e usa o valor como o nome de um arquivo para ler e executar.
Há várias opções para definir a variável de ambiente BASH_ENV
em um pipeline. Em primeiro lugar, é possível definir a variável de ambiente BASH_ENV
como uma variável de pipeline. Nesse caso, cada instância da tarefa Bash tentará desdobrar o valor da variável BASH_ENV
e usar seu valor.
variables:
BASH_ENV: "~/.profile"
steps:
- task: Bash@3
inputs:
targetType: 'inline'
script: env
Outra opção é definir BASH_ENV
para uma instância específica da tarefa Bash, há duas maneiras de fazer isso:
A primeira maneira é usar a entrada da tarefa bashEnvValue
, consulte um exemplo para referência:
steps:
- task: Bash@3
inputs:
targetType: 'inline'
script: env
bashEnvValue: '~/.profile'
Outra maneira é definir a variável BASH_ENV
como uma variável de ambiente para a tarefa de pipeline por meio da palavra-chave env
, por exemplo:
- task: Bash@3
inputs:
targetType: 'inline'
script: env
env:
BASH_ENV: '~/.profile'
Nota
Observe que, se a entrada bashEnvValue
for definida na tarefa Bash, a tarefa de pipeline substituirá o valor da variável BASH_ENV
com o valor da entrada bashEnvValue
em um caso em que a variável de ambiente BASH_ENV
já estava definida no ambiente.
Os scripts bash verificados no repositório devem ser definidos executáveis (chmod +x
).
Caso contrário, a tarefa mostrará um aviso e source
o arquivo.
Exemplos
Você pode mapear variáveis usando o parâmetro env
que é comum em todas as tarefase é uma lista de itens adicionais a serem mapeados para o ambiente do processo.
Por exemplo, variáveis secretas não são mapeadas automaticamente. Se você tiver uma variável secreta chamada Foo
, poderá mapeá-la desta forma:
steps:
- task: Bash@3
inputs:
targetType: 'inline'
script: echo $MYSECRET
env:
MYSECRET: $(Foo)
No macOS ou linux, o exemplo acima é equivalente a:
steps:
- script: echo $MYSECRET
env:
MYSECRET: $(Foo)
Requisitos
Requisito | Descrição |
---|---|
Tipos de pipeline | YAML, build clássico, versão clássica |
Execuções em | Agent, DeploymentGroup |
de demandas | Nenhum |
recursos | Essa tarefa não atende a nenhuma demanda para tarefas subsequentes no trabalho. |
restrições de comando | Qualquer |
variáveis settable | Qualquer |
Versão do agente | 2.115.0 ou superior |
Categoria de tarefa | Utilidade |