From 54f7dc55a51a5b371b29242da28dfd660a012027 Mon Sep 17 00:00:00 2001 From: daz Date: Thu, 18 Jul 2024 15:22:38 -0600 Subject: [PATCH] Adapt for new structure of build results --- sources/src/build-results.ts | 23 +++++++++++++++++++++-- sources/test/jest/job-summary.test.ts | 1 + 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/sources/src/build-results.ts b/sources/src/build-results.ts index 8be44f3..9e3b1b4 100644 --- a/sources/src/build-results.ts +++ b/sources/src/build-results.ts @@ -8,6 +8,7 @@ export interface BuildResult { get gradleVersion(): string get gradleHomeDir(): string get buildFailed(): boolean + get configCacheHit(): boolean get buildScanUri(): string get buildScanFailed(): boolean } @@ -32,7 +33,9 @@ export class BuildResults { export function loadBuildResults(): BuildResults { const results = getUnprocessedResults().map(filePath => { const content = fs.readFileSync(filePath, 'utf8') - return JSON.parse(content) as BuildResult + const buildResult = JSON.parse(content) as BuildResult + addScanResults(filePath, buildResult) + return buildResult }) return new BuildResults(results) } @@ -42,7 +45,7 @@ export function markBuildResultsProcessed(): void { } function getUnprocessedResults(): string[] { - const buildResultsDir = path.resolve(process.env['RUNNER_TEMP']!, '.build-results') + const buildResultsDir = path.resolve(process.env['RUNNER_TEMP']!, '.gradle-actions', 'build-results') if (!fs.existsSync(buildResultsDir)) { return [] } @@ -57,6 +60,22 @@ function getUnprocessedResults(): string[] { }) } +function addScanResults(buildResultsFile: string, buildResult: BuildResult): void { + const buildScansDir = path.resolve(process.env['RUNNER_TEMP']!, '.gradle-actions', 'build-scans') + if (!fs.existsSync(buildScansDir)) { + return + } + + const buildScanResults = path.resolve(buildScansDir, path.basename(buildResultsFile)) + if (fs.existsSync(buildScanResults)) { + const content = fs.readFileSync(buildScanResults, 'utf8') + const scanResults = JSON.parse(content) + Object.assign(buildResult, scanResults) + } + + return +} + function isProcessed(resultFile: string): boolean { const markerFile = `${resultFile}.processed` return fs.existsSync(markerFile) diff --git a/sources/test/jest/job-summary.test.ts b/sources/test/jest/job-summary.test.ts index 91cffa2..0f5c102 100644 --- a/sources/test/jest/job-summary.test.ts +++ b/sources/test/jest/job-summary.test.ts @@ -10,6 +10,7 @@ const successfulHelpBuild: BuildResult = { gradleVersion: '8.0', gradleHomeDir: '/opt/gradle', buildFailed: false, + configCacheHit: false, buildScanUri: 'https://scans.gradle.com/s/abc123', buildScanFailed: false }