@@ -66,19 +66,9 @@ public static void UpdatePackageVersionForIntegrationTests()
66
66
foreach ( var package in packagesToUpdate )
67
67
{
68
68
var packageInfo = GetLatestPackageInfo ( name : package . Name , majorVersion : package . MajorVersion , source : AzureFunctionsPreReleaseFeedName ) ;
69
+ Shell . Run ( "dotnet" , $ "add package { packageInfo . Name } -v { packageInfo . Version } -s { AzureFunctionsPreReleaseFeedName } --no-restore") ;
69
70
70
- if ( string . IsNullOrEmpty ( packageInfo ) )
71
- {
72
- throw new Exception ( $ "Failed to get { package } package information from { AzureFunctionsPreReleaseFeedName } .") ;
73
- }
74
-
75
- var parts = packageInfo . Split ( " " ) ;
76
- var packageName = parts [ 0 ] ;
77
- var packageVersion = parts [ 1 ] ;
78
-
79
- Shell . Run ( "dotnet" , $ "add package { packageName } -v { packageVersion } -s { AzureFunctionsPreReleaseFeedName } --no-restore") ;
80
-
81
- buildPackages . Add ( packageName , packageVersion ) ;
71
+ buildPackages . Add ( packageInfo . Name , packageInfo . Version ) ;
82
72
}
83
73
}
84
74
finally
@@ -657,31 +647,42 @@ private static void RemoveLanguageWorkers(string outputPath)
657
647
}
658
648
}
659
649
660
- private static string GetLatestPackageInfo ( string name , string majorVersion , string source )
650
+ private static PackageInfo GetLatestPackageInfo ( string name , string majorVersion , string source )
661
651
{
662
652
string includeAllVersion = ! string . IsNullOrWhiteSpace ( majorVersion ) ? "-AllVersions" : string . Empty ;
663
653
string packageInfo = Shell . GetOutput ( "NuGet" , $ "list { name } -Source { source } -prerelease { includeAllVersion } ") ;
664
654
665
- if ( string . IsNullOrEmpty ( packageInfo ) )
655
+ if ( packageInfo . Contains ( "No packages found" , StringComparison . OrdinalIgnoreCase ) )
666
656
{
667
- throw new Exception ( $ "Failed to get { name } package information from { source } .") ;
657
+ throw new Exception ( $ "Package name { name } not found in { source } .") ;
668
658
}
669
659
670
660
if ( ! string . IsNullOrWhiteSpace ( majorVersion ) )
671
661
{
672
662
foreach ( var package in packageInfo . Split ( Environment . NewLine ) )
673
663
{
674
- var version = package . Split ( " " ) [ 1 ] ;
675
- if ( version . StartsWith ( majorVersion ) )
664
+ var thisPackage = NewPackageInfo ( package ) ;
665
+ if ( thisPackage . Name . Equals ( name , StringComparison . OrdinalIgnoreCase ) && thisPackage . Version . StartsWith ( majorVersion ) )
676
666
{
677
- return package ;
667
+ return thisPackage ;
678
668
}
679
669
}
680
670
681
671
throw new Exception ( $ "Failed to find { name } package for major version { majorVersion } .") ;
682
672
}
683
673
684
- return packageInfo ;
674
+ return NewPackageInfo ( packageInfo ) ;
675
+ }
676
+
677
+ private static PackageInfo NewPackageInfo ( string packageInfo )
678
+ {
679
+ var parts = packageInfo . Split ( " " ) ;
680
+ if ( parts . Length > 2 )
681
+ {
682
+ throw new Exception ( $ "Invalid package format. The string should only contain 'name<space>version'. Current value: '{ packageInfo } '") ;
683
+ }
684
+
685
+ return new PackageInfo ( Name : parts [ 0 ] , Version : parts [ 1 ] ) ;
685
686
}
686
687
}
687
688
}
0 commit comments