@@ -13,6 +13,11 @@ name: GoFortress (Performance Summary)
1313on :
1414 workflow_call :
1515 inputs :
16+ benchmarks-result :
17+ description : " Benchmarks job result"
18+ required : false
19+ type : string
20+ default : " skipped"
1621 start-epoch :
1722 description : " Workflow start epoch time"
1823 required : true
@@ -126,7 +131,8 @@ jobs:
126131 echo ""
127132
128133 # Process cache statistics if available
129- if ls cache-stats-*.json >/dev/null 2>&1; then
134+ # Use a more robust file existence check
135+ if compgen -G "cache-stats-*.json" >/dev/null 2>&1; then
130136 echo "### 💾 Cache Performance" >> $GITHUB_STEP_SUMMARY
131137 echo "| OS | Go Version | Module Cache | Build Cache | Module Size | Build Size |" >> $GITHUB_STEP_SUMMARY
132138 echo "|----|------------|--------------|-------------|-------------|------------|" >> $GITHUB_STEP_SUMMARY
@@ -155,8 +161,54 @@ jobs:
155161 done
156162 fi
157163
164+ # Process benchmark statistics if available
165+ # Use a more robust file existence check
166+ if compgen -G "benchmark-stats-*.json" >/dev/null 2>&1; then
167+ echo "" >> $GITHUB_STEP_SUMMARY
168+ echo "### 🏃 Benchmark Performance" >> $GITHUB_STEP_SUMMARY
169+ echo "| Benchmark Suite | Duration | Benchmarks | Status |" >> $GITHUB_STEP_SUMMARY
170+ echo "|-----------------|----------|------------|--------|" >> $GITHUB_STEP_SUMMARY
171+
172+ for stats_file in benchmark-stats-*.json; do
173+ if [ -f "$stats_file" ]; then
174+ NAME=$(jq -r '.name' "$stats_file")
175+ DURATION=$(jq -r '.duration_seconds' "$stats_file")
176+ BENCHMARK_COUNT=$(jq -r '.benchmark_count' "$stats_file")
177+ STATUS=$(jq -r '.status' "$stats_file")
178+ BENCHMARK_SUMMARY=$(jq -r '.benchmark_summary' "$stats_file")
179+
180+ DURATION_MIN=$((DURATION / 60))
181+ DURATION_SEC=$((DURATION % 60))
182+ STATUS_ICON=$([[ "$STATUS" == "success" ]] && echo "✅" || echo "❌")
183+
184+ echo "| $NAME | ${DURATION_MIN}m ${DURATION_SEC}s | $BENCHMARK_COUNT | $STATUS_ICON |" >> $GITHUB_STEP_SUMMARY
185+ fi
186+ done
187+
188+ # Display detailed benchmark results
189+ echo "" >> $GITHUB_STEP_SUMMARY
190+ echo "<details>" >> $GITHUB_STEP_SUMMARY
191+ echo "<summary>Detailed Benchmark Results</summary>" >> $GITHUB_STEP_SUMMARY
192+ echo "" >> $GITHUB_STEP_SUMMARY
193+
194+ for stats_file in benchmark-stats-*.json; do
195+ if [ -f "$stats_file" ]; then
196+ NAME=$(jq -r '.name' "$stats_file")
197+ BENCHMARK_SUMMARY=$(jq -r '.benchmark_summary' "$stats_file")
198+ if [ -n "$BENCHMARK_SUMMARY" ] && [ "$BENCHMARK_SUMMARY" != "null" ]; then
199+ echo "#### $NAME" >> $GITHUB_STEP_SUMMARY
200+ echo "$BENCHMARK_SUMMARY" >> $GITHUB_STEP_SUMMARY
201+ echo "" >> $GITHUB_STEP_SUMMARY
202+ fi
203+ fi
204+ done
205+
206+ echo "</details>" >> $GITHUB_STEP_SUMMARY
207+ fi
208+
158209 # Process test statistics if available
159- if ls test-stats-*.json >/dev/null 2>&1; then
210+ # Use a more robust file existence check
211+ if compgen -G "test-stats-*.json" >/dev/null 2>&1; then
160212 echo "" >> $GITHUB_STEP_SUMMARY
161213 echo "### 🧪 Test Execution Performance" >> $GITHUB_STEP_SUMMARY
162214 echo "| Test Suite | Duration | Tests | Examples | Status | Race | Coverage | Fuzz |" >> $GITHUB_STEP_SUMMARY
@@ -206,6 +258,10 @@ jobs:
206258 echo "| 🔒 Security Scans | ${{ inputs.security-result }} | $([ "${{ inputs.security-result }}" = "success" ] && echo "✅" || echo "❌") |"
207259 echo "| 📊 Code Quality | ${{ inputs.code-quality-result }} | $([ "${{ inputs.code-quality-result }}" = "success" ] && echo "✅" || echo "❌") |"
208260 echo "| 🧪 Test Suite | ${{ inputs.test-suite-result }} | $([ "${{ inputs.test-suite-result }}" = "success" ] && echo "✅" || echo "❌") |"
261+ # Only show benchmarks row if it was attempted
262+ if [[ "${{ inputs.benchmarks-result }}" != "skipped" ]]; then
263+ echo "| 🏃 Benchmarks | ${{ inputs.benchmarks-result }} | $([ "${{ inputs.benchmarks-result }}" = "success" ] && echo "✅" || echo "❌") |"
264+ fi
209265 # Only show release row if it was attempted
210266 if [[ "${{ inputs.release-result }}" != "skipped" ]]; then
211267 echo "| 🚀 Release | ${{ inputs.release-result }} | $([ "${{ inputs.release-result }}" = "success" ] && echo "✅" || echo "❌") |"
@@ -254,6 +310,7 @@ jobs:
254310 [ "${{ inputs.security-result }}" != "success" ] && [ "${{ inputs.security-result }}" != "skipped" ] && FAILED_JOBS="${FAILED_JOBS}Security Scans, "
255311 [ "${{ inputs.code-quality-result }}" != "success" ] && [ "${{ inputs.code-quality-result }}" != "skipped" ] && FAILED_JOBS="${FAILED_JOBS}Code Quality, "
256312 [ "${{ inputs.test-suite-result }}" != "success" ] && [ "${{ inputs.test-suite-result }}" != "skipped" ] && FAILED_JOBS="${FAILED_JOBS}Test Suite, "
313+ [ "${{ inputs.benchmarks-result }}" != "success" ] && [ "${{ inputs.benchmarks-result }}" != "skipped" ] && FAILED_JOBS="${FAILED_JOBS}Benchmarks, "
257314 [ "${{ inputs.release-result }}" != "success" ] && [ "${{ inputs.release-result }}" != "skipped" ] && FAILED_JOBS="${FAILED_JOBS}Release, "
258315
259316 if [ -n "$FAILED_JOBS" ]; then
0 commit comments