summaryrefslogtreecommitdiff
path: root/.github
diff options
context:
space:
mode:
authorAdonais Romero González <[email protected]>2023-06-15 11:51:39 -0700
committerGitHub <[email protected]>2023-06-15 11:51:39 -0700
commitf5fe952f1fc90cfcff535407d56f49953d22e8da (patch)
tree9149971aa79642585b6798c60a9e419c63868231 /.github
parentc5cc3eca707a39d71a3f34281af107795b2af945 (diff)
Generate and provide overview reports (#993)
Diffstat (limited to '.github')
-rw-r--r--.github/scripts/Join-CsvReports.ps135
-rw-r--r--.github/workflows/ci-pr.yml29
-rw-r--r--.github/workflows/ci.yml29
3 files changed, 91 insertions, 2 deletions
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")
diff --git a/.github/workflows/ci-pr.yml b/.github/workflows/ci-pr.yml
index ad170154..695d4186 100644
--- a/.github/workflows/ci-pr.yml
+++ b/.github/workflows/ci-pr.yml
@@ -9,6 +9,7 @@ on:
- 'LICENSE'
jobs:
build:
+ name: Build driver samples
strategy:
fail-fast: false
matrix:
@@ -37,10 +38,36 @@ jobs:
env:
WDS_Configuration: ${{ matrix.configuration }}
WDS_Platform: ${{ matrix.platform }}
+ WDS_ReportFileName: _overview.${{ matrix.configuration }}.${{ matrix.platform }}
- - name: Archive logs
+ - name: Archive build logs and overview build reports
uses: actions/upload-artifact@v3
if: always()
with:
name: logs
path: _logs
+
+ report:
+ name: Generate global report
+ runs-on: windows-2022
+ needs: build
+ if: always()
+ steps:
+ - name: Check out repository code
+ uses: actions/checkout@v3
+
+ - name: Retrieve overview reports
+ uses: actions/download-artifact@v3
+ with:
+ name: logs
+ path: _logs
+
+ - name: Join and generate global reports
+ run: |
+ .\.github\scripts\Join-CsvReports.ps1
+
+ - name: Archive global overview build reports
+ uses: actions/upload-artifact@v3
+ with:
+ name: logs
+ path: _logs/_overview.all.*
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 70610fc7..c4fd1a2a 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -9,6 +9,7 @@ on:
- 'LICENSE'
jobs:
build:
+ name: Build driver samples
strategy:
fail-fast: false
matrix:
@@ -30,10 +31,36 @@ jobs:
env:
WDS_Configuration: ${{ matrix.configuration }}
WDS_Platform: ${{ matrix.platform }}
+ WDS_ReportFileName: _overview.${{ matrix.configuration }}.${{ matrix.platform }}
- - name: Archive logs
+ - name: Archive build logs and overview build reports
uses: actions/upload-artifact@v3
if: always()
with:
name: logs
path: _logs
+
+ report:
+ name: Generate global report
+ runs-on: windows-2022
+ needs: build
+ if: always()
+ steps:
+ - name: Check out repository code
+ uses: actions/checkout@v3
+
+ - name: Retrieve overview reports
+ uses: actions/download-artifact@v3
+ with:
+ name: logs
+ path: _logs
+
+ - name: Join and generate global reports
+ run: |
+ .\.github\scripts\Join-CsvReports.ps1
+
+ - name: Archive global overview build reports
+ uses: actions/upload-artifact@v3
+ with:
+ name: logs
+ path: _logs/_overview.all.*