Partage via


Bash@3 - Tâche Bash v3

Utilisez cette tâche pour exécuter un script Bash sur 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.

Entrées

targetType - Type
string. Valeurs autorisées : filePath (Chemin du fichier), inline. Valeur par défaut : filePath.

Type de script cible : chemin de fichier ou inline.


filePath - Chemin d’accès du script
string. Nécessaire lorsque targetType = filePath.

Chemin d’accès du script à exécuter. Il doit s’agir d’un chemin complet ou relatif à $(System.DefaultWorkingDirectory).


arguments - Arguments
string. facultatif. Utilisez quand targetType = filePath.

Arguments passés au script d’interpréteur de commandes. Paramètres ordinaux ou paramètres nommés.


script - Script
string. Nécessaire lorsque targetType = inline. Valeur par défaut : # Write your commands here\n\necho 'Hello world'.

Contenu du script.


script - Script
string. Nécessaire lorsque targetType = inline. Valeur par défaut : # Write your commands here\n\n# Use the environment variables input below to pass secret variables to this script.

Contenu du script.


workingDirectory - Répertoire de travail
string.

Spécifie le répertoire de travail dans lequel vous souhaitez exécuter la commande. Si vous le laissez vide, le répertoire de travail est $(Build.SourcesDirectory).


failOnStderr - Échec en cas d’erreur standard
boolean. Valeur par défaut : false.

Si cela est vrai, cette tâche échoue si des erreurs sont écrites dans le StandardError flux.


bashEnvValue - Définir la valeur de BASH_ENV variable d’environnement
string.

Si l’entrée est spécifiée, sa valeur est développée et utilisée comme chemin d’accès d’un fichier de démarrage à exécuter avant d’exécuter le script. Si la variable BASH_ENV d’environnement a déjà été définie, la tâche remplace cette variable uniquement pour la tâche actuelle. En savoir plus sur les fichiers de démarrage Bash.


noProfile - Ne pas charger les fichiers de démarrage/d’initialisation du profil
boolean. Valeur par défaut : true.

Ne chargez pas le fichier /etc/profile de démarrage à l’échelle du système ou les fichiers d’initialisation personnels.


noRc - **Ne lisez pas la ~/.bashrc' initialization file**<br> valeur booléenne. Default value: true'.


Options de contrôle de la tâche

Toutes les tâches ont des options de contrôle en plus de leurs entrées de tâches. Pour plus d’informations, consultez Options de contrôle et propriétés de tâche courantes.

Variables de sortie

Aucun.

Notes

La tâche bash a un raccourci dans YAML : steps.bash.

steps:
- bash: string # Required as first property. An inline script. 
  ## Other task inputs

La tâche Bash trouvera la première implémentation Bash sur votre système. L’exécution de which bash sur Linux/macOS ou de where bash sur Windows vous donne une idée de celle qu’elle sélectionne.

Informations sur les fichiers de démarrage Bash

La tâche Bash appelle le Bash en tant qu’interpréteur de commandes non interactif et sans connexion. Lorsque Bash est démarré de manière non interactive, pour exécuter un script d’interpréteur de commandes, le Bash recherche la variable BASH_ENV dans l’environnement, déploie sa valeur si elle y apparaît et utilise la valeur comme nom d’un fichier à lire et exécuter.

Il existe plusieurs options pour définir la variable d’environnement BASH_ENV dans un pipeline. Tout d’abord, il est possible de définir la variable d’environnement BASH_ENV en tant que variable de pipeline. Dans ce cas, chaque instance de la tâche Bash tentera de déployer la valeur de la variable BASH_ENV et d’utiliser sa valeur.

variables:
  BASH_ENV: "~/.profile"

steps:
- task: Bash@3
  inputs:
    targetType: 'inline'
    script: env

Une autre option consiste à définir BASH_ENV pour une instance particulière de la tâche Bash, ce qui peut se faire de deux manières :

La première consiste à utiliser l’entrée de tâche bashEnvValue, voir un exemple de référence :

steps:
- task: Bash@3
  inputs:
    targetType: 'inline'
    script: env
    bashEnvValue: '~/.profile'

Une autre manière consiste à définir la variable BASH_ENV en tant que variable d’environnement pour la tâche de pipeline via le mot clé env, par exemple :

- task: Bash@3
  inputs:
    targetType: 'inline'
    script: env
  env:
    BASH_ENV: '~/.profile'

Notes

Notez que si l’entrée bashEnvValue est définie dans la tâche Bash, la tâche de pipeline remplace la valeur de la variable BASH_ENV par la valeur de l’entrée bashEnvValue dans un cas où la variable d’environnement BASH_ENV a déjà été définie dans l’environnement.

Les scripts Bash archivés dans le référentiel doivent être définis comme exécutables (chmod +x). Sinon, la tâche affiche un avertissement et source le fichier à la place.

Exemples

Vous pouvez mapper des variables à l’aide du env paramètre qui est commun à toutes les tâches et qui est une liste d’éléments supplémentaires à mapper dans l’environnement du processus. Par exemple, les variables secrètes ne sont pas mappées automatiquement. Si votre variable secrète est appelée Foo, vous pouvez la mapper comme suit :

steps:
- task: Bash@3
  inputs:
    targetType: 'inline'
    script: echo $MYSECRET
  env:
    MYSECRET: $(Foo)

Sur macOS ou Linux, l’exemple ci-dessus équivaut à :

steps:
- script: echo $MYSECRET
  env:
    MYSECRET: $(Foo)

Configuration requise

Condition requise Description
Types de pipelines YAML, build classique, version classique
S’exécute sur Agent, DeploymentGroup
Demandes None
Capabilities Cette tâche ne répond à aucune demande pour les tâches suivantes dans le travail.
Restrictions de commande Quelconque
Variables paramétrables Quelconque
Version de l’agent 2.115.0 ou version ultérieure
Catégorie de la tâche Utilitaire