mirror of
https://github.com/gradle/actions.git
synced 2025-08-18 23:01:27 +08:00
Refactor BuildResults
This commit is contained in:
parent
d92de28b80
commit
91a526b647
@ -12,11 +12,29 @@ export interface BuildResult {
|
|||||||
get buildScanFailed(): boolean
|
get buildScanFailed(): boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
export function loadBuildResults(): BuildResult[] {
|
export class BuildResults {
|
||||||
return getUnprocessedResults().map(filePath => {
|
results: BuildResult[]
|
||||||
|
|
||||||
|
constructor(results: BuildResult[]) {
|
||||||
|
this.results = results
|
||||||
|
}
|
||||||
|
|
||||||
|
anyFailed(): boolean {
|
||||||
|
return this.results.some(result => result.buildFailed)
|
||||||
|
}
|
||||||
|
|
||||||
|
uniqueGradleHomes(): string[] {
|
||||||
|
const allHomes = this.results.map(buildResult => buildResult.gradleHomeDir)
|
||||||
|
return Array.from(new Set(allHomes))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export function loadBuildResults(): BuildResults {
|
||||||
|
const results = getUnprocessedResults().map(filePath => {
|
||||||
const content = fs.readFileSync(filePath, 'utf8')
|
const content = fs.readFileSync(filePath, 'utf8')
|
||||||
return JSON.parse(content) as BuildResult
|
return JSON.parse(content) as BuildResult
|
||||||
})
|
})
|
||||||
|
return new BuildResults(results)
|
||||||
}
|
}
|
||||||
|
|
||||||
export function markBuildResultsProcessed(): void {
|
export function markBuildResultsProcessed(): void {
|
||||||
|
@ -449,7 +449,7 @@ export class ConfigurationCacheEntryExtractor extends AbstractEntryExtractor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private getConfigCacheDirectoriesWithAssociatedBuildResults(): Record<string, BuildResult[]> {
|
private getConfigCacheDirectoriesWithAssociatedBuildResults(): Record<string, BuildResult[]> {
|
||||||
return loadBuildResults().reduce(
|
return loadBuildResults().results.reduce(
|
||||||
(acc, buildResult) => {
|
(acc, buildResult) => {
|
||||||
// For each build result, find the config-cache dir
|
// For each build result, find the config-cache dir
|
||||||
const configCachePath = path.resolve(buildResult.rootProjectDir, '.gradle/configuration-cache')
|
const configCachePath = path.resolve(buildResult.rootProjectDir, '.gradle/configuration-cache')
|
||||||
|
@ -2,14 +2,13 @@ import * as core from '@actions/core'
|
|||||||
import * as exec from '@actions/exec'
|
import * as exec from '@actions/exec'
|
||||||
import * as fs from 'fs'
|
import * as fs from 'fs'
|
||||||
import * as path from 'path'
|
import * as path from 'path'
|
||||||
import {BuildResult} from './build-results'
|
import {BuildResults} from './build-results'
|
||||||
|
|
||||||
export class DaemonController {
|
export class DaemonController {
|
||||||
private readonly gradleHomes
|
private readonly gradleHomes
|
||||||
|
|
||||||
constructor(buildResults: BuildResult[]) {
|
constructor(buildResults: BuildResults) {
|
||||||
const allHomes = buildResults.map(buildResult => buildResult.gradleHomeDir)
|
this.gradleHomes = buildResults.uniqueGradleHomes()
|
||||||
this.gradleHomes = Array.from(new Set(allHomes))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async stopAllDaemons(): Promise<void> {
|
async stopAllDaemons(): Promise<void> {
|
||||||
|
@ -2,18 +2,18 @@ import * as core from '@actions/core'
|
|||||||
import * as github from '@actions/github'
|
import * as github from '@actions/github'
|
||||||
import {RequestError} from '@octokit/request-error'
|
import {RequestError} from '@octokit/request-error'
|
||||||
|
|
||||||
import {BuildResult} from './build-results'
|
import {BuildResults, BuildResult} from './build-results'
|
||||||
import {SummaryConfig, getActionId, getGithubToken} from './configuration'
|
import {SummaryConfig, getActionId, getGithubToken} from './configuration'
|
||||||
import {Deprecation, getDeprecations} from './deprecation-collector'
|
import {Deprecation, getDeprecations} from './deprecation-collector'
|
||||||
|
|
||||||
export async function generateJobSummary(
|
export async function generateJobSummary(
|
||||||
buildResults: BuildResult[],
|
buildResults: BuildResults,
|
||||||
cachingReport: string,
|
cachingReport: string,
|
||||||
config: SummaryConfig
|
config: SummaryConfig
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
const summaryTable = renderSummaryTable(buildResults)
|
const summaryTable = renderSummaryTable(buildResults.results)
|
||||||
|
|
||||||
const hasFailure = buildResults.some(result => result.buildFailed)
|
const hasFailure = buildResults.anyFailed()
|
||||||
if (config.shouldGenerateJobSummary(hasFailure)) {
|
if (config.shouldGenerateJobSummary(hasFailure)) {
|
||||||
core.info('Generating Job Summary')
|
core.info('Generating Job Summary')
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user