Bash@3 - Tarefa Bash v3
Use essa tarefa para executar um script Bash no macOS, Linux ou Windows.
Syntax
# 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 do Script
string
. Obrigatório quando targetType = filePath
.
O caminho do script a ser executado. Deve ser um caminho totalmente qualificado ou relativo a $(System.DefaultWorkingDirectory)
.
arguments
- Argumentos
string
. Opcional. Use quando targetType = filePath
.
Os argumentos passados para o script de shell. Parâmetros ordinais ou parâmetros nomeados.
script
- Script
string
. Obrigatório quando targetType = inline
. Valor padrão: # Write your commands here\n\necho 'Hello world'
.
O conteúdo do script.
script
- Script
string
. Obrigató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.
workingDirectory
- Diretório de Trabalho
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 erro padrão
boolean
. Valor padrão: false
.
Se isso for verdadeiro, essa tarefa falhará se algum erro for gravado no StandardError
fluxo.
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 somente para a tarefa atual. Saiba mais sobre os Arquivos de Inicialização do Bash.
noProfile
- Não carregue os arquivos de inicialização/inicialização do perfil
boolean
. Valor padrão: true
.
Não carregue o arquivo /etc/profile
de inicialização em todo o sistema ou nenhum dos arquivos de inicialização pessoal.
noRc
- **Não leia o ~/.bashrc' initialization file**<br>
booliano. Default value:
true'.
Opções de controle da tarefa
Todas as tarefas têm opções de controle além de suas entradas de tarefa. Para obter mais informações, consulte Opções de controle e propriedades comuns da tarefa.
Variáveis de saída
Nenhum.
Comentários
A tarefa bash tem um atalho no YAML: steps.bash.
steps:
- bash: string # Required as first property. An inline script.
## Other task inputs
A tarefa Bash encontrará a primeira implementação do 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 aparecer 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
, confira 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'
Observação
Observe que, se a entrada bashEnvValue
for definida na tarefa Bash, a tarefa de pipeline substituirá o valor da variável BASH_ENV
pelo valor da entrada bashEnvValue
em um caso em que a variável de ambiente BASH_ENV
já estava definida no ambiente.
Os scripts Bash que passaram por check-in no repositório devem ser definidos como executáveis (chmod +x
).
Caso contrário, a tarefa mostrará um aviso e source
o arquivo.
Exemplos
Você pode mapear em variáveis usando o env
parâmetro que é comum em todas as tarefas e é 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 |
Executa em | Agent, DeploymentGroup |
Demandas | Nenhum |
Funcionalidades | Essa tarefa não atende a nenhuma demanda para tarefas subsequentes no trabalho. |
Restrições de comando | Qualquer |
Variáveis configuráveis | Qualquer |
Versão do agente | 2.115.0 ou superior |
Categoria da tarefa | Utilitário |