From 5f206b63afb83160aa7c708a7ae44d1bccdcbef3 Mon Sep 17 00:00:00 2001 From: Igor Velikorossov Date: Wed, 27 Nov 2024 11:00:16 +1100 Subject: [PATCH 1/4] Bump code coverage --- .../Microsoft.Extensions.Caching.Hybrid.csproj | 2 +- .../Microsoft.Extensions.Diagnostics.Probes.csproj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Libraries/Microsoft.Extensions.Caching.Hybrid/Microsoft.Extensions.Caching.Hybrid.csproj b/src/Libraries/Microsoft.Extensions.Caching.Hybrid/Microsoft.Extensions.Caching.Hybrid.csproj index 05638bcea77..7b3c2c253eb 100644 --- a/src/Libraries/Microsoft.Extensions.Caching.Hybrid/Microsoft.Extensions.Caching.Hybrid.csproj +++ b/src/Libraries/Microsoft.Extensions.Caching.Hybrid/Microsoft.Extensions.Caching.Hybrid.csproj @@ -27,7 +27,7 @@ dev true EXTEXP0018 - 75 + 84 50 diff --git a/src/Libraries/Microsoft.Extensions.Diagnostics.Probes/Microsoft.Extensions.Diagnostics.Probes.csproj b/src/Libraries/Microsoft.Extensions.Diagnostics.Probes/Microsoft.Extensions.Diagnostics.Probes.csproj index b83ecbbd0fc..4336188ced0 100644 --- a/src/Libraries/Microsoft.Extensions.Diagnostics.Probes/Microsoft.Extensions.Diagnostics.Probes.csproj +++ b/src/Libraries/Microsoft.Extensions.Diagnostics.Probes/Microsoft.Extensions.Diagnostics.Probes.csproj @@ -13,7 +13,7 @@ - 70 + 76 75 From f4f99e9474c930b5c185dea09fbb0ba79d4ed9b7 Mon Sep 17 00:00:00 2001 From: Igor Velikorossov Date: Wed, 27 Nov 2024 12:20:39 +1100 Subject: [PATCH 2/4] Apply suggestions from code review --- .../Microsoft.Extensions.Caching.Hybrid.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Libraries/Microsoft.Extensions.Caching.Hybrid/Microsoft.Extensions.Caching.Hybrid.csproj b/src/Libraries/Microsoft.Extensions.Caching.Hybrid/Microsoft.Extensions.Caching.Hybrid.csproj index 7b3c2c253eb..ede3b88ca36 100644 --- a/src/Libraries/Microsoft.Extensions.Caching.Hybrid/Microsoft.Extensions.Caching.Hybrid.csproj +++ b/src/Libraries/Microsoft.Extensions.Caching.Hybrid/Microsoft.Extensions.Caching.Hybrid.csproj @@ -27,7 +27,7 @@ dev true EXTEXP0018 - 84 + 86 50 From 0ed796fe04548d40379a00a1e76203d5b4157c33 Mon Sep 17 00:00:00 2001 From: Dan Moseley Date: Wed, 11 Dec 2024 18:02:46 -0700 Subject: [PATCH 3/4] bump MEAI cov --- .../Microsoft.Extensions.AI.OpenAI.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Libraries/Microsoft.Extensions.AI.OpenAI/Microsoft.Extensions.AI.OpenAI.csproj b/src/Libraries/Microsoft.Extensions.AI.OpenAI/Microsoft.Extensions.AI.OpenAI.csproj index d3e969337e6..a6d3b013c0d 100644 --- a/src/Libraries/Microsoft.Extensions.AI.OpenAI/Microsoft.Extensions.AI.OpenAI.csproj +++ b/src/Libraries/Microsoft.Extensions.AI.OpenAI/Microsoft.Extensions.AI.OpenAI.csproj @@ -9,7 +9,7 @@ preview true - 72 + 77 0 From 161e6b7c5695e80a8ce679689644666a9bc58b41 Mon Sep 17 00:00:00 2001 From: Igor Velikorossov Date: Fri, 13 Dec 2024 13:32:14 +1100 Subject: [PATCH 4/4] Break builds only if coverage drops for 100% projects --- eng/scripts/ValidateProjectCoverage.ps1 | 52 ++++++++++++++++++++----- 1 file changed, 43 insertions(+), 9 deletions(-) diff --git a/eng/scripts/ValidateProjectCoverage.ps1 b/eng/scripts/ValidateProjectCoverage.ps1 index 39971b8863f..6e554c1ab7e 100644 --- a/eng/scripts/ValidateProjectCoverage.ps1 +++ b/eng/scripts/ValidateProjectCoverage.ps1 @@ -59,6 +59,8 @@ $Errors = New-Object System.Collections.ArrayList $Kudos = New-Object System.Collections.ArrayList $ErrorsMarkdown = @(); $KudosMarkdown = @(); +$FatalErrors = 0; +$Warnings = 0; Write-Verbose "Collecting projects from code coverage report..." $CoberturaReport.coverage.packages.package | ForEach-Object { @@ -66,6 +68,7 @@ $CoberturaReport.coverage.packages.package | ForEach-Object { $LineCoverage = [math]::Round([double]$_.'line-rate' * 100, 2) $BranchCoverage = [math]::Round([double]$_.'branch-rate' * 100, 2) $IsFailed = $false + $IsWarning = $false Write-Verbose "Project $Name with line coverage $LineCoverage and branch coverage $BranchCoverage" @@ -80,7 +83,17 @@ $CoberturaReport.coverage.packages.package | ForEach-Object { # Detect the under-coverage if ($MinCodeCoverage -gt $LineCoverage) { - $IsFailed = $true + if ($MinCodeCoverage -eq 100) { + $ansiEscapeCode = "$esc[1m$esc[0;31m"; + $IsFailed = $true + $FatalErrors++; + } + else { + $ansiEscapeCode = "$esc[1m$esc[0;33m"; + $IsWarning = $true; + $Warnings++; + } + $ErrorsMarkdown += "| $Name | Line | **$MinCodeCoverage** | $LineCoverage :small_red_triangle_down: |" [void]$Errors.Add( ( @@ -88,14 +101,24 @@ $CoberturaReport.coverage.packages.package | ForEach-Object { "Project" = $Name.Replace('Microsoft.Extensions.', 'M.E.').Replace('Microsoft.AspNetCore.', 'M.AC.'); "Coverage Type" = "Line"; "Expected" = $MinCodeCoverage; - "Actual" = "$esc[1m$esc[0;31m$($LineCoverage)$esc[0m" + "Actual" = "$($ansiEscapeCode)$($LineCoverage)$esc[0m" } ) ) } if ($MinCodeCoverage -gt $BranchCoverage) { - $IsFailed = $true + if ($MinCodeCoverage -eq 100) { + $ansiEscapeCode = "$esc[1m$esc[0;31m"; + $IsFailed = $true + $FatalErrors++; + } + else { + $ansiEscapeCode = "$esc[1m$esc[0;33m"; + $IsWarning = $true; + $Warnings++; + } + $ErrorsMarkdown += "| $Name | Branch | **$MinCodeCoverage** | $BranchCoverage :small_red_triangle_down: |" [void]$Errors.Add( ( @@ -103,7 +126,7 @@ $CoberturaReport.coverage.packages.package | ForEach-Object { "Project" = $Name.Replace('Microsoft.Extensions.', 'M.E.').Replace('Microsoft.AspNetCore.', 'M.AC.'); "Coverage Type" = "Branch"; "Expected" = $MinCodeCoverage; - "Actual" = "$esc[1m$esc[0;31m$($BranchCoverage)$esc[0m" + "Actual" = "$($ansiEscapeCode)$($BranchCoverage)$esc[0m" } ) ) @@ -125,8 +148,9 @@ $CoberturaReport.coverage.packages.package | ForEach-Object { ) } - if ($IsFailed) { Write-Host "$Name" -NoNewline; Write-Host " ...failed validation" -ForegroundColor Red } - else { Write-Host "$Name" -NoNewline; Write-Host " ...ok" -ForegroundColor Green } + if ($IsWarning) { Write-Host "$Name" -NoNewline; Write-Host " ...missed the mark" -ForegroundColor Yellow } + elseif ($IsFailed) { Write-Host "$Name" -NoNewline; Write-Host " ...failed validation" -ForegroundColor Red } + else { Write-Host "$Name" -NoNewline; Write-Host " ...ok" -ForegroundColor Green } } else { Write-Host "$Name ...skipping" @@ -175,10 +199,20 @@ if (![string]::IsNullOrWhiteSpace($markdown)) { Write-Host $gitHubCommentVar } -if ($Errors.Count -eq 0) +if ($FatalErrors -gt 0) +{ + Write-Host "`r`nBreaking issues detected." + exit -1; +} + +if ($Warnings -gt 0) +{ + Write-Host "`r`nNon-breaking issues detected." +} + +if ($FatalErrors -eq 0) { - Write-Host "`r`nAll good, no issues found." + Write-Host "`r`nAll good, no issues detected." exit 0; } -exit -1;