diff options
| author | Adonais Romero González <[email protected]> | 2023-06-29 17:09:26 -0700 |
|---|---|---|
| committer | Adonais Romero González <[email protected]> | 2023-06-29 17:09:26 -0700 |
| commit | cf80b4b1e8521f2adc7766418dbfe08267249b78 (patch) | |
| tree | b1aec918deda9240eb9a7d1ec2d83bccb5bb668e | |
| parent | 22f8539fc3350cd457e3ceadd3603b402c602fe8 (diff) | |
| parent | d9acf794c92ba2fb0525f6c794ef394709035ac3 (diff) | |
Merge branch 'main' into develop
| -rw-r--r-- | .github/scripts/Build-ChangedSamples.ps1 | 2 | ||||
| -rw-r--r-- | Build-SampleSet.ps1 | 23 |
2 files changed, 16 insertions, 9 deletions
diff --git a/.github/scripts/Build-ChangedSamples.ps1 b/.github/scripts/Build-ChangedSamples.ps1 index b669a16a..21fbe6bb 100644 --- a/.github/scripts/Build-ChangedSamples.ps1 +++ b/.github/scripts/Build-ChangedSamples.ps1 @@ -22,7 +22,7 @@ foreach ($file in $ChangedFiles) { $filename = Split-Path $file -Leaf # Files that can affect how every sample is built should trigger a full build - if ($filename -eq "Build-AllSamples.ps1" -or $filename -eq "Build-Sample.ps1") { + if ($filename -eq "Build-AllSamples.ps1" -or $filename -eq "Build-Sample.ps1" -or $filename -eq "Build-SampleSet.ps1") { $buildAll = $true } if ($dir -like "$root\.github\scripts" -or $dir -like "$root\.github\scripts\*") { diff --git a/Build-SampleSet.ps1 b/Build-SampleSet.ps1 index a967abb9..a776af3a 100644 --- a/Build-SampleSet.ps1 +++ b/Build-SampleSet.ps1 @@ -8,6 +8,7 @@ param( [int]$ThrottleLimit = 0 ) +$root = Get-Location $ThrottleFactor = 5 $LogicalProcessors = (Get-CIMInstance -Class 'CIM_Processor' -Verbose:$false).NumberOfLogicalProcessors @@ -43,10 +44,16 @@ finally { $ErrorActionPreference = $oldPreference } -# TODO: Make exclusion more granular; allow for configuration|platform exclusions -$exclusionsSet = @{} +$exclusionConfigurations = @{} +$exclusionReasons = @{} Import-Csv 'exclusions.csv' | ForEach-Object { - $exclusionsSet[$_.Path.Replace($root, '').Trim('\').Replace('\', '.').ToLower()] = $_.Reason + if ($_.Configurations) { + $exclusionConfigurations[$_.Path.Replace($root, '').Trim('\').Replace('\', '.').ToLower()] = $_.Configurations + } + else { + $exclusionConfigurations[$_.Path.Replace($root, '').Trim('\').Replace('\', '.').ToLower()] = '*' + } + $exclusionReasons[$_.Path.Replace($root, '').Trim('\').Replace('\', '.').ToLower()] = $_.Reason } $jresult = @{ @@ -88,9 +95,11 @@ $sw = [Diagnostics.Stopwatch]::StartNew() $SampleSet.GetEnumerator() | ForEach-Object -ThrottleLimit $ThrottleLimit -Parallel { $LogFilesDirectory = $using:LogFilesDirectory - $exclusionsSet = $using:exclusionsSet + $exclusionConfigurations = $using:exclusionConfigurations + $exclusionReasons = $using:exclusionReasons $Configurations = $using:Configurations $Platforms = $using:Platforms + $Verbose = $using:Verbose $sampleName = $_.Key $directory = $_.Value @@ -107,11 +116,9 @@ $SampleSet.GetEnumerator() | ForEach-Object -ThrottleLimit $ThrottleLimit -Paral $thisresult = "Not run" $thisfailset = @() - if ($exclusionsSet.ContainsKey($sampleName)) { + if ($exclusionConfigurations.ContainsKey($sampleName) -and ($exclusionConfigurations[$sampleName].Split(';') | Where-Object { "$configuration|$platform" -like $_ })) { # Verbose - if ($thisexcluded -eq 0) { - Write-Verbose "[$sampleName] `u{23E9} Excluded and skipped. Reason: $($exclusionsSet[$sampleName])" - } + Write-Verbose "[$sampleName $configuration|$platform] `u{23E9} Excluded and skipped. Reason: $($exclusionReasons[$sampleName])" $thisexcluded += 1 $thisresult = "Excluded" } |
