Prechádzať zdrojové kódy

fix(action): enhance post-build cache stats with detailed hit and direct rates calculation

TheWildJames 4 mesiacov pred
rodič
commit
efc54d11f6
1 zmenil súbory, kde vykonal 27 pridanie a 1 odobranie
  1. 27 1
      .github/workflows/build.yml

+ 27 - 1
.github/workflows/build.yml

@@ -341,7 +341,33 @@ jobs:
       id: post-cache-stats
       run: |
         set -euo pipefail
-        ccache -s
+        STATS="$(ccache -s)"
+        
+        CACHEABLE=$(echo "$STATS" | awk '/Cacheable calls:/ {
+          match($0, /[0-9]+/); 
+          print substr($0, RSTART, RLENGTH)
+        }' | head -n1)
+        
+        HITS=$(echo "$STATS" | awk '/^[[:space:]]*Hits:/ {
+          match($0, /[0-9]+/); 
+          print substr($0, RSTART, RLENGTH)
+        }' | head -n1)
+        
+        DIRECT=$(echo "$STATS" | awk '/Direct:/ {
+          match($0, /[0-9]+/); 
+          print substr($0, RSTART, RLENGTH)
+        }' | head -n1)
+        
+        if [ "${CACHEABLE:-0}" -gt 0 ]; then
+          HIT_RATE=$(awk -v h="${HITS:-0}" -v c="$CACHEABLE" 'BEGIN{printf "%.1f", (h/c)*100}')
+          DIRECT_RATE=$(awk -v d="${DIRECT:-0}" -v c="$CACHEABLE" 'BEGIN{printf "%.1f", (d/c)*100}')
+        else
+          HIT_RATE="0.0"
+          DIRECT_RATE="0.0"
+        fi
+        
+        echo "hit_rate=${HIT_RATE}%"
+        echo "direct_rate=${DIRECT_RATE}%"
 
     - name: List cache contents
       working-directory: ${{ github.workspace }}