@@ -66,17 +66,20 @@ function SyncGalleryToAzArtifacts {
6666 }
6767
6868 # Check if Az package version is less that gallery version
69- if (CompareVersions -lt - ReferencePackage $foundPackageOnAz - DifferencePackage $foundPackageOnGallery ) {
69+ $pkgOnAzVersion = [semver ]::new($foundPackageOnAz.Version )
70+ $pkgOnGalleryVersion = [semver ]::new($foundPackageOnGallery.Version )
71+
72+ if ($pkgOnAzVersion -lt $pkgOnGalleryVersion ) {
7073 Write-Verbose - Verbose " Module needs to be updated $ ( $package.Name ) - $ ( $foundPackageOnGallery.Version ) "
7174 $modulesToUpdate += $foundPackageOnGallery
72- } elseif (CompareVersions -lt - ReferencePackage $foundPackageOnGallery - DifferencePackage $foundPackageOnAz ) {
75+ } elseif ($pkgOnGalleryVersion -lt $pkgOnAzVersion ) {
7376 Write-Warning " Newer version found on Az Artifacts - $ ( $foundPackageOnAz.Name ) - $ ( $foundPackageOnAz.Version ) "
7477 } else {
7578 Write-Verbose - Verbose " Module is in sync - $ ( $package.Name ) "
7679 }
7780 }
7881
79- " Gallery Packages:`n "
82+ " `n Gallery Packages:"
8083 $galleryPackages
8184
8285 " `n Az Artifacts Packages:`n "
@@ -90,66 +93,42 @@ function SyncGalleryToAzArtifacts {
9093 Save-Package - Provider NuGet - Source $galleryUrl - Name $package.Name - RequiredVersion $package.Version - Path $Destination
9194 }
9295
93- # Remove dependent packages downloaded by Save-Module if there are already present in AzArtifacts feed.
94- try {
95- $null = Register-PackageSource - Name local - Location $Destination - ProviderName NuGet - Force
96- $packageNamesToKeep = @ ()
97- $savedPackages = Find-Package - Source local - AllVersions - AllowPreReleaseVersion
96+ if ($modulesToUpdate.Length -gt 0 )
97+ {
98+ # Remove dependent packages downloaded by Save-Package if there are already present in AzArtifacts feed.
99+ try {
100+ $null = Register-PackageSource - Name local - Location $Destination - ProviderName NuGet - Force
101+ $packageNamesToKeep = @ ()
102+ $savedPackages = Find-Package - Source local - AllVersions - AllowPreReleaseVersion
98103
99- Write-Verbose - Verbose " Saved packages:"
100- $savedPackages | Out-String | Write-Verbose - Verbose
104+ Write-Verbose - Verbose " Saved packages:"
105+ $savedPackages | Out-String | Write-Verbose - Verbose
101106
102- foreach ($package in $savedPackages ) {
103- $pkgVersion = NormalizeVersion - version $package.Version
104- $foundMatch = $azArtifactsPackages | Where-Object { $_.Name -eq $package.Name -and (NormalizeVersion - version $_.Version ) -eq $pkgVersion }
107+ foreach ($package in $savedPackages ) {
108+ $pkgVersion = NormalizeVersion - version $package.Version
109+ $foundMatch = $azArtifactsPackages | Where-Object { $_.Name -eq $package.Name -and (NormalizeVersion - version $_.Version ) -eq $pkgVersion }
105110
106- if (-not $foundMatch ) {
107- Write-Verbose " Keeping package $ ( $package.PackageFileName ) " - Verbose
108- $packageNamesToKeep += " {0}*.nupkg" -f $package.Name
111+ if (-not $foundMatch ) {
112+ Write-Verbose " Keeping package $ ( $package.PackageFileName ) " - Verbose
113+ $packageNamesToKeep += " {0}*.nupkg" -f $package.Name
114+ }
109115 }
110- }
111-
112- Remove-Item - Path $Destination - Exclude $packageNamesToKeep - Recurse - Force - Verbose
113-
114- Write-Verbose - Verbose " Packages kept for upload"
115- Get-ChildItem $Destination | Out-String | Write-Verbose - Verbose
116- }
117- finally {
118- Unregister-PackageSource - Name local - Force - ErrorAction SilentlyContinue
119- }
120-
121- }
122116
123- Function CompareVersions {
124- param (
125- [Microsoft.PackageManagement.Packaging.SoftwareIdentity ]
126- $ReferencePackage ,
127- [Microsoft.PackageManagement.Packaging.SoftwareIdentity ]
128- $DifferencePackage ,
129- [Parameter (Mandatory = $true , ParameterSetName = ' lt' )]
130- [switch ]
131- $lt ,
132- [Parameter (Mandatory = $true , ParameterSetName = ' gt' )]
133- [switch ]
134- $gt
135- )
136-
137- if ($ReferencePackage.Version -eq $DifferencePackage.Version ) {
138- return $false
139- }
140-
141- $latest = SortPackage - p @ ($ReferencePackage , $DifferencePackage ) | Select-Object - First 1
117+ if ($packageNamesToKeep.Length -gt 0 ) {
118+ # # Removing only if we do have some packages to keep,
119+ # # otherwise the '$Destination' folder will be removed.
120+ Remove-Item - Path $Destination - Exclude $packageNamesToKeep - Recurse - Force - Verbose
121+ }
142122
143- if ( $gt .IsPresent ) {
144- return $ReferencePackage -eq $latest
145- } elseif ( $lt .IsPresent ) {
146- return $DifferencePackage -eq $latest
147- } else {
148- throw " Unknown parameter set "
123+ Write-Verbose - Verbose " Packages kept for upload "
124+ Get-ChildItem $Destination | Out-String | Write-Verbose - Verbose
125+ }
126+ finally {
127+ Unregister-PackageSource - Name local - Force - ErrorAction SilentlyContinue
128+ }
149129 }
150130}
151131
152-
153132Function SortPackage {
154133 param (
155134 [Parameter (ValueFromPipeline = $true )]
0 commit comments