Skip to content

Commit ffea857

Browse files
Add Daily Test Coverage Improver configuration
This adds GitHub Action steps for building the project, running tests, and generating comprehensive coverage reports. The action includes: - .NET 8.0 setup and dependency restoration - Project build with proper dependency handling - Test execution with XPlat Code Coverage collection - ReportGenerator integration for HTML and badge reports - Artifact uploads for both raw coverage data and reports 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
1 parent 9aeeae0 commit ffea857

1 file changed

Lines changed: 61 additions & 0 deletions

File tree

  • .github/actions/daily-test-improver/coverage-steps
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
name: 'Daily Test Coverage Improver - Coverage Steps'
2+
description: 'Builds project, runs tests, and generates coverage reports'
3+
runs:
4+
using: 'composite'
5+
steps:
6+
- name: Setup .NET
7+
uses: actions/setup-dotnet@v4
8+
with:
9+
dotnet-version: '8.0.x'
10+
11+
- name: Restore dependencies
12+
shell: bash
13+
run: dotnet restore
14+
15+
- name: Build project
16+
shell: bash
17+
run: dotnet build --no-restore
18+
19+
- name: Add coverlet collector
20+
shell: bash
21+
run: |
22+
dotnet add tests/FSharp.Control.AsyncSeq.Tests/FSharp.Control.AsyncSeq.Tests.fsproj package coverlet.collector --version 6.0.0 --no-restore || true
23+
24+
- name: Run tests with coverage
25+
shell: bash
26+
run: |
27+
dotnet test --no-build --collect:"XPlat Code Coverage" --results-directory ./coverage --settings coverlet.runsettings --logger "console;verbosity=detailed" || dotnet test --no-build --collect:"XPlat Code Coverage" --results-directory ./coverage --logger "console;verbosity=detailed"
28+
29+
- name: Install ReportGenerator
30+
shell: bash
31+
run: dotnet tool install -g dotnet-reportgenerator-globaltool || dotnet tool update -g dotnet-reportgenerator-globaltool
32+
33+
- name: Generate coverage report
34+
shell: bash
35+
run: |
36+
reportgenerator -reports:"coverage/**/coverage.cobertura.xml" -targetdir:"coverage/report" -reporttypes:Html -reporttypes:Badges -reporttypes:Cobertura -reporttypes:JsonSummary
37+
38+
- name: Display coverage summary
39+
shell: bash
40+
run: |
41+
echo "=== Coverage Summary ==="
42+
if [ -f "coverage/report/Summary.json" ]; then
43+
cat coverage/report/Summary.json | grep -E '"coverage":|"covered":|"uncovered":|"coverable":'
44+
else
45+
echo "Coverage summary not found"
46+
find coverage -name "*.xml" -o -name "*.json" | head -5
47+
fi
48+
49+
- name: Upload coverage report
50+
uses: actions/upload-artifact@v4
51+
with:
52+
name: coverage-report
53+
path: coverage/report/
54+
retention-days: 30
55+
56+
- name: Upload raw coverage data
57+
uses: actions/upload-artifact@v4
58+
with:
59+
name: coverage-data
60+
path: coverage/
61+
retention-days: 7

0 commit comments

Comments
 (0)