From f5fe952f1fc90cfcff535407d56f49953d22e8da Mon Sep 17 00:00:00 2001 From: Adonais Romero González Date: Thu, 15 Jun 2023 11:51:39 -0700 Subject: Generate and provide overview reports (#993) --- .github/scripts/Join-CsvReports.ps1 | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 .github/scripts/Join-CsvReports.ps1 (limited to '.github/scripts') diff --git a/.github/scripts/Join-CsvReports.ps1 b/.github/scripts/Join-CsvReports.ps1 new file mode 100644 index 00000000..32cd9d63 --- /dev/null +++ b/.github/scripts/Join-CsvReports.ps1 @@ -0,0 +1,35 @@ +$logsPath = Join-Path (Get-Location).Path "_logs" +$reportFileName = '_overview.all' +$idProperty = 'Sample' +$results = $null + +Get-ChildItem -Path $logsPath -Filter '*.csv' | ForEach-Object { + $csv = Import-Csv -Path $_ + if ($results -eq $null) { + $results = $csv + } + else { + $results = $csv | ForEach-Object { + $id = $_.$idProperty + $match = $results | Where-Object { $_.$idProperty -eq $id } + if ($match) { + $properties = $_ | Get-Member -MemberType NoteProperty | Where-Object { $_.Name -ne $idProperty } | Select-Object -ExpandProperty Name + $newObject = New-Object PSObject + # Add ID property separately to ensure it appears first + $newObject | Add-Member -MemberType NoteProperty -Name $idProperty -Value $_.$idProperty + foreach ($property in $properties) { + $newObject | Add-Member -MemberType NoteProperty -Name $property -Value $_.$property + } + foreach ($property in ($match | Get-Member -MemberType NoteProperty | Where-Object { $_.Name -ne $idProperty } | Select-Object -ExpandProperty Name)) { + if ($properties -notcontains $property) { + $newObject | Add-Member -MemberType NoteProperty -Name $property -Value $match.$property + } + } + $newObject + } + } + } +} + +$results | ConvertTo-Csv | Out-File (Join-Path $logsPath "$reportFileName.csv") +$results | ConvertTo-Html -Title "Overview" | Out-File (Join-Path $logsPath "$reportFileName.htm") -- cgit v1.3.1