summaryrefslogtreecommitdiff
path: root/.github/scripts/Build-ChangedSamples.ps1
diff options
context:
space:
mode:
authorAdonais Romero González <[email protected]>2023-01-30 15:00:49 -0800
committerGitHub <[email protected]>2023-01-30 15:00:49 -0800
commit07779ee84973f2f63a1f2ced6377463b1c01baaf (patch)
treed28fc10efc8f5dee97ec5df162bb533f6e801585 /.github/scripts/Build-ChangedSamples.ps1
parent2c0c8763300988d92ddd139cadf012f5ab1b12e1 (diff)
Build scripts update (#844)
--------- Co-authored-by: Jakob Lichtenberg (170957) <[email protected]>
Diffstat (limited to '.github/scripts/Build-ChangedSamples.ps1')
-rw-r--r--.github/scripts/Build-ChangedSamples.ps140
1 files changed, 40 insertions, 0 deletions
diff --git a/.github/scripts/Build-ChangedSamples.ps1 b/.github/scripts/Build-ChangedSamples.ps1
new file mode 100644
index 00000000..82096cd6
--- /dev/null
+++ b/.github/scripts/Build-ChangedSamples.ps1
@@ -0,0 +1,40 @@
+[CmdletBinding()]
+param (
+ [array]$ChangedFiles
+)
+
+$Verbose = $false
+if ($PSBoundParameters.ContainsKey('Verbose')) {
+ $Verbose = $PsBoundParameters.Get_Item('Verbose')
+}
+
+$root = (Get-Location).Path
+
+# To include in CI gate
+$sampleSet = @{}
+foreach ($file in $ChangedFiles)
+{
+ if (-not (Test-Path $file)) {
+ Write-Verbose "`u{2754} Changed file $file cannot be found"
+ continue
+ }
+ $dir = (Get-Item $file).DirectoryName
+ while ((-not ($slnItems = (Get-ChildItem $dir '*.sln'))) -and ($dir -ne $root))
+ {
+ $dir = (Get-Item $dir).Parent.FullName
+ }
+ if ($dir -eq $root)
+ {
+ Write-Verbose "`u{2754} Changed file $file does not match a sample."
+ continue
+ }
+ $sampleName = $dir.Replace($root, '').Trim('\').Replace('\', '.').ToLower()
+ Write-Verbose "`u{1F50E} Found sample [$sampleName] at $dir from changed file $file"
+ if (-not ($sampleSet.ContainsKey($sampleName)))
+ {
+ $sampleSet[$sampleName] = $dir
+ }
+}
+
+.\Build-SampleSet -SampleSet $sampleSet -Verbose:$Verbose -LogFilesDirectory (Join-Path $root "_logs")
+