1- name : Build 
2- 
3- on :
4-   pull_request :
5- 
6- jobs :
7-   build-and-test :
8-     runs-on : windows-latest 
9- 
10-     steps :
11-     - uses : actions/checkout@v5 
12- 
13-     - name : Setup .NET 
14-       uses : actions/setup-dotnet@v4 
15-       with :
16-         dotnet-version : 8.0.x 
17- 
18-     - name : Restore dependencies 
19-       run : dotnet restore 
20- 
21-     - name : Build with Analysis 
22-       run : dotnet build --no-restore --configuration Release /p:EnforceCodeStyleInBuild=true 
23- 
24-     - name : Test with Coverage 
25-       run : dotnet test --no-build --verbosity normal --configuration Release --collect:"XPlat Code Coverage" --results-directory ./TestResults/ /p:CoverletOutputFormat=cobertura 
26- 
27-     - name : Install ReportGenerator 
28-       run : dotnet tool install -g dotnet-reportgenerator-globaltool 
29- 
30-     - name : Generate Coverage Report 
31-       run : reportgenerator -reports:"./TestResults/**/coverage.cobertura.xml" -targetdir:"./CoverageReport" -reporttypes:"HtmlInline_AzurePipelines;TextSummary;MarkdownSummaryGithub" -verbosity:Warning 
32- 
33-     - name : Upload Coverage Report 
34-       uses : actions/upload-artifact@v4 
35-       with :
36-         name : coverage-report 
37-         path : ./CoverageReport/ 
38-         if-no-files-found : warn 
39- 
40-     - name : Add Coverage to Step Summary 
41-       if : github.event_name == 'pull_request' 
42-       run : | 
43-         if (Test-Path "./CoverageReport/SummaryGithub.md") { 
44-           $summary = Get-Content "./CoverageReport/SummaryGithub.md" -Raw 
45-           echo "## Code Coverage Report" >> $env:GITHUB_STEP_SUMMARY 
46-           echo "$summary" >> $env:GITHUB_STEP_SUMMARY 
47-         } 
48-        shell : pwsh 
49- 
50-     - name : Comment Coverage on PR 
51-       if : github.event_name == 'pull_request' 
52-       run : | 
53-         if (Test-Path "./CoverageReport/SummaryGithub.md") { 
54-           $summary = Get-Content "./CoverageReport/SummaryGithub.md" -Raw 
55-           $commentBody = @" 
56-         ## 📊 Code Coverage Report 
57-          
58-         $summary 
59-          
60-         --- 
61-         *Coverage report generated by [ReportGenerator](https://github.com/danielpalme/ReportGenerator) • [View full report in build artifacts](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }})* 
62-         "@ 
63-            
64-           # Clean up any existing coverage comments first 
65-           Write-Host "Cleaning up existing coverage comments..." 
66-           $existingComments = gh api repos/${{ github.repository }}/issues/${{ github.event.number }}/comments --jq '.[] | select(.user.login == "github-actions[bot]" and (.body | contains("📊 Code Coverage Report"))) | .id' 
67-            
68-           if ($existingComments) { 
69-             $commentIds = $existingComments -split "`n" | Where-Object { $_.Trim() -ne "" } 
70-             foreach ($commentId in $commentIds) { 
71-               Write-Host "Deleting existing coverage comment: $commentId" 
72-               gh api repos/${{ github.repository }}/issues/comments/$commentId --method DELETE 
73-             } 
74-             Write-Host "Cleaned up $($commentIds.Count) existing coverage comment(s)" 
75-           } 
76-            
77-           # Create new comment 
78-           Write-Host "Creating new coverage comment" 
79-           $commentBody | gh pr comment ${{ github.event.number }} --body-file - 
80-         } 
81-        shell : pwsh 
82-       env :
83-         GH_TOKEN : ${{ github.token }} 
84- 
85-     - name : Build MSI Installer 
86-       run : | 
87-         cd Daqifi.Desktop.Setup 
88-         dotnet build -c Release 
89- 
90-      - name : Upload MSI Artifact 
91-       uses : actions/upload-artifact@v4 
92-       with :
93-         name : DAQifiDesktop-Installer 
94-         path : Daqifi.Desktop.Setup/DAQifiDesktopSetup/bin/x86/Release/DAQifiDesktop_Setup.msi 
1+ name : Build 
2+ 
3+ on :
4+   pull_request :
5+ 
6+ jobs :
7+   build-and-test :
8+     runs-on : windows-latest 
9+ 
10+     steps :
11+     - uses : actions/checkout@v5 
12+ 
13+     - name : Setup .NET 
14+       uses : actions/setup-dotnet@v4 
15+       with :
16+         dotnet-version : 8.0.x 
17+ 
18+     - name : Restore dependencies 
19+       run : dotnet restore 
20+ 
21+     - name : Build with Analysis 
22+       run : dotnet build --no-restore --configuration Release /p:EnforceCodeStyleInBuild=true 
23+ 
24+     - name : Test with Coverage 
25+       run : dotnet test --no-build --verbosity normal --configuration Release --collect:"XPlat Code Coverage" --results-directory ./TestResults/ /p:CoverletOutputFormat=cobertura 
26+ 
27+     - name : Install ReportGenerator 
28+       run : dotnet tool install -g dotnet-reportgenerator-globaltool 
29+ 
30+     - name : Generate Coverage Report 
31+       run : reportgenerator -reports:"./TestResults/**/coverage.cobertura.xml" -targetdir:"./CoverageReport" -reporttypes:"HtmlInline_AzurePipelines;TextSummary;MarkdownSummaryGithub" -verbosity:Warning 
32+ 
33+     - name : Upload Coverage Report 
34+       uses : actions/upload-artifact@v4 
35+       with :
36+         name : coverage-report 
37+         path : ./CoverageReport/ 
38+         if-no-files-found : warn 
39+ 
40+     - name : Add Coverage to Step Summary 
41+       if : github.event_name == 'pull_request' 
42+       run : | 
43+         if (Test-Path "./CoverageReport/SummaryGithub.md") { 
44+           $summary = Get-Content "./CoverageReport/SummaryGithub.md" -Raw 
45+           echo "## Code Coverage Report" >> $env:GITHUB_STEP_SUMMARY 
46+           echo "$summary" >> $env:GITHUB_STEP_SUMMARY 
47+         } 
48+        shell : pwsh 
49+ 
50+     - name : Comment Coverage on PR 
51+       if : github.event_name == 'pull_request' 
52+       run : | 
53+         if (Test-Path "./CoverageReport/SummaryGithub.md") { 
54+           $summary = Get-Content "./CoverageReport/SummaryGithub.md" -Raw 
55+           $commentBody = @" 
56+         ## 📊 Code Coverage Report 
57+          
58+         $summary 
59+          
60+         --- 
61+         *Coverage report generated by [ReportGenerator](https://github.com/danielpalme/ReportGenerator) • [View full report in build artifacts](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }})* 
62+         "@ 
63+            
64+           # Clean up any existing coverage comments first 
65+           Write-Host "Cleaning up existing coverage comments..." 
66+           $existingComments = gh api repos/${{ github.repository }}/issues/${{ github.event.number }}/comments --jq '.[] | select(.user.login == "github-actions[bot]" and (.body | contains("📊 Code Coverage Report"))) | .id' 
67+            
68+           if ($existingComments) { 
69+             $commentIds = $existingComments -split "`n" | Where-Object { $_.Trim() -ne "" } 
70+             foreach ($commentId in $commentIds) { 
71+               Write-Host "Deleting existing coverage comment: $commentId" 
72+               gh api repos/${{ github.repository }}/issues/comments/$commentId --method DELETE 
73+             } 
74+             Write-Host "Cleaned up $($commentIds.Count) existing coverage comment(s)" 
75+           } 
76+            
77+           # Create new comment 
78+           Write-Host "Creating new coverage comment" 
79+           $commentBody | gh pr comment ${{ github.event.number }} --body-file - 
80+         } 
81+        shell : pwsh 
82+       env :
83+         GH_TOKEN : ${{ github.token }} 
84+ 
85+     - name : Build MSI Installer 
86+       run : | 
87+         cd Daqifi.Desktop.Setup 
88+         dotnet build -c Release 
89+ 
90+      - name : Upload MSI Artifact 
91+       uses : actions/upload-artifact@v4 
92+       with :
93+         name : DAQifiDesktop-Installer 
94+         path : Daqifi.Desktop.Setup/DAQifiDesktopSetup/bin/x86/Release/DAQifiDesktop_Setup.msi 
9595        if-no-files-found : error 
0 commit comments