Azure DevOps CLI ve službě Azure Pipeline YAML

Služby Azure DevOps

Pokud chcete použít Azure DevOps CLI s kanálem YAML, můžete pomocí následujícího příkladu zjistit, jak se dá YAML použít k instalaci Azure CLI, přidání rozšíření Azure DevOps a spuštění příkazů Azure DevOps CLI.

Poznámka:

Kroky v tomto článku ukazují, jak ověřovat pomocí Azure DevOps a spouštět az devops příkazy pomocí rozšíření Azure DevOps CLI. Pokud chcete použít Azure CLI k interakci s prostředky Azure, použijte úlohu AzureCLI.

Ověřování pomocí Azure DevOps

Některé příkazy Rozhraní příkazového řádku Azure DevOps, které se do Azure DevOps nezavolají, například az devops configure a az devops -hnevyžadují žádné ověřování, ale většina příkazů komunikuje s Azure DevOps a vyžaduje ověřování. Můžete se ověřit pomocí tokenu zabezpečení System.AccessToken používaného spuštěným kanálem tak, že ho přiřadíte k proměnné prostředí s názvem AZURE_DEVOPS_EXT_PAT, jak je znázorněno v následujícím příkladu.

- bash: |
    az pipelines build list
  displayName: 'Show build list'
  env:
    AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)

Pokud máte více kroků, které vyžadují ověření, přidejte proměnnou AZURE_DEVOPS_EXT_PAT prostředí do každého kroku.

Další informace o rozsahu tokenu zabezpečení používaného spuštěným kanálem najdete v tématu Přístupová úložiště, artefakty a další prostředky.

Další informace o ověřování pomocí osobního přístupového tokenu najdete v tématu Přihlášení pomocí tokenu PAT (Personal Access Token).

Azure DevOps CLI s agenty hostovanými ve Windows a Linuxu

Agenti Windows a Linux hostovaní Microsoftem jsou předem nakonfigurovaní pomocí Azure CLI a rozšíření Azure DevOps CLI.

Následující příklad ukazuje, jak se přihlásit k Azure DevOps a spustit několik příkazů. Tento příklad používá ubuntu-latest image agenta hostovaného Microsoftem, ale můžete ji nahradit některou z ostatních imagí hostovaných systémem Windows nebo Linux.

Tento příklad se ověřuje pomocí Azure DevOps CLI pomocí tokenu zabezpečení System.AccessToken používaného spuštěným kanálem.

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 s agenty hostovanými v macOS

Agenti hostovaní Microsoftem v macOS mají nainstalované Rozhraní příkazového řádku Azure, ale ne rozšíření Azure DevOps CLI. Pokud chcete nainstalovat rozšíření Azure DevOps CLI, spusťte v kanálu následující příkaz před provedením jakýchkoli volání Azure DevOps CLI.

# Install Azure DevOps extension
- bash: az extension add -n azure-devops
  displayName: 'Install Azure DevOps extension'

Verze Azure CLI hostovaného agenta

Agenti hostovaní Microsoftem obvykle nasazují týdenní aktualizace softwaru ve virtuálních prostředích. U některých nástrojů se používá nejnovější verze v době nasazení; pro ostatní je nástroj připnutý ke konkrétním verzím.

  • Pokud chcete zkontrolovat zahrnutý software a jejich verze pro agenty hostované Microsoftem, včetně nainstalované verze Azure CLI a rozšíření Azure DevOps CLI, postupujte podle odkazů zahrnutý software v tabulce Software.
  • Pokud chcete zkontrolovat aktuální verzi Azure CLI, přečtěte si, jak nainstalovat Azure CLI.

Pokud je vydána novější verze Azure CLI a hostované image ještě nemají nejnovější verzi, můžete upgradovat verzi Azure CLI na nejnovější verzi spuštěním následujících příkazů ve vašem kanálu.

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

Podmíněná instalace rozšíření Azure DevOps CLI

Pokud máte kanál, který běží na několika imagích virtuálních počítačů hostovaných Microsoftem, některé z nich nemají nainstalované rozšíření Azure DevOps CLI, můžete tento krok provést podmíněně, jak je znázorněno v následujícím příkladu.

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 s agenty v místním prostředí

Pokud váš agent v místním prostředí není nakonfigurovaný s požadovaným softwarem pro použití Azure DevOps CLI nebo pokud chcete zajistit, abyste měli nejnovější verze, můžete požadovaný software nainstalovat pomocí následujícího postupu.

Ruční instalace Azure CLI a rozšíření Azure DevOps CLI

Instalace rozšíření Azure CLI a Azure DevOps CLI na agenta v místním prostředí při zřizování image virtuálního počítače pro agenta je mnohem rychlejší než jejich instalace při každém spuštění kanálu.

  • Pokud chcete nainstalovat Azure CLI na image agenta v místním prostředí, přečtěte si téma Instalace Azure CLI. Existují samostatné pokyny pro Windows, Linux a macOS.
  • Po instalaci Azure CLI nainstalujte rozšíření Azure DevOps CLI.

Instalace rozšíření Azure CLI a Azure DevOps CLI ve vašem kanálu

Následující příklad konfigurace rozšíření Azure CLI a Azure DevOps CLI pro agenta v místním prostředí pomocí kanálu má následující požadavky.

  • Instalace Azure CLI pomocí Pythonu

    # 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'
    
  • Instalace rozšíření Azure CLI DevOps

    • Nainstaluje se Azure CLI verze 2.10.1 nebo novější.
    • V agentu a v cestě je nainstalovaná verze bash . K použití úlohy Bash se vyžaduje instalace Bash.
    # 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
    # ...
    

Následující příklad nainstaluje Azure CLI následované rozšířením 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
# ...

Přiřazení výsledků volání Rozhraní příkazového řádku Azure DevOps k proměnné

Pokud chcete uložit výsledky volání Rozhraní příkazového řádku Azure DevOps do proměnné kanálu, použijte task.setvariable syntaxi popsanou v tématu Nastavení proměnných ve skriptech. Následující příklad načte ID skupiny proměnných s názvem Fabrikam-2023 a pak použije tuto hodnotu v následujícím kroku.

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'

Další příklady práce s proměnnými, včetně práce s proměnnými napříč úlohami a fázemi, najdete v tématu Definice proměnných. Příklady syntaxe dotazu použité v předchozím příkladu najdete v tématu Dotazování výstupu příkazu Azure CLI pomocí dotazu JMESPath.