Bash@3 — задача Bash версии 3
Используйте эту задачу для запуска скрипта Bash в macOS, Linux или Windows.
Заметка
На узле Windows выполняется bash из дистрибутива WSL по умолчанию. WSL должен быть установлен, и пользователь, который агент запускает, как должен иметь настройку распространения. WSL устанавливается на образы агентов Windows, размещенных в Майкрософт. Дополнительные сведения см. в разделе размещенных корпорацией Майкрософт агентов — программное обеспечение.
Синтаксис
# 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.
Входы
типа targetType
-
string
. Допустимые значения: filePath
(путь к файлу), inline
. Значение по умолчанию: filePath
.
Целевой тип скрипта: путь к файлу или встроенный.
Путьк скрипту filePath
-
string
. Требуется, если targetType = filePath
.
Путь к выполнению скрипта. Это должен быть полный путь или относительно $(System.DefaultWorkingDirectory)
.
arguments
-
аргументы
string
. Необязательный. Используется при targetType = filePath
.
Аргументы, переданные скрипту оболочки. Порядковые параметры или именованные параметры.
скрипта script
-
string
. Требуется, если targetType = inline
. Значение по умолчанию: # Write your commands here\n\necho 'Hello world'
.
Содержимое скрипта.
скрипта script
-
string
. Требуется, если targetType = inline
. Значение по умолчанию: # Write your commands here\n\n# Use the environment variables input below to pass secret variables to this script
.
Содержимое скрипта.
workingDirectory
-
рабочий каталог
string
.
Указывает рабочий каталог, в котором требуется выполнить команду. Если оставить его пустым, рабочий каталог $(Build.SourcesDirectory).
failOnStderr
-
сбой стандартной ошибки
boolean
. Значение по умолчанию: false
.
Если это верно, эта задача завершится ошибкой, если в поток StandardError
записываются ошибки.
bashEnvValue
-
Задать значение для переменной среды BASH_ENV
string
.
Если входные данные заданы, его значение развертывается и используется в качестве пути к файлу запуска перед выполнением скрипта. Если переменная среды BASH_ENV
уже определена, задача переопределит эту переменную только для текущей задачи. Дополнительные сведения о файлах запуска Bash.
noProfile
-
не загружайте файлы запуска и инициализации профиля
boolean
. Значение по умолчанию: true
.
Не загружайте файл запуска на уровне системы /etc/profile
или любой из файлов инициализации личных данных.
noRc
- **Не считывайте логическое значение ~/.bashrc' initialization file**<br>
. Default value:
true.
Параметры управления задачами
Все задачи имеют параметры управления в дополнение к входным данным задачи. Дополнительные сведения см. в разделе Параметры управления и общие свойства задач.
Выходные переменные
Никакой.
Замечания
Задача bash имеет ярлык в YAML: steps.bash.
steps:
- bash: string # Required as first property. An inline script.
## Other task inputs
Задача Bash найдет первую реализацию Bash в вашей системе.
Запуск which bash
в Linux или macOS или where bash
в Windows даст вам представление о том, какой из них будет выбран.
Сведения о файлах запуска Bash
Задача Bash вызывает Bash как неинтерактивную оболочку без входа. При запуске скрипта оболочки Bash выполняется неинтерактивно, Bash ищет переменную BASH_ENV
в среде, развертывает его значение, если оно отображается там, и использует значение в качестве имени файла для чтения и выполнения.
Существует несколько вариантов определения переменной среды BASH_ENV
в конвейере. Во-первых, можно задать переменную среды BASH_ENV
в качестве переменной конвейера. В этом случае каждый экземпляр задачи Bash попытается развернуть значение переменной BASH_ENV
и использовать его значение.
variables:
BASH_ENV: "~/.profile"
steps:
- task: Bash@3
inputs:
targetType: 'inline'
script: env
Еще одним вариантом является установка BASH_ENV
для одного конкретного экземпляра задачи Bash. Это можно сделать двумя способами.
Первый способ — использовать входные данные bashEnvValue
задачи, см. пример для справки:
steps:
- task: Bash@3
inputs:
targetType: 'inline'
script: env
bashEnvValue: '~/.profile'
Другой способ — задать переменную BASH_ENV
в качестве переменной среды для задачи конвейера с помощью ключевого слова env
, например:
- task: Bash@3
inputs:
targetType: 'inline'
script: env
env:
BASH_ENV: '~/.profile'
Заметка
Обратите внимание, что если входные данные bashEnvValue
определены в задаче Bash, задача конвейера переопределит значение переменной BASH_ENV
значением из входных данных bashEnvValue
в случае, когда переменная среды BASH_ENV
уже определена в среде.
Скрипты Bash, зарегистрированные в репозитории, должны быть заданы исполняемым файлом (chmod +x
).
В противном случае задача отобразит предупреждение и source
вместо него.
Примеры
Можно сопоставить переменные с помощью параметра env
, который является общим для всех задач, и представляет собой список дополнительных элементов для сопоставления с средой процесса.
Например, секретные переменные не сопоставляются автоматически. Если у вас есть секретная переменная с именем Foo
, ее можно сопоставить следующим образом:
steps:
- task: Bash@3
inputs:
targetType: 'inline'
script: echo $MYSECRET
env:
MYSECRET: $(Foo)
В macOS или Linux приведенный выше пример эквивалентен следующему:
steps:
- script: echo $MYSECRET
env:
MYSECRET: $(Foo)
Требования
Требование | Описание |
---|---|
Типы конвейеров | YAML, классическая сборка, классический выпуск |
Выполняется в | Агент, DeploymentGroup |
требования | Никакой |
возможностей | Эта задача не удовлетворяет требованиям к последующим задачам в задании. |
ограничения команд | Любой |
переменные settable | Любой |
Версия агента | 2.115.0 или более поздней версии |
Категория задач | Полезность |