Skip to content

Commit 47c3006

Browse files
committed
feat: Add Azure CLI version check and extension validation
1 parent 0122740 commit 47c3006

File tree

2 files changed

+27
-7
lines changed

2 files changed

+27
-7
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ PAL enables Microsoft to identify and recognize partners who drive Azure custome
88

99
## Prerequisites
1010

11-
- Azure CLI must be installed on the build agent
11+
- Azure CLI (version 2.30.0 or higher) must be installed on the build agent
12+
- Azure CLI managementpartner extension will be installed automatically if needed
1213
- PowerShell (Windows PowerShell or PowerShell Core for cross-platform) must be installed on the build agent
1314
- Azure Service Connection must be configured in your pipeline
1415

partnerId/check_and_set_partnerid.ps1

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,33 @@ try {
3030
exit 1
3131
}
3232

33-
# Verify Azure CLI is available
33+
# Verify Azure CLI version
3434
try {
35-
$azVersion = az version
36-
Write-Output "Azure CLI version: $azVersion"
35+
$azVersionJson = az version | ConvertFrom-Json
36+
$cliVersion = $azVersionJson.'azure-cli'
37+
Write-Output "Azure CLI version: $cliVersion"
38+
39+
# Convert version string to version object for comparison
40+
$minVersion = [System.Version]"2.30.0"
41+
$currentVersion = [System.Version]$cliVersion
42+
43+
if ($currentVersion -lt $minVersion) {
44+
Write-Error "Azure CLI version $cliVersion is below minimum required version $minVersion. Please upgrade Azure CLI."
45+
exit 1
46+
}
47+
48+
# Check managementpartner extension
49+
Write-Output "Checking Azure CLI extension 'managementpartner'..."
50+
$extOutput = az extension show --name managementpartner 2>&1
51+
if ($LASTEXITCODE -ne 0) {
52+
Write-Output "Management Partner extension not found. Installing..."
53+
az extension add --name managementpartner
54+
} else {
55+
$extVersion = ($extOutput | ConvertFrom-Json).version
56+
Write-Output "Management Partner extension version: $extVersion"
57+
}
3758
} catch {
38-
Write-Error "Azure CLI is not installed or not accessible"
59+
Write-Error "Azure CLI is not installed or not accessible: $($_.Exception.Message)"
3960
exit 1
4061
}
4162

@@ -48,8 +69,6 @@ if ($partnerId -notmatch '^\d{6,8}$') {
4869
exit 1
4970
}
5071

51-
Write-Output "Adding Azure CLI extension 'managementpartner'..."
52-
az extension add --name managementpartner
5372

5473
Write-Output "Checking and setting Microsoft Partner ID (MPN ID)..."
5574
try {

0 commit comments

Comments
 (0)