@@ -551,6 +551,18 @@ jobs:
551551 TOTAL_FILES_COUNT=$(echo "$LOC_OUTPUT" | jq -r '.total_files_count // empty')
552552 LOC_DATE=$(echo "$LOC_OUTPUT" | jq -r '.date // empty')
553553
554+ # Parse new size metrics
555+ TEST_FILES_SIZE=$(echo "$LOC_OUTPUT" | jq -r '.test_files_size_human // empty')
556+ GO_FILES_SIZE=$(echo "$LOC_OUTPUT" | jq -r '.go_files_size_human // empty')
557+ TOTAL_SIZE=$(echo "$LOC_OUTPUT" | jq -r '.total_size_human // empty')
558+ TEST_AVG_SIZE_BYTES=$(echo "$LOC_OUTPUT" | jq -r '.test_avg_size_bytes // empty')
559+ GO_AVG_SIZE_BYTES=$(echo "$LOC_OUTPUT" | jq -r '.go_avg_size_bytes // empty')
560+
561+ # Parse code quality metrics
562+ AVG_LINES_PER_FILE=$(echo "$LOC_OUTPUT" | jq -r '.avg_lines_per_file // empty')
563+ TEST_COVERAGE_RATIO=$(echo "$LOC_OUTPUT" | jq -r '.test_coverage_ratio // empty')
564+ PACKAGE_COUNT=$(echo "$LOC_OUTPUT" | jq -r '.package_count // empty')
565+
554566 echo " - Test Files LOC: '$TEST_FILES_LOC' (count: $TEST_FILES_COUNT)"
555567 echo " - Go Files LOC: '$GO_FILES_LOC' (count: $GO_FILES_COUNT)"
556568 echo " - Total LOC: '$TOTAL_LOC' (files: $TOTAL_FILES_COUNT)"
@@ -560,6 +572,11 @@ jobs:
560572 if [[ -n "$TEST_FILES_LOC" ]] && [[ -n "$GO_FILES_LOC" ]] && [[ -n "$TOTAL_LOC" ]]; then
561573 LOC_FOUND=true
562574 echo "✅ Successfully parsed LOC JSON data"
575+
576+ # Optionally warn if new metrics are missing
577+ if [[ -z "$TOTAL_SIZE" ]] || [[ -z "$AVG_LINES_PER_FILE" ]]; then
578+ echo "⚠️ Some enhanced metrics are missing (older magex version?)"
579+ fi
563580 fi
564581 else
565582 echo "⚠️ No output from magex metrics:loc json"
@@ -576,17 +593,67 @@ jobs:
576593 DISPLAY_TOTAL_FILES="${TOTAL_FILES_COUNT:-N/A}"
577594 DISPLAY_LOC_DATE="${LOC_DATE:-N/A}"
578595
596+ # Format average sizes for display
597+ if [[ -n "$TEST_AVG_SIZE_BYTES" ]] && [[ "$TEST_AVG_SIZE_BYTES" != "0" ]]; then
598+ DISPLAY_TEST_AVG_SIZE=$(numfmt --to=iec-i --suffix=B "$TEST_AVG_SIZE_BYTES" 2>/dev/null || echo "${TEST_AVG_SIZE_BYTES}B")
599+ else
600+ DISPLAY_TEST_AVG_SIZE="N/A"
601+ fi
602+
603+ if [[ -n "$GO_AVG_SIZE_BYTES" ]] && [[ "$GO_AVG_SIZE_BYTES" != "0" ]]; then
604+ DISPLAY_GO_AVG_SIZE=$(numfmt --to=iec-i --suffix=B "$GO_AVG_SIZE_BYTES" 2>/dev/null || echo "${GO_AVG_SIZE_BYTES}B")
605+ else
606+ DISPLAY_GO_AVG_SIZE="N/A"
607+ fi
608+
609+ DISPLAY_TEST_SIZE="${TEST_FILES_SIZE:-N/A}"
610+ DISPLAY_GO_SIZE="${GO_FILES_SIZE:-N/A}"
611+ DISPLAY_TOTAL_SIZE="${TOTAL_SIZE:-N/A}"
612+
579613 {
580614 echo ""
581615 echo "<br><br>"
582616 echo ""
583617 echo "### 📊 Lines of Code Summary"
584- echo "| Type | Lines of Code | Files | Date |"
585- echo "|------|---------------|-------|------|"
586- echo "| Test Files | $DISPLAY_TEST_LOC | $DISPLAY_TEST_COUNT | $DISPLAY_LOC_DATE |"
587- echo "| Go Files | $DISPLAY_GO_LOC | $DISPLAY_GO_COUNT | $DISPLAY_LOC_DATE |"
588- echo "| **Total** | **$DISPLAY_TOTAL_LOC** | **$DISPLAY_TOTAL_FILES** | |"
618+ echo "| Type | Lines of Code | Files | Total Size | Avg Size | Date |"
619+ echo "|------|---------------|-------|------------|----------|------ |"
620+ echo "| Test Files | $DISPLAY_TEST_LOC | $DISPLAY_TEST_COUNT | $DISPLAY_TEST_SIZE | $DISPLAY_TEST_AVG_SIZE | $ DISPLAY_LOC_DATE |"
621+ echo "| Go Files | $DISPLAY_GO_LOC | $DISPLAY_GO_COUNT | $DISPLAY_GO_SIZE | $DISPLAY_GO_AVG_SIZE | $ DISPLAY_LOC_DATE |"
622+ echo "| **Total** | **$DISPLAY_TOTAL_LOC** | **$DISPLAY_TOTAL_FILES** | **$DISPLAY_TOTAL_SIZE** | | |"
589623 echo ""
624+
625+ # Display code quality metrics if available
626+ if [[ -n "$AVG_LINES_PER_FILE" ]] || [[ -n "$TEST_COVERAGE_RATIO" ]] || [[ -n "$PACKAGE_COUNT" ]]; then
627+ echo "#### 📈 Code Quality Metrics"
628+ echo ""
629+ echo "| Metric | Value |"
630+ echo "|--------|-------|"
631+
632+ # Display average lines per file
633+ if [[ -n "$AVG_LINES_PER_FILE" ]]; then
634+ DISPLAY_AVG_LINES=$(LC_NUMERIC=en_US.UTF-8 printf "%.1f" "${AVG_LINES_PER_FILE}")
635+ echo "| Average Lines per File | $DISPLAY_AVG_LINES |"
636+ fi
637+
638+ # Display test coverage ratio
639+ if [[ -n "$TEST_COVERAGE_RATIO" ]]; then
640+ DISPLAY_COVERAGE=$(LC_NUMERIC=en_US.UTF-8 printf "%.1f%%" "${TEST_COVERAGE_RATIO}")
641+ echo "| Test Coverage Ratio | $DISPLAY_COVERAGE |"
642+ fi
643+
644+ # Display package count
645+ if [[ -n "$PACKAGE_COUNT" ]]; then
646+ echo "| Package/Directory Count | $PACKAGE_COUNT |"
647+ fi
648+
649+ # Display total size
650+ if [[ -n "$TOTAL_SIZE" ]]; then
651+ echo "| Total Project Size | $TOTAL_SIZE |"
652+ fi
653+
654+ echo ""
655+ fi
656+
590657 echo "<br><br>"
591658 } >> statistics-section.md
592659
@@ -632,7 +699,6 @@ jobs:
632699 artifact-path : " statistics-section.md"
633700 retention-days : " 1"
634701 if-no-files-found : " warn"
635- continue-on-error : " true"
636702
637703 - name : 📋 Set Output Content
638704 id : set-output
0 commit comments