Sdílet prostřednictvím


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