Partilhar via


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