Udostępnij za pośrednictwem


Bash@3 — zadanie powłoki Bash w wersji 3

To zadanie służy do uruchamiania skryptu powłoki Bash w systemach macOS, Linux lub Windows.

Nuta

Na hoście systemu Windows jest uruchamiana powłoka bash z domyślnej dystrybucji WSL. Należy zainstalować program WSL, a użytkownik, z którym agent działa, musi mieć konfigurację dystrybucji. Program WSL jest instalowany na obrazach agentów systemu Windows hostowanych przez firmę Microsoft. Aby uzyskać więcej informacji, zobacz agentów hostowanych przez firmę Microsoft — Software.

Składnia

# 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.

Wejścia

targetType - typ
string. Dozwolone wartości: filePath (ścieżka pliku), inline. Wartość domyślna: filePath.

Docelowy typ skryptu: ścieżka pliku lub wbudowany.


filePath - ścieżka skryptu
string. Wymagane, gdy targetType = filePath.

Ścieżka skryptu do wykonania. Musi to być w pełni kwalifikowana ścieżka lub względna $(System.DefaultWorkingDirectory).


arguments - argumenty
string. Fakultatywny. Użyj polecenia , gdy targetType = filePath.

Argumenty przekazane do skryptu powłoki. Parametry porządkowe lub nazwane parametry.


skryptu script -
string. Wymagane, gdy targetType = inline. Wartość domyślna: # Write your commands here\n\necho 'Hello world'.

Zawartość skryptu.


skryptu script -
string. Wymagane, gdy targetType = inline. Wartość domyślna: # Write your commands here\n\n# Use the environment variables input below to pass secret variables to this script.

Zawartość skryptu.


katalogu roboczego workingDirectory -
string.

Określa katalog roboczy, w którym chcesz uruchomić polecenie. Jeśli pozostawisz go pusty, katalog roboczy zostanie $(Build.SourcesDirectory).


failOnStderr - niepowodzenie w błędu standardowego
boolean. Wartość domyślna: false.

Jeśli to prawda, to zadanie zakończy się niepowodzeniem, jeśli jakiekolwiek błędy zostaną zapisane w strumieniu StandardError.


bashEnvValue - Ustaw wartość zmiennej środowiskowej BASH_ENV
string.

Jeśli dane wejściowe zostaną określone, jego wartość zostanie rozszerzona i użyta jako ścieżka pliku uruchamiania do wykonania przed uruchomieniem skryptu. Jeśli zmienna środowiskowa BASH_ENV została już zdefiniowana, zadanie zastąpi tę zmienną tylko dla bieżącego zadania. Dowiedz się więcej o plikach startowych powłoki Bash .


noProfile - nie ładuj plików uruchamiania/inicjowania profilu
boolean. Wartość domyślna: true.

Nie ładuj pliku uruchamiania całego systemu /etc/profile ani żadnego z plików inicjalizacji osobistych.


noRc — **Nie odczytuj wartości logicznej ~/.bashrc' initialization file**<br> . Default value: true".


Opcje sterowania zadaniami

Wszystkie zadania mają opcje sterowania oprócz danych wejściowych zadań podrzędnych. Aby uzyskać więcej informacji, zobacz opcje kontroli i typowe właściwości zadań.

Zmienne wyjściowe

Żaden.

Uwagi

Zadanie powłoki bash ma skrót w języku YAML: steps.bash.

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

Zadanie powłoki Bash znajdzie pierwszą implementację powłoki Bash w systemie. Uruchomienie which bash w systemie Linux/macOS lub where bash w systemie Windows da Ci pomysł, który wybierze.

Informacje o plikach uruchamiania powłoki Bash

Zadanie powłoki Bash wywołuje powłokę Bash jako nieinterakcyjną, nieinterakcyjną powłokę bez logowania. Gdy powłoka Bash jest uruchamiana nieinterakcyjnie, aby uruchomić skrypt powłoki, powłoka Bash szuka zmiennej BASH_ENV w środowisku, rozwija jego wartość, jeśli się tam pojawi, i używa wartości jako nazwy pliku do odczytu i wykonania.

Istnieje kilka opcji definiowania zmiennej środowiskowej BASH_ENV w potoku. Po pierwsze, można ustawić zmienną środowiskową BASH_ENV jako zmienną potoku. W takim przypadku każde wystąpienie zadania powłoki Bash spróbuje rozwinąć wartość zmiennej BASH_ENV i użyć jej wartości.

variables:
  BASH_ENV: "~/.profile"

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

Inną opcją jest ustawienie BASH_ENV dla jednego konkretnego wystąpienia zadania powłoki Bash. Istnieją dwa sposoby, w jaki można to zrobić:

Pierwszym sposobem jest użycie danych wejściowych zadania bashEnvValue, zobacz przykład referencyjny:

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

Innym sposobem jest ustawienie zmiennej BASH_ENV jako zmiennej środowiskowej dla zadania potoku za pomocą słowa kluczowego env, na przykład:

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

Nuta

Należy pamiętać, że jeśli dane wejściowe bashEnvValue są zdefiniowane w zadaniu powłoki Bash, zadanie potoku zastąpi wartość zmiennej BASH_ENV wartością z danych wejściowych bashEnvValue w przypadku, gdy zmienna środowiskowa BASH_ENV została już zdefiniowana w środowisku.

Skrypty powłoki Bash zaewidencjonowane w repozytorium powinny być ustawione jako wykonywalne (chmod +x). W przeciwnym razie zadanie wyświetli ostrzeżenie i source pliku.

Przykłady

Zmienne można mapować przy użyciu parametru env, który jest wspólne dla wszystkich zadań, i zawiera listę dodatkowych elementów do mapowania w środowisku procesu. Na przykład zmienne tajne nie są automatycznie mapowane. Jeśli masz zmienną wpisu tajnego o nazwie Foo, możesz ją zamapować w następujący sposób:

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

W systemie macOS lub Linux powyższy przykład jest odpowiednikiem:

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

Wymagania

Wymaganie Opis
Typy potoków YAML, klasyczna kompilacja, wersja klasyczna
Działa na Agent, DeploymentGroup
Wymagania Żaden
możliwości To zadanie nie spełnia żadnych wymagań dotyczących kolejnych zadań w zadaniu.
ograniczenia poleceń Jakikolwiek
zmienne ustawiane Jakikolwiek
Wersja agenta 2.115.0 lub nowsza
Kategoria zadań Użyteczność