Compartilhar via


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