Azure DevOps CLI di AZURE Pipeline YAML
Azure DevOps
Jika Anda ingin menggunakan Azure DevOps CLI dengan alur YAML, Anda dapat menggunakan contoh berikut untuk menginstal Azure CLI, menambahkan ekstensi Azure DevOps, dan menjalankan perintah Azure DevOps CLI.
Catatan
Langkah-langkah dalam artikel ini menunjukkan cara mengautentikasi dengan Azure DevOps dan menjalankan az devops
perintah menggunakan ekstensi Azure DevOps CLI. Jika Anda ingin menggunakan Azure CLI untuk berinteraksi dengan sumber daya Azure, gunakan tugas AzureCLI.
Mengautentikasi dengan Azure DevOps
Beberapa perintah Azure DevOps CLI yang tidak memanggil Azure DevOps, seperti az devops configure
dan az devops -h
, tidak memerlukan autentikasi apa pun, tetapi sebagian besar perintah berinteraksi dengan Azure DevOps dan memerlukan autentikasi. Anda dapat mengautentikasi menggunakan token keamanan System.AccessToken yang digunakan oleh alur yang sedang berjalan, dengan menetapkannya ke variabel lingkungan bernama AZURE_DEVOPS_EXT_PAT
, seperti yang ditunjukkan dalam contoh berikut.
- bash: |
az pipelines build list --organization '$(System.TeamFoundationCollectionUri)' --project '$(System.TeamProject)'
displayName: 'Show build list'
env:
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)
Jika Anda memiliki beberapa langkah yang memerlukan autentikasi, tambahkan AZURE_DEVOPS_EXT_PAT
variabel lingkungan ke setiap langkah.
Untuk informasi selengkapnya tentang cakupan token keamanan yang digunakan oleh alur yang sedang berjalan, lihat Repositori akses, artefak, dan sumber daya lainnya.
Untuk informasi selengkapnya tentang autentikasi menggunakan token akses pribadi, lihat Masuk dengan token akses pribadi (PAT).
Azure DevOps CLI dengan agen yang dihosting Windows dan Linux
Agen Windows dan Linux yang dihosting Microsoft telah dikonfigurasi sebelumnya dengan Azure CLI dan ekstensi Azure DevOps CLI.
Contoh berikut menunjukkan cara masuk ke Azure DevOps dan menjalankan beberapa perintah. Contoh ini menggunakan ubuntu-latest
gambar agen yang dihosting Microsoft, tetapi Anda dapat menggantinya dengan salah satu gambar yang dihosting Windows atau Linux lainnya.
Contoh ini mengautentikasi dengan Azure DevOps CLI menggunakan token keamanan System.AccessToken yang digunakan oleh alur yang sedang berjalan.
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 dengan agen yang dihosting macOS
Agen macOS yang dihosting Microsoft telah menginstal Azure CLI tetapi bukan ekstensi Azure DevOps CLI. Untuk menginstal ekstensi Azure DevOps CLI, jalankan perintah berikut di alur Anda sebelum melakukan panggilan CLI Azure DevOps apa pun.
# Install Azure DevOps extension
- bash: az extension add -n azure-devops
displayName: 'Install Azure DevOps extension'
Versi Azure CLI agen yang dihosting
Agen yang dihosting Microsoft biasanya menyebarkan pembaruan mingguan ke perangkat lunak di lingkungan virtual. Untuk beberapa alat, versi terbaru pada saat penyebaran digunakan; untuk yang lain, alat ini disematkan ke versi tertentu.
- Untuk memeriksa perangkat lunak yang disertakan dan versinya untuk agen yang dihosting Microsoft, termasuk versi ekstensi Azure CLI dan Azure DevOps CLI yang diinstal, ikuti tautan Perangkat Lunak yang Disertakan dalam tabel Perangkat Lunak .
- Untuk memeriksa versi saat ini untuk Azure CLI, lihat Cara menginstal Azure CLI.
Anda dapat meningkatkan Azure CLI pada gambar yang dihosting dengan menjalankan perintah berikut di alur Anda.
# 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'
Menginstal ekstensi CLI Azure DevOps secara kondisional
Jika alur Anda berjalan pada beberapa gambar VM yang dihosting Microsoft, beberapa di antaranya tidak menginstal ekstensi Azure DevOps CLI, Anda melakukan penginstalan secara kondisional.
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 dengan agen yang dihost sendiri
Anda dapat menggunakan metode berikut untuk menginstal atau meningkatkan Azure DevOps CLI di agen yang dihost sendiri.
- Menginstal ekstensi Azure CLI dan Azure DevOps CLI secara manual
- Menginstal ekstensi Azure CLI dan Azure DevOps CLI di alur Anda
Menginstal ekstensi Azure CLI dan Azure DevOps CLI secara manual
Menginstal ekstensi Azure CLI dan Azure DevOps CLI pada agen yang dihost sendiri saat Anda memprovisikan gambar komputer virtual untuk agen lebih cepat daripada menginstalnya setiap kali alur dijalankan.
- Untuk menginstal Azure CLI pada gambar agen yang dihost sendiri, lihat Menginstal Azure CLI. Ada instruksi terpisah untuk Windows, Linux, dan macOS.
- Setelah menginstal Azure CLI, instal ekstensi Azure DevOps CLI.
Menginstal ekstensi Azure CLI dan Azure DevOps CLI di alur Anda
Contoh berikut mengonfigurasi ekstensi Azure CLI dan Azure DevOps CLI pada agen yang dihost sendiri menggunakan alur memiliki prasyarat berikut.
- Menginstal Azure CLI menggunakan Python
- Python harus diinstal pada agen sesuai dengan instruksi dalam tugas versi Python - Bagaimana cara mengonfigurasi agen yang dihost sendiri untuk menggunakan tugas ini? Tugas
UsePythonVersion@0
ini tidak menginstal Python ke agen yang dihost sendiri. Jika Anda hanya memiliki satu versi Python yang diinstal pada agen yang dihost sendiri dan berada di jalur, Anda tidak perlu menggunakan tugas tersebutUsePythonVersion@0
.
- Python harus diinstal pada agen sesuai dengan instruksi dalam tugas versi Python - Bagaimana cara mengonfigurasi agen yang dihost sendiri untuk menggunakan tugas ini? Tugas
# 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'
- Menginstal ekstensi 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
# ...
Contoh berikut menginstal Azure CLI diikuti oleh ekstensi 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
# ...
Menetapkan hasil panggilan Azure DevOps CLI ke variabel
Untuk menyimpan hasil panggilan Azure DevOps CLI ke variabel alur, gunakan sintaks yang task.setvariable
dijelaskan dalam Mengatur variabel dalam skrip. Contoh berikut mengambil ID grup variabel bernama Fabrikam-2023 lalu menggunakan nilai ini dalam langkah berikutnya.
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'
Untuk contoh selengkapnya tentang bekerja dengan variabel, termasuk bekerja dengan variabel di seluruh pekerjaan dan tahapan, lihat Menentukan variabel. Untuk contoh sintaks kueri yang digunakan dalam contoh sebelumnya, lihat Cara mengkueri output perintah Azure CLI menggunakan kueri JMESPath.