Bash@3: tarea de Bash v3
Use esta tarea para ejecutar un script de Bash en macOS, Linux o Windows.
Nota
En un host de Windows, esto ejecuta Bash desde la distribución predeterminada de WSL. WSL debe estar instalado y el usuario que el agente ejecuta como debe tener una configuración de distribución. WSL se instala en imágenes de agente de Windows hospedadas por Microsoft. Para obtener más información, consulte agentes hospedados por Microsoft: software.
Sintaxis
# 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
tipo de targetType
-
string
. Valores permitidos: filePath
(ruta de acceso de archivo), inline
. Valor predeterminado: filePath
.
Tipo de script de destinos: ruta de acceso del archivo o insertada.
filePath
-
ruta de acceso de script
string
. Obligatorio cuando targetType = filePath
.
Ruta de acceso del script que se va a ejecutar. Debe ser una ruta de acceso completa o relativa a $(System.DefaultWorkingDirectory)
.
argumentos de arguments
-
string
. Opcional. Use cuando targetType = filePath
.
Argumentos pasados al script de shell. Parámetros ordinales o parámetros con nombre.
script de script
-
string
. Obligatorio cuando targetType = inline
. Valor predeterminado: # Write your commands here\n\necho 'Hello world'
.
Contenido del script.
script de script
-
string
. Obligatorio cuando targetType = inline
. Valor predeterminado: # Write your commands here\n\n# Use the environment variables input below to pass secret variables to this script
.
Contenido del script.
de directorio de trabajo de workingDirectory
-
string
.
Especifica el directorio de trabajo en el que desea ejecutar el comando. Si lo deja vacío, el directorio de trabajo se $(Build.SourcesDirectory).
failOnStderr
-
error en la de error estándar
boolean
. Valor predeterminado: false
.
Si esto es true, esta tarea producirá un error si se escriben errores en la secuencia de StandardError
.
bashEnvValue
-
Establecer valor para BASH_ENV variable de entorno
string
.
Si se especifica la entrada, su valor se expande y se usa como ruta de acceso de un archivo de inicio que se va a ejecutar antes de ejecutar el script. Si ya se ha definido la variable de entorno BASH_ENV
, la tarea invalidará esta variable solo para la tarea actual. Obtenga más información sobre archivos de inicio de Bash.
noProfile
-
No cargar los archivos de inicio o inicialización del perfil
boolean
. Valor predeterminado: true
.
No cargue el archivo de inicio de todo el sistema /etc/profile
ni ninguno de los archivos de inicialización personal.
noRc
: **No lea el ~/.bashrc' initialization file**<br>
booleano. Default value:
true".
Opciones de control de tareas
Todas las tareas tienen opciones de control además de sus entradas de tarea. Para obtener más información, consulte Opciones de control y propiedades de tareas comunes.
Variables de salida
Ninguno.
Observaciones
La tarea de Bash tiene un acceso directo en YAML: steps.bash.
steps:
- bash: string # Required as first property. An inline script.
## Other task inputs
La tarea de Bash encontrará la primera implementación de Bash en el sistema.
La ejecución de which bash
en Linux/macOS o where bash
en Windows le dará una idea de cuál seleccionará.
Información sobre los archivos de inicio de Bash
La tarea de Bash invoca a Bash como un shell no interactivo que no es de inicio de sesión. Cuando Bash se inicia de forma no interactiva, para ejecutar un script de shell, Bash busca la variable BASH_ENV
en el entorno, desarrolla su valor si aparece allí y usa el valor como nombre de un archivo para leer y ejecutar.
Hay varias opciones para definir la variable de entorno BASH_ENV
en una canalización. En primer lugar, es posible establecer la variable de entorno BASH_ENV
como una variable de canalización. En este caso, cada instancia de la tarea de Bash intentará desplegar el valor de la variable BASH_ENV
y usará su valor.
variables:
BASH_ENV: "~/.profile"
steps:
- task: Bash@3
inputs:
targetType: 'inline'
script: env
Otra opción consiste en establecer BASH_ENV
para una instancia determinada de la tarea de Bash, hay dos maneras de hacerlo:
La primera manera es usar la entrada de bashEnvValue
tarea, vea un ejemplo para obtener referencia:
steps:
- task: Bash@3
inputs:
targetType: 'inline'
script: env
bashEnvValue: '~/.profile'
Otra manera es establecer la variable BASH_ENV
como una variable de entorno para la tarea de canalización a través de la palabra clave env
, por ejemplo:
- task: Bash@3
inputs:
targetType: 'inline'
script: env
env:
BASH_ENV: '~/.profile'
Nota
Tenga en cuenta que si la entrada bashEnvValue
se define en la tarea de Bash, la tarea de canalización invalidará el valor de la variable BASH_ENV
con el valor de la entrada bashEnvValue
en un caso en el que la variable de entorno BASH_ENV
ya se definió en el entorno.
Los scripts de Bash protegidos en el repositorio deben establecerse ejecutables (chmod +x
).
De lo contrario, la tarea mostrará una advertencia y source
el archivo en su lugar.
Ejemplos
Puede asignar en variables mediante el parámetro env
que es común en todas las tareasy es una lista de elementos adicionales que se van a asignar al entorno del proceso.
Por ejemplo, las variables secretas no se asignan automáticamente. Si tiene una variable secreta denominada Foo
, puede asignarla de la siguiente manera:
steps:
- task: Bash@3
inputs:
targetType: 'inline'
script: echo $MYSECRET
env:
MYSECRET: $(Foo)
En macOS o Linux, el ejemplo anterior es equivalente a:
steps:
- script: echo $MYSECRET
env:
MYSECRET: $(Foo)
Requisitos
Requisito | Descripción |
---|---|
Tipos de canalización | YAML, compilación clásica, versión clásica |
Se ejecuta en | Agente, DeploymentGroup |
demandas | Ninguno |
funcionalidades de | Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo. |
restricciones de comandos | Cualquier |
variables settable | Cualquier |
Versión del agente | 2.115.0 o superior |
Categoría de tarea | Utilidad |