Skip to content

Commit 9631e65

Browse files
authored
Merge pull request #13155 from Azure/package-version-issue-fix
Improve package version selection logic in catalogAPI file
2 parents 788ae90 + e2c9a05 commit 9631e65

File tree

1 file changed

+31
-9
lines changed

1 file changed

+31
-9
lines changed

.script/package-automation/catalogAPI.ps1

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -123,15 +123,37 @@ function GetOfferVersion($offerId, $mainTemplateUrl)
123123

124124
function GetPackageVersion($defaultPackageVersion, $offerId, $offerDetails, $packageVersionAttribute, $userInputPackageVersion)
125125
{
126+
$setPackageVersion = $defaultPackageVersion
127+
126128
if ($packageVersionAttribute)
127129
{
128130
$userInputMajor,$userInputMinor,$userInputBuild,$userInputRevision = $userInputPackageVersion.split(".")
129131
$defaultMajor,$defaultMinor,$defaultBuild,$defaultRevision = $defaultPackageVersion.split(".")
130132

131-
if ($userInputMajor -ge '2' -and $userInputMinor -gt $defaultMinor)
132-
{
133-
#return as is value of package version as middle value is greater
134-
return $userInputPackageVersion
133+
# Convert to integers for proper numeric comparison
134+
[int]$userInputMajor = $userInputMajor
135+
[int]$userInputMinor = $userInputMinor
136+
[int]$userInputBuild = $userInputBuild
137+
[int]$defaultMajor = $defaultMajor
138+
[int]$defaultMinor = $defaultMinor
139+
[int]$defaultBuild = $defaultBuild
140+
141+
if ($userInputMajor -ge 3) {
142+
# Version 3.x.x or higher: use user input if minor and build are greater than default
143+
if ($userInputMinor -ge $defaultMinor -and $userInputBuild -gt $defaultBuild) {
144+
$setPackageVersion = $userInputPackageVersion
145+
if ($null -eq $offerDetails) {
146+
Write-Host "Package version set to $setPackageVersion"
147+
return $setPackageVersion
148+
}
149+
} elseif ($null -eq $offerDetails) {
150+
Write-Host "Package version set to $userInputPackageVersion"
151+
return $userInputPackageVersion
152+
}
153+
} elseif ($userInputMajor -le 2) {
154+
# Version 2.x.x: always use default
155+
Write-Host "Package version set to $defaultPackageVersion"
156+
return $defaultPackageVersion
135157
}
136158
}
137159

@@ -174,13 +196,13 @@ function GetPackageVersion($defaultPackageVersion, $offerId, $offerDetails, $pac
174196
{
175197
$identifiedOfferVersion = $offerMetadataVersion
176198
$catalogMajor,$catalogminor,$catalogbuild,$catalogrevision = $identifiedOfferVersion.split(".")
177-
$defaultMajor,$defaultminor,$defaultbuild,$defaultrevision = $defaultPackageVersion.split(".")
199+
$defaultMajor,$defaultminor,$defaultbuild,$defaultrevision = $setPackageVersion.split(".")
178200

179-
if ($defaultMajor -gt $catalogMajor)
201+
if ($defaultMajor -gt $catalogMajor -and $defaultminor -gt $catalogminor -and $defaultbuild -ge $catalogbuild)
180202
{
181-
# eg: 3.0.0 > 2.0.1 ==> 3.0.0
182-
Write-Host "Default Package version is greater then the CatalogAPI version so $defaultVersionMessage"
183-
return $defaultPackageVersion
203+
# eg: 3.0.0 > 2.0.1 ==> 3.0.0 or 3.1.2 > 3.1.1 ==> 3.1.2
204+
Write-Host "Package version $setPackageVersion greater then the CatalogAPI version so $defaultVersionMessage"
205+
return $setPackageVersion
184206
}
185207
else
186208
{

0 commit comments

Comments
 (0)