@@ -15,34 +15,26 @@ if ($lastVersion.StartsWith("v")){
1515
1616$currentVersionTokens = $currentVersion.Split (' .' )
1717$lastVersionTokens = $lastVersion.Split (' .' )
18- if ($currentVersionTokens.Length -eq $lastVersionTokens.Length )
18+
19+ # Compare versions segment by segment
20+ $maxLength = [Math ]::Max($currentVersionTokens.Length , $lastVersionTokens.Length )
21+ for ($i = 0 ; $i -lt $maxLength ; $i ++ )
1922{
20- for ($i = 0 ; $i -lt $currentVersionTokens.Length ; $i ++ )
21- {
22- $currentVersionToken = [int ]$currentVersionTokens [$i ]
23- $lastVersionToken = [int ]$lastVersionTokens [$i ]
24- if ($currentVersionToken -lt $lastVersionToken ){
25- throw " Version is not incremented. Current version " + $currentVersion + " . Last version " + $lastVersion
26- }
23+ # Treat missing segments as 0
24+ $currentVersionToken = if ($i -lt $currentVersionTokens.Length ) { [int ]$currentVersionTokens [$i ] } else { 0 }
25+ $lastVersionToken = if ($i -lt $lastVersionTokens.Length ) { [int ]$lastVersionTokens [$i ] } else { 0 }
26+
27+ if ($currentVersionToken -gt $lastVersionToken ) {
28+ # Current version is greater, we're done
29+ Write-Host " Version has been incremented"
30+ exit 0
2731 }
28-
29- if ( $currentVersionToken -le $lastVersionToken ){
32+ elseif ( $currentVersionToken -lt $lastVersionToken ) {
33+ # Current version is less, fail
3034 throw " Version is not incremented. Current version " + $currentVersion + " . Last version " + $lastVersion
3135 }
32-
33- Write-Host " Version has been incremented"
36+ # If equal, continue to next segment
3437}
35- elseif ($currentVersionTokens.Length -gt $lastVersionTokens.Length ){
36- if ($currentVersionTokens [$lastVersionTokens.Length - 1 ] -lt $lastVersionTokens [$lastVersionTokens.Length - 1 ]){
37- throw " Version is not incremented. Current version " + $currentVersion + " . Last version " + $lastVersion
38- }
39-
40- Write-Host " Version has been incremented"
41- }
42- elseif ($currentVersionTokens.Length -lt $lastVersionTokens.Length ){
43- if ($currentVersionTokens [$currentVersionTokens.Length - 1 ] -le $lastVersionTokens [$currentVersionTokens.Length - 1 ]){
44- throw " Version is not incremented. Current version " + $currentVersion + " . Last version " + $lastVersion
45- }
4638
47- Write-Host " Version has been incremented"
48- }
39+ # All segments are equal - version is not incremented
40+ throw " Version is not incremented. Current version " + $currentVersion + " . Last version " + $lastVersion
0 commit comments