diff --git a/eng/scripts/Language-Settings.ps1 b/eng/scripts/Language-Settings.ps1 index 97f0ab3e78a6..32113410230a 100644 --- a/eng/scripts/Language-Settings.ps1 +++ b/eng/scripts/Language-Settings.ps1 @@ -33,9 +33,24 @@ function Get-python-AdditionalValidationPackagesFromPackageSet { return $startsWith } + $changedServices = @() + foreach($file in $diffObj.ChangedFiles) { + $pathComponents = $file -split "/" + # handle changes only in sdk/// + if ($pathComponents.Length -eq 3 -and $pathComponents[0] -eq "sdk") { + $changedServices += $pathComponents[1] + } + + # handle any changes under sdk/. + if ($pathComponents.Length -eq 2 -and $pathComponents[0] -eq "sdk") { + changedServices += "template" + } + } + $toolChanged = $diffObj.ChangedFiles | Where-Object { $_.StartsWith("tool")} $engChanged = $diffObj.ChangedFiles | Where-Object { $_.StartsWith("eng")} $othersChanged = $diffObj.ChangedFiles | Where-Object { isOther($_) } + $changedServices = $changedServices | Get-Unique if ($toolChanged) { $additionalPackages = @( @@ -73,8 +88,13 @@ function Get-python-AdditionalValidationPackagesFromPackageSet { $additionalValidationPackages += $additionalPackages } + foreach ($changedService in $changedServices) { + $additionalPackages = $AllPkgProps | Where-Object { $_.ServiceDirectory -eq $changedService } + $additionalValidationPackages += $additionalPackages + } + $uniqueResultSet = @() - foreach($pkg in $additionalPackages) { + foreach ($pkg in $additionalValidationPackages) { if ($uniqueResultSet -notcontains $pkg -and $LocatedPackages -notcontains $pkg) { $pkg.IncludedForValidation = $true $uniqueResultSet += $pkg @@ -82,7 +102,7 @@ function Get-python-AdditionalValidationPackagesFromPackageSet { } Write-Host "Returning additional packages for validation: $($uniqueResultSet.Count)" - foreach($pkg in $uniqueResultSet) { + foreach ($pkg in $uniqueResultSet) { Write-Host " - $($pkg.Name)" }