Bash@3 – úloha Bash v3
Pomocí této úlohy můžete spustit skript Bash v systému macOS, Linux nebo Windows.
Poznámka
Na hostiteli s Windows se spustí bash z výchozí distribuce WSL. WsL musí být nainstalován a uživatel, který agent běží, jako musí mít instalační program distribuce. WSL se instaluje na image agenta Windows hostované Microsoftem. Další informace naleznete v tématu agenty hostované Microsoftem – Software.
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.
Vstupy
targetType
-
typ
string
. Povolené hodnoty: filePath
(cesta k souboru), inline
. Výchozí hodnota: filePath
.
Cílí na typ skriptu: cesta k souboru nebo vložená cesta.
cesta ke skriptu filePath
-
string
. Požadováno při targetType = filePath
.
Cesta ke skriptu, který se má spustit. Musí to být plně kvalifikovaná cesta nebo relativní k $(System.DefaultWorkingDirectory)
.
argumentů arguments
-
string
. Volitelný. Používá se při targetType = filePath
.
Argumenty předané skriptu prostředí. Buď řadové parametry, nebo pojmenované parametry.
skriptů script
-
string
. Požadováno při targetType = inline
. Výchozí hodnota: # Write your commands here\n\necho 'Hello world'
.
Obsah skriptu.
skriptů script
-
string
. Požadováno při targetType = inline
. Výchozí hodnota: # Write your commands here\n\n# Use the environment variables input below to pass secret variables to this script
.
Obsah skriptu.
workingDirectory
-
pracovní adresář
string
.
Určuje pracovní adresář, ve kterém chcete příkaz spustit. Pokud ho necháte prázdný, pracovní adresář je $(Build.SourcesDirectory).
Selhání failOnStderr
- na standardním chyb
boolean
. Výchozí hodnota: false
.
Pokud je to pravda, tato úloha selže, pokud se do datového proudu StandardError
zapíšou nějaké chyby.
bashEnvValue
-
Nastavit hodnotu pro BASH_ENV proměnnou prostředí
string
.
Pokud je zadaný vstup, jeho hodnota se rozbalí a použije se jako cesta spouštěcího souboru ke spuštění před spuštěním skriptu. Pokud již byla definována proměnná prostředí BASH_ENV
, úkol tuto proměnnou přepíše pouze pro aktuální úkol. Přečtěte si další informace o spouštěcích souborech Bash.
noProfile
-
Nenačítejte spouštěcí/inicializační soubory profilu
boolean
. Výchozí hodnota: true
.
Nenačítejte spouštěcí soubor v rámci celého systému /etc/profile
ani žádných osobních inicializačních souborů.
noRc
– **Nepřečte ~/.bashrc' initialization file**<br>
logickou hodnotu. Default value:
true'.
Možnosti řízení úkolů
Všechny úkoly mají kromě vstupů úkolů také možnosti řízení. Další informace naleznete v tématu Možnosti ovládacího prvku a běžné vlastnosti úloh.
Výstupní proměnné
Žádný.
Poznámky
Úloha Bash má zástupce v YAML: steps.bash.
steps:
- bash: string # Required as first property. An inline script.
## Other task inputs
Úloha Bash najde první implementaci Bash ve vašem systému.
Spuštění which bash
v Linuxu nebo macOS nebo where bash
ve Windows vám poskytne představu o tom, který z nich vybere.
Informace o spouštěcích souborech Bash
Úloha Bash vyvolá Bash jako neinteraktivní prostředí bez přihlášení. Když se Bash spustí neinteraktivně, aby se spustil skript prostředí, Bash vyhledá proměnnou BASH_ENV
v prostředí, rozbalí její hodnotu, pokud se tam zobrazí, a použije hodnotu jako název souboru ke čtení a spuštění.
Existuje několik možností pro definování proměnné prostředí BASH_ENV
v kanálu. Za prvé je možné nastavit proměnnou prostředí BASH_ENV
jako proměnnou kanálu. V tomto případě se každá instance úlohy Bash pokusí rozbalit hodnotu proměnné BASH_ENV
a použít její hodnotu.
variables:
BASH_ENV: "~/.profile"
steps:
- task: Bash@3
inputs:
targetType: 'inline'
script: env
Další možností je nastavit BASH_ENV
pro jednu konkrétní instanci úlohy Bash, existují dva způsoby, jak to provést:
Prvním způsobem je použít vstup bashEnvValue
úkolu, viz příklad odkazu:
steps:
- task: Bash@3
inputs:
targetType: 'inline'
script: env
bashEnvValue: '~/.profile'
Dalším způsobem je nastavit proměnnou BASH_ENV
jako proměnnou prostředí pro úlohu kanálu prostřednictvím klíčového slova env
, například:
- task: Bash@3
inputs:
targetType: 'inline'
script: env
env:
BASH_ENV: '~/.profile'
Poznámka
Všimněte si, že pokud je bashEnvValue
vstup definován v úloze Bash, úloha kanálu přepíše hodnotu BASH_ENV
proměnné hodnotou z bashEnvValue
vstupu v případě, že proměnná prostředí BASH_ENV
již byla v prostředí definována.
Skripty Bash, které jsou v úložišti vráceny se změnami, by měly být nastaveny spustitelné soubory (chmod +x
).
V opačném případě se v úloze zobrazí upozornění a místo toho source
soubor.
Příklady
V proměnných můžete mapovat pomocí parametru env
, který je společný pro všechny úkolya je seznam dalších položek, které se mají namapovat do prostředí procesu.
Například tajné proměnné se nemapují automaticky. Pokud máte tajnou proměnnou s názvem Foo
, můžete ji namapovat takto:
steps:
- task: Bash@3
inputs:
targetType: 'inline'
script: echo $MYSECRET
env:
MYSECRET: $(Foo)
V macOS nebo Linuxu je výše uvedený příklad ekvivalentní:
steps:
- script: echo $MYSECRET
env:
MYSECRET: $(Foo)
Požadavky
Požadavek | Popis |
---|---|
Typy kanálů | YAML, klasické sestavení, klasická verze |
Běží na | Agent, DeploymentGroup |
požadavky | Žádný |
možnosti | Tento úkol nesplňuje žádné požadavky na následné úkoly v úloze. |
omezení příkazů | Jakýkoliv |
nastavitelné proměnné | Jakýkoliv |
Verze agenta | 2.115.0 nebo vyšší |
Kategorie úkolu | Užitek |