Bash@3 - Tâche Bash v3
Utilisez cette tâche pour exécuter un script Bash sur macOS, Linux ou Windows.
Note
Sur un hôte Windows, cette opération exécute bash à partir de la distribution par défaut WSL. WSL doit être installé et l’utilisateur que l’agent exécute comme doit avoir une configuration de distribution. WSL est installé sur des images d’agent Windows hébergées par Microsoft. Pour plus d’informations, consultez agents hébergés par Microsoft - Software.
Syntaxe
# 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 d’accès du fichier), inline
. Valeur par défaut : filePath
.
Type de script cible : chemin d’accès de fichier ou inline.
filePath
-
chemin d’accès de script
string
. Obligatoire lorsque targetType = filePath
.
Chemin d’accès du script à exécuter. Il doit s’agir d’un chemin complet ou d’un chemin d’accès relatif à $(System.DefaultWorkingDirectory)
.
arguments
-
arguments
string
. Optionnel. Utilisez quand targetType = filePath
.
Arguments passés au script shell. Paramètres ordinaux ou paramètres nommés.
script
-
script
string
. Obligatoire lorsque targetType = inline
. Valeur par défaut : # Write your commands here\n\necho 'Hello world'
.
Contenu du script.
script
-
script
string
. Obligatoire 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 la laissez vide, le répertoire de travail est $(Build.SourcesDirectory).
failOnStderr
-
Échec sur les d’erreur standard
boolean
. Valeur par défaut : false
.
Si cela est vrai, cette tâche échoue si des erreurs sont écrites dans le flux de StandardError
.
bashEnvValue
-
Définir la valeur de la variable d’environnement BASH_ENV
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 d’environnement BASH_ENV
a déjà été définie, la tâche remplace cette variable uniquement pour la tâche actuelle. En savoir plus sur fichiers de démarrage Bash.
noProfile
-
Ne chargez pas les fichiers de démarrage/d’initialisation du profil
boolean
. Valeur par défaut : true
.
Ne chargez pas le fichier de démarrage à l’échelle du système /etc/profile
ou l’un des fichiers d’initialisation personnels.
noRc
- **Ne lisez pas le ~/.bashrc' initialization file**<br>
booléen. Default value:
true'.
Options de contrôle de tâche
Toutes les tâches ont des options de contrôle en plus de leurs entrées de tâche. Pour plus d’informations, consultez Options de contrôle et propriétés de tâche courantes.
Variables de sortie
Aucun.
Remarques
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 where bash
sur Windows vous donnera une idée de celle qu’il sélectionne.
Informations sur les fichiers de démarrage Bash
La tâche Bash appelle 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 shell, Bash recherche la variable BASH_ENV
dans l’environnement, déploie sa valeur s’il apparaît et utilise la valeur comme nom d’un fichier pour 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 tente 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, il existe deux façons de procéder :
La première façon 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 façon 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'
Note
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 exécutables (chmod +x
).
Sinon, la tâche affiche un avertissement et source
le fichier à la place.
Exemples
Vous pouvez mapper dans des variables à l’aide du paramètre env
qui est commun à toutes les tâches, et 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 vous avez une variable secrète 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)
Exigences
Exigence | Description |
---|---|
Types de pipelines | YAML, Build Classique, Version Classique |
Exécutions sur | Agent, DeploymentGroup |
demandes | Aucun |
fonctionnalités de | Cette tâche ne répond à aucune demande de tâches ultérieures dans le travail. |
restrictions de commande | Quelconque |
variables settables | Quelconque |
Version de l’agent | 2.115.0 ou version ultérieure |
Catégorie de tâche | Utilité |