@@ -23,11 +23,9 @@ get_sizes_from_manifest() {
2323get_sizes_from_manifest ${FROM_CONTAINER} FROM_CONTAINER_SIZES
2424get_sizes_from_manifest ${TO_CONTAINER} TO_CONTAINER_SIZES
2525
26- echo " ## 📊 Container Size Analysis"
26+ echo " ## 📦 Container Size Analysis"
2727echo
28- echo " Comparing compressed layer sizes of:"
29- echo " 📦 Base: \` ${FROM_CONTAINER} \` "
30- echo " 📦 Current: \` ${TO_CONTAINER} \` "
28+ echo " Comparing \` ${FROM_CONTAINER} \` to \` ${TO_CONTAINER} \` "
3129echo
3230
3331echo " ### 📈 Size Comparison Table"
@@ -37,10 +35,20 @@ echo "|-------------|:-------------:|:------------:|:------:|:-----:|"
3735
3836for PLATFORM in " ${! FROM_CONTAINER_SIZES[@]} " ;
3937do
40- BASE_SIZE=${FROM_CONTAINER_SIZES[${PLATFORM}]}
41- HEAD_SIZE=${TO_CONTAINER_SIZES[${PLATFORM}]}
42- DELTA=$(( ${HEAD_SIZE} - ${BASE_SIZE} ))
43- PERCENT_CHANGE=$( python -c " print('{:+0.2f}'.format(((${HEAD_SIZE} - ${BASE_SIZE} ) / ${BASE_SIZE} ) * 100))" )
38+ FROM_SIZE=${FROM_CONTAINER_SIZES[${PLATFORM}]: 0}
39+ TO_SIZE=${TO_CONTAINER_SIZES[${PLATFORM}]: 0}
40+ DELTA=$(( ${TO_SIZE} - ${FROM_SIZE} ))
41+
42+ if [[ ${FROM_SIZE} -eq 0 ]]; then
43+ # If base size was 0, and there's a change, that's infinite percentage change
44+ if [[ ${TO_SIZE} -gt 0 ]]; then
45+ PERCENT_CHANGE=" +∞"
46+ else
47+ PERCENT_CHANGE=" +0.00"
48+ fi
49+ else
50+ PERCENT_CHANGE=$( awk -v head=" ${TO_SIZE} " -v base=" ${FROM_SIZE} " ' BEGIN { printf "%+0.2f", ((head - base) / base) * 100 }' )
51+ fi
4452
4553 if (( DELTA < 0 )) ; then
4654 ICON=" 🔽"
5664 MD_COLOR_END=" "
5765 fi
5866
59- echo " | ${PLATFORM} | $( numfmt --to iec --format ' %.2f' ${BASE_SIZE } ) | $( numfmt --to iec --format ' %.2f' ${HEAD_SIZE } ) | ${MD_COLOR_START} $( numfmt --to iec --format ' %.2f' ${DELTA} ) (${PERCENT_CHANGE} %)${MD_COLOR_END} | ${ICON} |"
67+ echo " | ${PLATFORM} | $( numfmt --to iec --format ' %.2f' ${FROM_SIZE } ) | $( numfmt --to iec --format ' %.2f' ${TO_SIZE } ) | ${MD_COLOR_START} $( numfmt --to iec --format ' %.2f' ${DELTA} ) (${PERCENT_CHANGE} %)${MD_COLOR_END} | ${ICON} |"
6068done
0 commit comments