Use nicer link for v3 site #686
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: | |
name: Build and Test Code Lib | |
runs-on: windows-latest | |
permissions: | |
checks: write | |
contents: read | |
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 -warnaserror | |
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() | |
continue-on-error: true | |
uses: dorny/test-reporter@v1 | |
with: | |
name: Core Tests | |
path: '**/*.trx' | |
reporter: dotnet-trx | |
list-tests: failed | |
fail-on-error: false | |
- name: Extract Failed Tests | |
if: success() || failure() | |
shell: pwsh | |
run: | | |
$trxFilePath = Get-ChildItem -Path .\TestResults -Filter *.trx | Sort-Object LastWriteTime | Select-Object -Last 1 | |
$testResults = Get-Content -Path $trxFilePath | |
# Initialize an empty array to store failed test names | |
$failedTests = "# Unit Tests" | |
$failedTestsCount = 0 | |
# Search for failed test names in the TRX file | |
foreach ($line in $testResults) { | |
if ($line.Contains(" outcome=`"Failed`" ")) | |
{ | |
$matches = [regex]::Match($line, '(?<=testName=")([^"]+)') | |
if ($matches.Success) { | |
$failedTestsCount++ | |
$testName = $matches.Groups[1].Value | |
$failedTests += "`n- ❌[FAILED] $testName" | |
} | |
} | |
} | |
if ($failedTestsCount -eq 0) { | |
$failedTests = "✅ All tests passed successfully" | |
} | |
$failedTests += "`n`n Details on [your Workflow / Core Tests](/microsoft/fluentui-blazor/actions/workflows/build-core-lib.yml) page." | |
Write-Host "$failedTests" | |
Set-Content -Path ./TestResults/ExtractedTests.md -Value $failedTests | |
working-directory: ${{ github.workspace }} | |
- name: Publish unit tests summary | |
if: success() || failure() | |
continue-on-error: true | |
uses: marocchino/sticky-pull-request-comment@v2 | |
with: | |
header: Test Results | |
path: ./TestResults/ExtractedTests.md | |
# Test Coverage | |
- name: Report Generator | |
uses: danielpalme/ReportGenerator-GitHub-Action@5.2.4 | |
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 | |
continue-on-error: true | |
with: | |
path: CoverageReports/SummaryGithub.md |