Интерфейс командной строки Azure DevOps в Azure Pipeline YAML
Azure DevOps Services
Если вы хотите использовать Azure DevOps CLI с конвейером YAML, можно использовать следующие примеры для установки Azure CLI, добавления расширения Azure DevOps и запуска команд Azure DevOps CLI.
Примечание.
В этой статье показано, как выполнить проверку подлинности с помощью Azure DevOps и выполнить az devops
команды с помощью расширения ИНТЕРФЕЙСА командной строки Azure DevOps. Если вы хотите использовать Azure CLI для взаимодействия с ресурсами Azure, используйте задачу AzureCLI.
Проверка подлинности с помощью Azure DevOps
Некоторые команды Azure DevOps CLI, которые не вызываются в Azure DevOps, например az devops configure
и az devops -h
не требуют проверки подлинности, но большинство команд взаимодействуют с Azure DevOps и требуют проверки подлинности. Вы можете пройти проверку подлинности с помощью маркера безопасности System.AccessToken , используемого запущенным конвейером, назначив его переменной среды с именем AZURE_DEVOPS_EXT_PAT
, как показано в следующем примере.
- bash: |
az pipelines build list --organization '$(System.TeamFoundationCollectionUri)' --project '$(System.TeamProject)'
displayName: 'Show build list'
env:
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)
При наличии нескольких шагов, требующих проверки подлинности, добавьте AZURE_DEVOPS_EXT_PAT
переменную среды на каждый шаг.
Дополнительные сведения о области маркера безопасности, используемого запущенным конвейером, см. в статьях Репозитории Access, артефакты и другие ресурсы.
Дополнительные сведения о проверке подлинности с помощью личного маркера доступа см. в статье "Вход с помощью личного маркера доступа(PAT)".
Интерфейс командной строки Azure DevOps с размещенными агентами Windows и Linux
Агенты Windows и Linux, размещенные в Майкрософт, предварительно настроены с помощью Azure CLI и расширения Azure DevOps CLI.
В следующем примере показано, как войти в Azure DevOps и выполнить несколько команд. В этом примере используется ubuntu-latest
образ агента, размещенный корпорацией Майкрософт, но его можно заменить любым из других размещенных образов Windows или Linux.
В этом примере выполняется проверка подлинности с помощью интерфейса командной строки Azure DevOps с помощью маркера безопасности System.AccessToken , используемого запущенным конвейером.
trigger:
- main
pool:
vmImage: 'ubuntu-latest'
steps:
- bash: az --version
displayName: 'Show Azure CLI version'
- bash: az devops configure --defaults organization='$(System.TeamFoundationCollectionUri)' project='$(System.TeamProject)' --use-git-aliases true
displayName: 'Set default Azure DevOps organization and project'
- bash: |
az pipelines build list
git pr list
displayName: 'Show build list and PRs'
env:
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)
Azure DevOps CLI с размещенными агентами macOS
Агенты с macOS, размещенные в Майкрософт, установили Azure CLI, но не расширение Интерфейса командной строки Azure DevOps. Чтобы установить расширение ИНТЕРФЕЙСА командной строки Azure DevOps, выполните следующую команду в конвейере перед вызовами Интерфейса командной строки Azure DevOps.
# Install Azure DevOps extension
- bash: az extension add -n azure-devops
displayName: 'Install Azure DevOps extension'
Версия Azure CLI размещенного агента
Агенты , размещенные корпорацией Майкрософт, обычно развертывают еженедельные обновления программного обеспечения в виртуальных средах. Для некоторых средств используется последняя версия во время развертывания; для других пользователей средство закреплено на определенных версиях.
- Чтобы проверить включенное программное обеспечение и их версии для агентов, размещенных в Майкрософт, включая установленную версию Azure CLI и расширения Azure DevOps CLI, следуйте ссылкам включенного программного обеспечения в таблице Software .
- Чтобы проверить текущую версию Azure CLI, см. инструкции по установке Azure CLI.
Azure CLI можно обновить на размещенных образах, выполнив следующие команды в конвейере.
# Specify python version
- task: UsePythonVersion@0
inputs:
versionSpec: '3.x'
architecture: 'x64'
# Update to latest Azure CLI version
- bash: pip install --pre azure-cli
displayName: 'Upgrade Azure CLI'
Условно установите расширение Интерфейса командной строки Azure DevOps
Если конвейер выполняется на нескольких образах виртуальных машин, размещенных корпорацией Майкрософт, некоторые из которых не установлены расширения ИНТЕРФЕЙСА командной строки Azure DevOps, вы выполняете установку условно.
trigger:
- main
# Run on multiple Microsoft-hosted agent images
strategy:
matrix:
linux22:
imageName: "ubuntu-22.04"
linux20:
imageName: "ubuntu-20.04"
mac13:
imageName: "macos-13"
mac12:
imageName: "macos-12"
mac11:
imageName: "macos-11"
windows2019:
imageName: "windows-2019"
windows2022:
imageName: "windows-2022"
maxParallel: 3
pool:
vmImage: $(imageName)
steps:
- bash: az --version
displayName: 'Show Azure CLI version'
# Install Azure DevOps CLI extension only on macOS images
- bash: az extension add -n azure-devops
condition: contains(variables.imageName, 'mac')
displayName: 'Install Azure DevOps extension'
# Azure DevOps CLI extension call that does not require login or credentials
# since it configures the local environment
- bash: az devops configure --defaults organization='$(System.TeamFoundationCollectionUri)' project='$(System.TeamProject)' --use-git-aliases true
displayName: 'Set default Azure DevOps organization and project'
# Call that does require credentials, use the System.AccessToken PAT
# and assign to AZURE_DEVOPS_EXT_PAT which is known to Azure DevOps CLI extension
- bash: |
az pipelines build list
git pr list
env:
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)
displayName: 'Show build list and PRs'
Azure DevOps CLI с локальными агентами
Для установки или обновления Azure DevOps CLI в локальном агенте можно использовать следующие методы.
- Установка Azure CLI и расширения Azure DevOps CLI вручную
- Установка расширения Azure CLI и Azure DevOps CLI в конвейере
Установка Azure CLI и расширения Azure DevOps CLI вручную
Установка расширения Azure CLI и Azure DevOps CLI на локальном агенте при подготовке образа виртуальной машины для агента быстрее, чем при каждом запуске конвейера.
- Чтобы установить Azure CLI на образ локального агента, см. статью "Установка Azure CLI". Существуют отдельные инструкции для Windows, Linux и macOS.
- После установки Azure CLI установите расширение Интерфейса командной строки Azure DevOps.
Установка расширения Azure CLI и Azure DevOps CLI в конвейере
В следующем примере настройки azure CLI и расширения Azure DevOps CLI для локального агента с помощью конвейера имеются следующие предварительные требования.
- Установка Azure CLI с помощью Python
- Python должен быть установлен на агенте в соответствии с инструкциями в задаче версии Python. Как настроить автономный агент для использования этой задачи? Задача
UsePythonVersion@0
не устанавливает Python на локальный агент. Если на локальном агенте установлена только одна версия Python, и она находится в пути, вам не нужно использоватьUsePythonVersion@0
задачу.
- Python должен быть установлен на агенте в соответствии с инструкциями в задаче версии Python. Как настроить автономный агент для использования этой задачи? Задача
# Specify python version if you have side-by-side versions
- task: UsePythonVersion@0
inputs:
versionSpec: '3.x'
architecture: 'x64'
# Update pip to latest
- bash: python -m pip install --upgrade pip
displayName: 'Upgrade pip'
# Update to latest Azure CLI version, min version required for Azure DevOps is 2.10.1
- bash: pip install --pre azure-cli
displayName: 'Upgrade Azure CLI'
- Установка расширения Azure CLI DevOps
# Install Azure DevOps extension
- bash: az extension add -n azure-devops
displayName: 'Install Azure DevOps extension'
# Now you can make calls into Azure DevOps CLI
# ...
В следующем примере устанавливается Azure CLI, за которым следует расширение Azure DevOps CLI.
steps:
# Specify python version if you have side-by-side versions
- task: UsePythonVersion@0
inputs:
versionSpec: '3.x'
architecture: 'x64'
# Update pip to latest
- bash: python -m pip install --upgrade pip
displayName: 'Upgrade pip'
# Update to latest Azure CLI version, min version required for Azure DevOps is 2.10.1
- bash: pip install --pre azure-cli
displayName: 'Upgrade Azure CLI'
# Install Azure DevOps extension
- bash: az extension add -n azure-devops
displayName: 'Install Azure DevOps extension'
# Now you can make calls into Azure DevOps CLI
# ...
Назначение результатов вызова Интерфейса командной строки Azure DevOps переменной
Чтобы сохранить результаты вызова Azure DevOps CLI к переменной конвейера, используйте task.setvariable
синтаксис, описанный в разделе Set переменных в скриптах. В следующем примере извлекается идентификатор группы переменных с именем Fabrikam-2023 , а затем используется это значение в следующем шаге.
variables:
- name: variableGroupId
trigger: none
pool:
vmImage: "ubuntu-latest"
steps:
- bash: az devops configure --defaults organization='$(System.TeamFoundationCollectionUri)' project='$(System.TeamProject)' --use-git-aliases true
displayName: 'Set default Azure DevOps organization and project'
- bash: echo "##vso[task.setvariable variable=variableGroupId]$(az pipelines variable-group list --group-name Fabrikam-2023 --query [].id -o tsv)"
env:
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)
displayName: 'Get Fabrikam-2023 variable group id'
- bash: az pipelines variable-group variable list --group-id '$(variableGroupId)'
env:
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)
displayName: 'List variables in Fabrikam-2023 variable group'
Дополнительные примеры работы с переменными, включая работу с переменными между заданиями и этапами, см. в разделе "Определение переменных". Примеры синтаксиса запроса, используемого в предыдущем примере, см. в статье "Как запросить выходные данные команды Azure CLI с помощью запроса JMESPath".