Bash@3 - Tarefa Bash v3
Use esta tarefa para executar um script Bash no macOS, Linux ou Windows.
Observação
Em um host Windows, isso é executado bash a partir da distribuição padrão WSL. O WSL deve ser instalado e o usuário como o agente é executado deve ter uma configuração de distribuição. O WSL é instalado em imagens de agentes 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.
Insumos
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
. Necessário quando targetType = filePath
.
O caminho do script a ser executado. Este deve ser um caminho totalmente qualificado ou relativo a $(System.DefaultWorkingDirectory)
.
arguments
-
Argumentos
string
. Opcional. Use quando targetType = filePath
.
Os argumentos passaram para o shell script. Parâmetros ordinais ou parâmetros nomeados.
script
-
Script
string
. Necessário quando targetType = inline
. Valor padrão: # Write your commands here\n\necho 'Hello world'
.
O conteúdo do script.
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.
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 verdade, 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 somente para a tarefa atual. Saiba mais sobre Bash Startup Files.
noProfile
-
Não carregue os arquivos de inicialização/inicialização do 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 pessoais.
noRc
- **Não leia o ~/.bashrc' initialization file**<br>
booleano. Default value:
verdadeiro'.
Opções de controlo de tarefas
Todas as tarefas têm opções de controle, além de suas entradas de tarefas. Para obter mais informações, consulte Opções de controle de e propriedades de tarefas comuns.
Variáveis de saída
Nenhuma.
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 Bash no seu sistema.
Executar which bash
no Linux/macOS ou where bash
no Windows lhe dará uma ideia de qual ele irá selecionar.
Informações sobre Bash startup files
A tarefa Bash invoca o Bash como um shell não interativo e não login. Quando o Bash é iniciado de forma não interativa, para executar um shell script, 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 como isso pode ser feito:
A primeira maneira é usar o bashEnvValue
entrada de tarefa, veja 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 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 no 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 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)
Requerimentos
Exigência | Descrição |
---|---|
Tipos de pipeline | YAML, Construção clássica, Versão clássica |
Funciona em | Agente, DeploymentGroup |
Exigências | Nenhum |
Capacidades | Esta tarefa não satisfaz quaisquer exigências 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 de tarefa | Utilidade |