Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 35 additions & 3 deletions .github/workflows/BuildAndTestOnPullRequests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,44 @@ jobs:
- name: Install dependencies
run: dotnet restore

- name: Build Stateless solution
- name: Build Stateless solution (signed for distribution)
run: dotnet build Stateless.sln --configuration Release --no-restore

- name: Test Stateless
run: dotnet test --no-restore --no-build --configuration Release
- name: Build for coverage analysis (public signed, single target)
run: dotnet build src\Stateless\Stateless.csproj --configuration Release --no-restore -p:PublicSign=true -p:TargetFramework=net8.0 -o src\Stateless\bin\Coverage

- name: Build test project for coverage (public signed)
run: dotnet build test\Stateless.Tests\Stateless.Tests.csproj --configuration Release --no-restore -p:PublicSign=true -p:TargetFramework=net8.0 -o test\Stateless.Tests\bin\Coverage

- name: Test with coverage (xUnit, Cobertura)
run: dotnet test test\Stateless.Tests\bin\Coverage\net8.0\Stateless.Tests.dll --configuration Release --collect:"XPlat Code Coverage" -- DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.Format=Cobertura

- name: Install ReportGenerator
run: dotnet tool install -g dotnet-reportgenerator-globaltool

- name: Generate coverage report
run: |
reportgenerator -reports:"**/coverage.cobertura.xml" -targetdir:"coveragereport" -reporttypes:"MarkdownSummaryGithub;Html;Badges"

- name: Append coverage to job summary
if: always()
run: |
$SUMMARY_FILE = "${{ github.workspace }}/coveragereport/SummaryGithub.md"
if (Test-Path $SUMMARY_FILE) {
Get-Content $SUMMARY_FILE | Add-Content $env:GITHUB_STEP_SUMMARY
} else {
"Coverage summary not found at $SUMMARY_FILE" | Add-Content $env:GITHUB_STEP_SUMMARY
}

- name: Upload coverage artifact
if: always()
uses: actions/upload-artifact@v4
with:
name: coverage-report
path: coveragereport
if-no-files-found: warn
retention-days: 7

- name: Pack alpha version
if: github.ref == 'refs/heads/dev' && github.event_name == 'push' && github.repository == 'dotnet-state-machine/stateless'
run: dotnet pack src\Stateless\Stateless.csproj --version-suffix dev-${{github.run_id}} --configuration Release
Expand Down
1 change: 1 addition & 0 deletions test/Stateless.Tests/Stateless.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
<PackageReference Include="xunit" Version="2.4.0" />
<PackageReference Include="xunit.analyzers" Version="0.10.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.0" />
<PackageReference Include="coverlet.collector" Version="6.0.0" />
</ItemGroup>

<ItemGroup>
Expand Down
Loading