chore(ci): show delta in bundle size bars instead of absolute size

This commit is contained in:
Rahim
2026-02-13 01:20:29 +11:00
parent 34c87beaaf
commit 0197a30311
+15 -8
View File
@@ -79,10 +79,12 @@ jobs:
return pct > 10 ? '🔴' : '🔺';
}
// Size bar: proportional block characters
function sizeBar(bytes, maxBytes) {
// Delta bar: visualizes % change relative to the largest change
function deltaBar(current, previous, maxAbsPct) {
const width = 8;
const filled = Math.round((bytes / maxBytes) * width);
if (previous === undefined || maxAbsPct === 0) return '░'.repeat(width);
const pct = Math.abs(((current - previous) / previous) * 100);
const filled = Math.round((pct / maxAbsPct) * width);
return '█'.repeat(filled) + '░'.repeat(width - filled);
}
@@ -114,19 +116,24 @@ jobs:
pkgData.push({ pkg, entries, pkgTotalPr, pkgTotalBase, hasBase, pkgPrev, pkgCur, changed });
}
const maxPkgSize = Math.max(...pkgData.map(p => p.pkgCur));
const maxAbsPct = Math.max(
...pkgData.map(p => {
if (!p.hasBase || p.pkgPrev === 0) return 0;
return Math.abs(((p.pkgCur - p.pkgPrev) / p.pkgPrev) * 100);
})
);
// Overview table
const overview = [];
overview.push('| Package | Size | | Diff | % | |');
overview.push('|---|--:|---|--:|--:|:-:|');
overview.push('| Package | Size | Diff | | % | |');
overview.push('|---|--:|--:|---|--:|:-:|');
for (const p of pkgData) {
const d = formatDelta(p.pkgCur, p.pkgPrev);
const icon = p.hasBase ? statusIcon(p.pkgCur, p.pkgPrev) : '';
const bar = `\`${sizeBar(p.pkgCur, maxPkgSize)}\``;
const bar = `\`${deltaBar(p.pkgCur, p.pkgPrev, maxAbsPct)}\``;
overview.push(
`| **@videojs/${p.pkg}** | **${formatBytes(p.pkgCur)}** | ${bar} | ${p.hasBase ? d.bytes : '—'} | ${p.hasBase ? d.pct : ''} | ${icon} |`
`| **@videojs/${p.pkg}** | **${formatBytes(p.pkgCur)}** | ${p.hasBase ? d.bytes : '—'} | ${bar} | ${p.hasBase ? d.pct : ''} | ${icon} |`
);
}