Bash@3 - Tarefa bash v3
Utilize esta 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 Ficheiro), inline
. Valor predefinido: filePath
.
Tipo de script de destino: caminho de ficheiro ou inline.
filePath
- Caminho do Script
string
. Necessário quando targetType = filePath
.
O caminho do script a executar. Este tem de ser um caminho completamente qualificado ou relativo a $(System.DefaultWorkingDirectory)
.
arguments
- Argumentos
string
. Opcional. Utilize quando targetType = filePath
.
Os argumentos transmitidos para o script da shell. Parâmetros ordinais ou parâmetros nomeados.
script
- Script
string
. Necessário quando targetType = inline
. Valor predefinido: # Write your commands here\n\necho 'Hello world'
.
O conteúdo do script.
script
- Script
string
. Necessário quando targetType = inline
. Valor predefinido: # 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 pretende executar o comando. Se o deixar vazio, o diretório de trabalho é $(Build.SourcesDirectory).
failOnStderr
- Falha no Erro Padrão
boolean
. Valor predefinido: false
.
Se for verdade, esta tarefa falhará se forem escritos erros no StandardError
fluxo.
bashEnvValue
- Definir valor para BASH_ENV variável de ambiente
string
.
Se a entrada for especificada, o respetivo valor é expandido e utilizado como o caminho de um ficheiro de arranque a executar antes de executar o script. Se a variável BASH_ENV
de ambiente já tiver sido definida, a tarefa substituirá esta variável apenas para a tarefa atual. Saiba mais sobre os Ficheiros de Arranque do Bash.
noProfile
- Não carregue os ficheiros de arranque/inicialização do perfil
boolean
. Valor predefinido: true
.
Não carregue o ficheiro /etc/profile
de arranque em todo o sistema nem nenhum dos ficheiros de inicialização pessoal.
noRc
- **Não leia o ~/.bashrc' initialization file**<br>
valor booleano. Default value:
".
Opções de controlo de tarefas
Todas as tarefas têm opções de controlo para além das entradas de tarefas. Para obter mais informações, veja Opções de controlo e propriedades de tarefas comuns.
Variáveis de saída
Nenhum.
Observações
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 no seu sistema.
A execução which bash
no Linux/macOS ou where bash
no Windows irá dar-lhe uma ideia do que irá selecionar.
Informações sobre ficheiros de arranque do Bash
A tarefa bash invoca o Bash como uma shell não interativa e não de início de sessão. 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 o respetivo valor se aparecer aí e utiliza o valor como o nome de um ficheiro para ler e executar.
Existem várias opções para definir a variável de BASH_ENV
ambiente num pipeline. Em primeiro lugar, é possível definir a BASH_ENV
variável de ambiente como uma variável de pipeline. Neste caso, cada instância da tarefa bash tentará desdobrar o valor da variável e utilizar o BASH_ENV
respetivo 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, existem duas formas de o fazer:
A primeira forma é utilizar a entrada da bashEnvValue
tarefa. Veja um exemplo para referência:
steps:
- task: Bash@3
inputs:
targetType: 'inline'
script: env
bashEnvValue: '~/.profile'
Outra forma é definir a BASH_ENV
variável como uma variável de ambiente para a tarefa de pipeline através da env
palavra-chave, por exemplo:
- task: Bash@3
inputs:
targetType: 'inline'
script: env
env:
BASH_ENV: '~/.profile'
Nota
Tenha em atenção que, se a bashEnvValue
entrada estiver definida na tarefa bash, a tarefa de pipeline substituirá o valor da BASH_ENV
variável com o valor da bashEnvValue
entrada num caso em que a variável de BASH_ENV
ambiente já estava definida no ambiente.
Os scripts bash registados no repositório devem ser definidos como executáveis (chmod +x
).
Caso contrário, a tarefa mostrará um aviso e source
o ficheiro.
Exemplos
Pode mapear em variáveis com o env
parâmetro que é comum em todas as tarefas e é uma lista de itens adicionais para mapear para o ambiente do processo.
Por exemplo, as variáveis secretas não são mapeadas automaticamente. Se tiver uma variável secreta chamada Foo
, pode mapeá-la da seguinte 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 | Description |
---|---|
Tipos de pipeline | YAML, Compilação clássica, Versão clássica |
É executado em | Agente, DeploymentGroup |
Exigências | Nenhuma |
Capacidades | Esta tarefa não satisfaz quaisquer exigências para tarefas subsequentes na tarefa. |
Restrições de comandos | Qualquer |
Variáveis de tabelas definidas | Qualquer |
Versão do agente | 2.115.0 ou superior |
Categoria da tarefa | Utilitário |