diff --git a/eng/common/scripts/Save-Package-Properties.ps1 b/eng/common/scripts/Save-Package-Properties.ps1 index 6fb9e61ee0f2..44f622357753 100644 --- a/eng/common/scripts/Save-Package-Properties.ps1 +++ b/eng/common/scripts/Save-Package-Properties.ps1 @@ -10,6 +10,10 @@ an artifact name property is available in the package properties. Can optionally add a dev version property which can be used logic for daily builds. +In cases of collisions where track 2 packages (IsNewSdk = true) have the same +filename as track 1 packages (e.g. same artifact name or package name), the +track 2 package properties will be written. + .PARAMETER serviceDirectory Service directory in which to search for packages @@ -87,6 +91,7 @@ function GetRelativePath($path) { return $relativePath } +$exportedPaths = @{} $allPackageProperties = Get-AllPkgProperties $serviceDirectory if ($allPackageProperties) { @@ -114,6 +119,15 @@ if ($allPackageProperties) Write-Host "Creating directory $($outDir) for json property file" New-Item -ItemType Directory -Path $outDir } + + # If package properties for a track 2 (IsNewSdk = true) package has + # already been written, skip writing to that same path. + if ($exportedPaths.ContainsKey($outputPath) -and $exportedPaths[$outputPath].IsNewSdk -eq $true) { + Write-Host "Track 2 package info with file name $($outputPath) already exported. Skipping export." + continue + } + $exportedPaths[$outputPath] = $pkg + SetOutput $outputPath $pkg }