Bash@3 - Attività Bash v3
Usare questa attività per eseguire uno script Bash in macOS, Linux o Windows.
Nota
In un host Windows viene eseguito bash dalla distribuzione predefinita di WSL. WSL deve essere installato e l'utente che l'agente viene eseguito come deve avere una configurazione di distribuzione. WSL viene installato nelle immagini dell'agente Windows ospitate da Microsoft. Per altre informazioni, vedere agenti ospitati da Microsoft - Software.
Sintassi
# 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.
Ingressi
di tipo targetType
-
string
. Valori consentiti: filePath
(percorso file), inline
. Valore predefinito: filePath
.
Tipo di script di destinazione: percorso del file o inline.
filePath
-
percorso script
string
. Obbligatorio quando targetType = filePath
.
Percorso dello script da eseguire. Deve trattarsi di un percorso completo o relativo a $(System.DefaultWorkingDirectory)
.
arguments
-
argomenti
string
. Opzionale. Usare quando targetType = filePath
.
Argomenti passati allo script della shell. Parametri ordinali o parametri denominati.
script
-
script
string
. Obbligatorio quando targetType = inline
. Valore predefinito: # Write your commands here\n\necho 'Hello world'
.
Contenuto dello script.
script
-
script
string
. Obbligatorio quando targetType = inline
. Valore predefinito: # Write your commands here\n\n# Use the environment variables input below to pass secret variables to this script
.
Contenuto dello script.
workingDirectory
-
directory di lavoro
string
.
Specifica la directory di lavoro in cui si vuole eseguire il comando. Se si lascia vuoto, la directory di lavoro viene $(Build.SourcesDirectory).
failOnStderr
-
errore standard
boolean
. Valore predefinito: false
.
Se è true, questa attività avrà esito negativo se vengono scritti errori nel flusso StandardError
.
bashEnvValue
-
Valore impostato per BASH_ENV variabile di ambiente
string
.
Se si specifica l'input, il relativo valore viene espanso e usato come percorso di un file di avvio da eseguire prima di eseguire lo script. Se la variabile di ambiente BASH_ENV
è già stata definita, l'attività eseguirà l'override di questa variabile solo per l'attività corrente. Altre informazioni su file di avvio Bash.
noProfile
-
Non caricare i file di avvio/inizializzazione del profilo
boolean
. Valore predefinito: true
.
Non caricare il file di avvio a livello di sistema /etc/profile
o uno dei file di inizializzazione personale.
noRc
: **Non leggere il ~/.bashrc' initialization file**<br>
booleano. Default value:
true'.
Opzioni di controllo attività
Tutte le attività hanno opzioni di controllo oltre ai relativi input di attività. Per altre informazioni, vedere Opzioni di controllo e proprietà comuni delle attività.
Variabili di output
Nessuno.
Osservazioni
L'attività bash include un collegamento in YAML: steps.bash.
steps:
- bash: string # Required as first property. An inline script.
## Other task inputs
L'attività Bash troverà la prima implementazione Bash nel sistema.
L'esecuzione di which bash
in Linux/macOS o where bash
in Windows ti darà un'idea di quale selezionerà.
Informazioni sui file di avvio di Bash
L'attività Bash richiama Bash come shell non interattiva e non di accesso. Quando Bash viene avviato in modo non interattivo, per eseguire uno script della shell, Bash cerca la variabile BASH_ENV
nell'ambiente, ne apre il valore se viene visualizzato e usa il valore come nome di un file da leggere ed eseguire.
Sono disponibili diverse opzioni per definire la variabile di ambiente BASH_ENV
in una pipeline. In primo luogo, è possibile impostare la variabile di ambiente BASH_ENV
come variabile della pipeline. In questo caso, ogni istanza dell'attività Bash tenterà di espandere il valore della variabile BASH_ENV
e di usarne il valore.
variables:
BASH_ENV: "~/.profile"
steps:
- task: Bash@3
inputs:
targetType: 'inline'
script: env
Un'altra opzione consiste nell'impostare BASH_ENV
per una particolare istanza dell'attività Bash, esistono due modi per eseguire questa operazione:
Il primo consiste nell'usare l'input dell'attività bashEnvValue
, vedere un esempio di riferimento:
steps:
- task: Bash@3
inputs:
targetType: 'inline'
script: env
bashEnvValue: '~/.profile'
Un altro modo consiste nell'impostare la variabile BASH_ENV
come variabile di ambiente per l'attività della pipeline tramite la parola chiave env
, ad esempio:
- task: Bash@3
inputs:
targetType: 'inline'
script: env
env:
BASH_ENV: '~/.profile'
Nota
Si noti che se l'input bashEnvValue
è definito nell'attività Bash, l'attività della pipeline eseguirà l'override del valore della variabile BASH_ENV
con il valore dell'input bashEnvValue
in un caso in cui la variabile di ambiente BASH_ENV
fosse già definita nell'ambiente.
Gli script Bash controllati nel repository devono essere impostati eseguibili (chmod +x
).
In caso contrario, l'attività visualizzerà un avviso e source
il file.
Esempi
È possibile eseguire il mapping nelle variabili usando il parametro env
che è comune in tutte le attivitàed è un elenco di elementi aggiuntivi da eseguire nel mapping nell'ambiente del processo.
Ad esempio, le variabili segrete non vengono mappate automaticamente. Se si dispone di una variabile segreta denominata Foo
, è possibile eseguirne il mapping nel modo seguente:
steps:
- task: Bash@3
inputs:
targetType: 'inline'
script: echo $MYSECRET
env:
MYSECRET: $(Foo)
In macOS o Linux l'esempio precedente equivale a:
steps:
- script: echo $MYSECRET
env:
MYSECRET: $(Foo)
Fabbisogno
Requisito | Descrizione |
---|---|
Tipi di pipeline | YAML, build classica, versione classica |
Viene eseguito in | Agente, DeploymentGroup |
richieste | Nessuno |
funzionalità di | Questa attività non soddisfa alcuna richiesta di attività successive nel processo. |
restrizioni dei comandi | Qualunque |
variabili impostabili | Qualunque |
Versione dell'agente | 2.115.0 o versione successiva |
Categoria attività | Utilità |