@@ -264,37 +264,47 @@ jobs:
264264 fi
265265 echo "" >> $GITHUB_STEP_SUMMARY
266266
267- # Add detailed coverage report
268- echo "### Detailed Coverage Report" >> $GITHUB_STEP_SUMMARY
269- echo '```' >> $GITHUB_STEP_SUMMARY
270- python -m coverage report >> $GITHUB_STEP_SUMMARY
271- echo '```' >> $GITHUB_STEP_SUMMARY
267+ # Add detailed coverage report (only if .coverage file exists)
268+ if [ -f .coverage ]; then
269+ echo "### Detailed Coverage Report" >> $GITHUB_STEP_SUMMARY
270+ echo '```' >> $GITHUB_STEP_SUMMARY
271+ python -m coverage report >> $GITHUB_STEP_SUMMARY || echo "Coverage report generation failed" >> $GITHUB_STEP_SUMMARY
272+ echo '```' >> $GITHUB_STEP_SUMMARY
273+ else
274+ echo "### Detailed Coverage Report" >> $GITHUB_STEP_SUMMARY
275+ echo "Coverage data file not found. Report not available." >> $GITHUB_STEP_SUMMARY
276+ fi
272277
273278 - name : Comment PR with Coverage
274279 if : github.event_name == 'pull_request'
275280 uses : actions/github-script@v7
276281 with :
277282 script : |
278283 const coverage = '${{ steps.coverage.outputs.coverage_pct }}';
279- const baselineCoverage = '${{ steps.baseline.outputs.baseline_coverage }}';
280- const passed = parseFloat(coverage) >= parseFloat(baselineCoverage);
281- const improvement = parseFloat(coverage) - parseFloat(baselineCoverage);
284+ const baselineCoverage = '${{ steps.baseline.outputs.baseline_coverage }}' || '0';
285+ const coverageNum = parseFloat(coverage);
286+ const baselineNum = parseFloat(baselineCoverage);
287+ const passed = coverageNum >= baselineNum;
288+ const improvement = coverageNum - baselineNum;
289+ const isFirstBaseline = baselineNum === 0;
282290
283291 const body = `## 📊 Unit Tests & Coverage Report
284292
285- ${passed ? '✅' : '❌'} **Coverage:** ${coverage}% vs ${baselineCoverage}% (target branch)
293+ ${passed ? '✅' : '❌'} **Coverage:** ${coverage}%${isFirstBaseline ? ' (Baseline Established)' : ` vs ${baselineCoverage}% (target branch)`}
286294
287295 ### Test Results
288296 - **Status:** ${passed ? 'PASSED' : 'FAILED'}
289297 - **Current Coverage:** ${coverage}%
290- - **Target Branch Coverage:** ${baselineCoverage}%
298+ - **Target Branch Coverage:** ${baselineCoverage}%${isFirstBaseline ? ' (First commit with tests)' : ''}
291299 - **Change:** ${improvement > 0 ? '+' : ''}${improvement.toFixed(1)}%
292300
293- ${passed ?
294- (improvement > 0 ?
295- `🎉 Coverage improved by ${improvement.toFixed(1)}%! Great work on adding tests.` :
296- '✅ Coverage maintained. No regression detected.') :
297- '⚠️ Coverage regression detected. This PR would reduce test coverage. Please add more tests.'
301+ ${isFirstBaseline ?
302+ '🎉 Baseline coverage established at ' + coverage + '%! This will be used for future comparisons.' :
303+ (passed ?
304+ (improvement > 0 ?
305+ `🎉 Coverage improved by ${improvement.toFixed(1)}%! Great work on adding tests.` :
306+ '✅ Coverage maintained. No regression detected.') :
307+ '⚠️ Coverage regression detected. This PR would reduce test coverage. Please add more tests.')
298308 }
299309
300310 📁 Detailed reports are available in the workflow artifacts.
0 commit comments