diff --git a/src/cache-reporting.ts b/src/cache-reporting.ts index 10c7d83..767c13e 100644 --- a/src/cache-reporting.ts +++ b/src/cache-reporting.ts @@ -92,22 +92,47 @@ export function logCachingReport(listener: CacheListener): void { return } - core.info(`---------- Caching Summary ------------- -Restored Entries Count: ${getCount(listener.cacheEntries, e => e.restoredSize)} - Size: ${getSum(listener.cacheEntries, e => e.restoredSize)} -Saved Entries Count: ${getCount(listener.cacheEntries, e => e.savedSize)} - Size: ${getSum(listener.cacheEntries, e => e.savedSize)}`) + core.summary.addHeading('Caching Summary') - core.startGroup('Cache Entry details') - for (const entry of listener.cacheEntries) { - core.info(`Entry: ${entry.entryName} + const entries = listener.cacheEntries + .map( + entry => + `Entry: ${entry.entryName} Requested Key : ${entry.requestedKey ?? ''} Restored Key : ${entry.restoredKey ?? ''} Size: ${formatSize(entry.restoredSize)} Saved Key : ${entry.savedKey ?? ''} - Size: ${formatSize(entry.savedSize)}`) - } - core.endGroup() + Size: ${formatSize(entry.savedSize)}` + ) + .join('\n') + + core.summary.addRaw( + ` + +| | Count | Size (Mb) | Size (B) | +| - | -: | -: | -: | +| Restored | ${getCount(listener.cacheEntries, e => e.restoredSize)} | ${getMegaBytes( + listener.cacheEntries, + e => e.restoredSize + )} | ${getBytes(listener.cacheEntries, e => e.restoredSize)} | +| Saved | ${getCount(listener.cacheEntries, e => e.savedSize)} | ${getMegaBytes( + listener.cacheEntries, + e => e.savedSize + )} | ${getBytes(listener.cacheEntries, e => e.savedSize)} | + +` + ) + + core.summary.addDetails( + 'Cache Entry Details', + ` +
+${entries}
+
+`
+ )
+
+ core.summary.write()
}
function getCount(
@@ -117,14 +142,19 @@ function getCount(
return cacheEntries.filter(e => predicate(e) !== undefined).length
}
-function getSum(
+function getBytes(
cacheEntries: CacheEntryListener[],
predicate: (value: CacheEntryListener) => number | undefined
-): string {
- if (cacheEntries.length === 0) {
- return '0'
- }
- return formatSize(cacheEntries.map(e => predicate(e) ?? 0).reduce((p, v) => p + v, 0))
+): number {
+ return cacheEntries.map(e => predicate(e) ?? 0).reduce((p, v) => p + v, 0)
+}
+
+function getMegaBytes(
+ cacheEntries: CacheEntryListener[],
+ predicate: (value: CacheEntryListener) => number | undefined
+): number {
+ const bytes = getBytes(cacheEntries, predicate)
+ return Math.round(bytes / (1024 * 1024))
}
function formatSize(bytes: number | undefined): string {
diff --git a/src/job-summary.ts b/src/job-summary.ts
index 314aace..709c462 100644
--- a/src/job-summary.ts
+++ b/src/job-summary.ts
@@ -34,6 +34,7 @@ function loadBuildResults(): BuildResult[] {
}
function writeSummaryTable(results: BuildResult[]): void {
+ core.summary.addHeading('Gradle Builds', 3)
core.summary.addRaw(`| Root Project | Tasks | Gradle Version | Outcome |\n| - | - | - | - |\n`)
for (const result of results) {
const tableRow = `| ${result.rootProject} \