summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdonais Romero González <[email protected]>2023-06-29 17:09:26 -0700
committerAdonais Romero González <[email protected]>2023-06-29 17:09:26 -0700
commitcf80b4b1e8521f2adc7766418dbfe08267249b78 (patch)
treeb1aec918deda9240eb9a7d1ec2d83bccb5bb668e
parent22f8539fc3350cd457e3ceadd3603b402c602fe8 (diff)
parentd9acf794c92ba2fb0525f6c794ef394709035ac3 (diff)
Merge branch 'main' into develop
-rw-r--r--.github/scripts/Build-ChangedSamples.ps12
-rw-r--r--Build-SampleSet.ps123
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"
}