From a7fa303fda11ad298875676ffff78143cc49ce95 Mon Sep 17 00:00:00 2001 From: Timmy Willison Date: Thu, 21 Sep 2023 17:45:33 -0400 Subject: [PATCH] Build: sort branches in compare_size; last run last Close gh-5333 --- build/tasks/compare_size.mjs | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/build/tasks/compare_size.mjs b/build/tasks/compare_size.mjs index f1af39e71..c3973bc7a 100644 --- a/build/tasks/compare_size.mjs +++ b/build/tasks/compare_size.mjs @@ -6,6 +6,7 @@ import { exec as nodeExec } from "node:child_process"; import isCleanWorkingDir from "./lib/isCleanWorkingDir.js"; const VERSION = 1; +const lastRunBranch = " last run"; const gzip = promisify( zlib.gzip ); const exec = promisify( nodeExec ); @@ -39,7 +40,7 @@ async function getCache( loc ) { return {}; } - const lastRun = cache[ " last run" ]; + const lastRun = cache[ lastRunBranch ]; if ( !lastRun || !lastRun.meta || lastRun.meta.version !== VERSION ) { console.log( "Compare cache version mismatch. Rewriting..." ); return {}; @@ -73,6 +74,22 @@ function compareSizes( existing, current, padLength ) { return chalk.green( `${delta}`.padStart( padLength ) ); } +function sortBranches( a, b ) { + if ( a === lastRunBranch ) { + return 1; + } + if ( b === lastRunBranch ) { + return -1; + } + if ( a < b ) { + return -1; + } + if ( a > b ) { + return 1; + } + return 0; +} + export async function compareSize( { cache = ".sizecache.json", files } = {} ) { if ( !files || !files.length ) { throw new Error( "No files specified" ); @@ -116,7 +133,7 @@ export async function compareSize( { cache = ".sizecache.json", files } = {} ) { return `${rawSize} ${gzSize} ${result.filename}`; } ); - const comparisons = Object.keys( sizeCache ).map( function( branch ) { + const comparisons = Object.keys( sizeCache ).sort( sortBranches ).map( function( branch ) { const meta = sizeCache[ branch ].meta || {}; const commit = meta.commit; @@ -153,7 +170,7 @@ export async function compareSize( { cache = ".sizecache.json", files } = {} ) { // Always save the last run // Save version under last run - sizeCache[ " last run" ] = { + sizeCache[ lastRunBranch ] = { meta: { version: VERSION }, files: cacheResults( results ) };