[Pipeline] Add Code Coverage Report #106
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This workflow will build a .NET project | |
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-net | |
name: Build and Test Core Lib | |
on: | |
# Allow manually running the workflow | |
workflow_dispatch: | |
push: | |
branches: | |
- dev | |
paths-ignore: | |
- '**/*.gitignore' | |
- '**/*.gitattributes' | |
pull_request: | |
types: [opened, synchronize, reopened, closed] | |
branches: | |
- dev | |
paths-ignore: | |
- '**/*.gitignore' | |
- '**/*.gitattributes' | |
env: | |
PROJECTS: "./src/Core/Microsoft.FluentUI.AspNetCore.Components.csproj" | |
TESTS: "./tests/Core/Microsoft.FluentUI.AspNetCore.Components.Tests.csproj" | |
jobs: | |
Build: | |
runs-on: windows-latest | |
permissions: | |
checks: write | |
pull-requests: write | |
steps: | |
- name: Checkout source | |
uses: actions/checkout@v4 | |
- name: Setup .NET 8.0 | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: 8.0.x | |
# Build | |
- name: Restore | |
run: dotnet restore | |
- name: Build | |
run: dotnet build ${{ env.PROJECTS }} --configuration Release | |
working-directory: ${{ github.workspace }} | |
# Unit Tests | |
- name: Tests | |
run: dotnet test ${{ env.TESTS }} --logger:trx --results-directory ./TestResults --verbosity normal --configuration Release /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura /p:DebugType=Full | |
working-directory: ${{ github.workspace }} | |
- name: Publish Unit Tests | |
if: success() || failure() | |
uses: dorny/test-reporter@v1 | |
with: | |
name: Core Tests | |
path: '**/*.trx' | |
reporter: dotnet-trx | |
fail-on-error: false | |
# - name: Extract Failed Tests | |
# if: always() | |
# shell: pwsh | |
# run: | | |
# $xxx = ((Select-Xml -Path ./TestResults/*.trx -XPath "//ns:UnitTestResult[@outcome='Failed']/@testName" -Namespace @{"ns"="http://microsoft.com/schemas/VisualStudio/TeamTest/2010"}).Node.Value) -join " - ❌ " | |
# Write-Host $xxx | |
# Write-Host "---------------------" | |
# # Get the latest TRX file in the TestResults folder | |
# $latestTrxFile = Get-ChildItem -Path ./TestResults -Filter *.trx | Sort-Object LastWriteTime | Select-Object -Last 1 | |
# $trxContent = Get-Content -Path $latestTrxFile.FullName | |
# # Load the content of the latest TRX file | |
# $trxContent = Get-Content -Path $latestTrxFile.FullName | |
# # Extract failed test names | |
# $failedTests = $trxContent | Select-String -Pattern 'outcome="Failed"' | ForEach-Object { | |
# $_.Line -match 'testName="([^"]+)"' | |
# $matches[1] | |
# } | |
# # Check if any failed tests were found | |
# if ($failedTests.Count -eq 0) { | |
# $TestResults = "All tests have been successfully completed." | |
# } else { | |
# $TestResults = "# Failed tests: `n " + ($failedTests | ForEach-Object { "- $_" }) -join "`n" | |
# } | |
# Write-Host "$TestResults" | |
# echo "test_results=$TestResults" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append | |
# working-directory: ${{ github.workspace }} | |
# - name: Publish unit tests summary | |
# if: always() | |
# uses: marocchino/sticky-pull-request-comment@v2 | |
# with: | |
# header: Test Results | |
# message: | | |
# ${{ env.test_results }} | |
# Test Coverage | |
- name: Report Generator | |
uses: danielpalme/[email protected] | |
with: | |
reports: '**/coverage.cobertura.xml' | |
targetdir: 'CoverageReports' | |
title: 'Unit Tests Code Coverage' | |
classfilters: '-Microsoft.FluentUI.AspNetCore.Components.DesignTokens.*' | |
reporttypes: 'HtmlInline;MarkdownSummaryGithub' | |
- name: Upload coverage report | |
uses: actions/upload-artifact@v2 | |
with: | |
name: CoverageReports | |
path: CoverageReports | |
- name: Publish coverage summary | |
uses: marocchino/sticky-pull-request-comment@v2 | |
with: | |
path: CoverageReports/SummaryGithub.md |