From 9411845667c0963ee4f365bf4f5f9a30bb68e916 Mon Sep 17 00:00:00 2001 From: Robert Good Date: Mon, 22 Sep 2025 18:52:18 -0700 Subject: [PATCH 1/2] added code coverage --- .../workflows/gtc-rg-semkernel-api-ci-cd.yml | 53 ++++++++++++++++--- src/Get-CodeCoverage.ps1 | 4 +- 2 files changed, 48 insertions(+), 9 deletions(-) diff --git a/.github/workflows/gtc-rg-semkernel-api-ci-cd.yml b/.github/workflows/gtc-rg-semkernel-api-ci-cd.yml index f81d030..2df473d 100644 --- a/.github/workflows/gtc-rg-semkernel-api-ci-cd.yml +++ b/.github/workflows/gtc-rg-semkernel-api-ci-cd.yml @@ -106,10 +106,29 @@ jobs: - name: Upload test results uses: actions/upload-artifact@v4 with: - name: dotnet-results-${{ matrix.DOTNET_VERSION }} + name: test-results-dotnet-${{ matrix.DOTNET_VERSION }} path: TestResults-${{ matrix.DOTNET_VERSION }} if: ${{ always() }} + - name: Run Coverage Script + run: | + pwsh ${{ env.SRC_PATH }}/Get-CodeCoverage.ps1 ` + -TestProjectFilter '${{ env.TEST_PROJECT }}' ` + -ProdPackagesOnly ` + -ProductionAssemblies Cannery.Insights.Core.Application Cannery.Insights.Presentation.WebApi Cannery.Insights.Presentation.Blazor + shell: pwsh + + - name: Upload Coverage Report + uses: actions/upload-artifact@v4 + with: + name: coverage-report-${{ matrix.DOTNET_VERSION }} + path: ${{ env.SRC_PATH }}/TestResults/Reports/**/index.html + if: ${{ always() }} + + - name: Print Coverage Summary + run: cat ${{ env.SRC_PATH }}/TestResults/Reports/**/index.html + shell: bash + - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v3 @@ -187,24 +206,44 @@ jobs: - name: Test run: | - dotnet test ${{ env.SRC_PATH }}/${{ env.TEST_PATH }}/${{ env.TEST_PROJECT }} --logger "trx;LogFileName=TestResults-${{ matrix.DOTNET_VERSION }}/test_results.trx" --verbosity normal + mkdir -p TestResults-${{ matrix.DOTNET_VERSION }} + dotnet test ${{ env.SRC_PATH }}/${{ env.TEST_PATH }}/${{ env.TEST_PROJECT }} --logger "trx;LogFileName=test_results.trx" --results-directory TestResults-${{ matrix.DOTNET_VERSION }} --verbosity normal shell: pwsh - - name: Publish + - name: Upload test results + uses: actions/upload-artifact@v4 + with: + name: test-results-dotnet-${{ matrix.DOTNET_VERSION }} + path: TestResults-${{ matrix.DOTNET_VERSION }} + if: ${{ always() }} + + - name: Run Coverage Script run: | - dotnet publish ${{ env.SRC_PATH }}/${{ env.API_PATH }}/${{ env.API_PROJECT }} --configuration Release -o ${{ env.AZURE_WEBAPP_NAME }} + pwsh ${{ env.SRC_PATH }}/Get-CodeCoverage.ps1 ` + -TestProjectFilter '${{ env.TEST_PROJECT }}' ` + -ProdPackagesOnly ` + -ProductionAssemblies Cannery.Insights.Core.Application Cannery.Insights.Presentation.WebApi Cannery.Insights.Presentation.Blazor shell: pwsh - - name: dotnet test results + - name: Upload Coverage Report uses: actions/upload-artifact@v4 with: - name: dotnet-results-${{ matrix.DOTNET_VERSION }} - path: TestResults-${{ matrix.DOTNET_VERSION }} + name: coverage-report-${{ matrix.DOTNET_VERSION }} + path: ${{ env.SRC_PATH }}/TestResults/Reports/**/index.html if: ${{ always() }} + - name: Print Coverage Summary + run: cat ${{ env.SRC_PATH }}/TestResults/Reports/**/index.html + shell: bash + - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v3 + - name: Publish + run: | + dotnet publish ${{ env.SRC_PATH }}/${{ env.API_PATH }}/${{ env.API_PROJECT }} --configuration Release -o ${{ env.AZURE_WEBAPP_NAME }} + shell: pwsh + - name: az login uses: azure/login@v1 with: diff --git a/src/Get-CodeCoverage.ps1 b/src/Get-CodeCoverage.ps1 index 5f1e870..815a986 100644 --- a/src/Get-CodeCoverage.ps1 +++ b/src/Get-CodeCoverage.ps1 @@ -19,7 +19,7 @@ Param( ) ) #################################################################################### -Set-ExecutionPolicy Unrestricted -Scope Process -Force +if ($IsWindows) {Set-ExecutionPolicy Unrestricted -Scope Process -Force} $VerbosePreference = 'SilentlyContinue' # 'Continue' #################################################################################### @@ -50,7 +50,7 @@ foreach ($project in $testProjects) { # Generate HTML report if ($ProdPackagesOnly) { - + $assemblyFilters = ($ProductionAssemblies | ForEach-Object { "+$_" }) -join ";" $assemblyFilters = ($ProductionAssemblies | ForEach-Object { "+$_" }) -join ";" & reportgenerator -reports:"$coverageOutputPath/**/coverage.cobertura.xml" -targetdir:$reportOutputPath -reporttypes:Html -assemblyfilters:$assemblyFilters } From 04257650ccc9a6429b2d2c624b6c64b80653c10a Mon Sep 17 00:00:00 2001 From: Robert Good Date: Mon, 22 Sep 2025 19:02:15 -0700 Subject: [PATCH 2/2] removed print --- .github/workflows/gtc-rg-semkernel-api-ci-cd.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/workflows/gtc-rg-semkernel-api-ci-cd.yml b/.github/workflows/gtc-rg-semkernel-api-ci-cd.yml index 2df473d..707131d 100644 --- a/.github/workflows/gtc-rg-semkernel-api-ci-cd.yml +++ b/.github/workflows/gtc-rg-semkernel-api-ci-cd.yml @@ -125,10 +125,6 @@ jobs: path: ${{ env.SRC_PATH }}/TestResults/Reports/**/index.html if: ${{ always() }} - - name: Print Coverage Summary - run: cat ${{ env.SRC_PATH }}/TestResults/Reports/**/index.html - shell: bash - - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v3 @@ -232,10 +228,6 @@ jobs: path: ${{ env.SRC_PATH }}/TestResults/Reports/**/index.html if: ${{ always() }} - - name: Print Coverage Summary - run: cat ${{ env.SRC_PATH }}/TestResults/Reports/**/index.html - shell: bash - - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v3