Skip to content

Commit

Permalink
Add error to job summary
Browse files Browse the repository at this point in the history
  • Loading branch information
bigdaz committed Jul 22, 2024
1 parent fae6382 commit 1a11891
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 10 deletions.
29 changes: 20 additions & 9 deletions sources/src/deprecation-collector.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import {getActionId} from './configuration'

const DEPRECATION_UPGRADE_PAGE = 'https://github.com/gradle/actions/blob/main/docs/deprecation-upgrade-guide.md'
const recordedDeprecations: Deprecation[] = []
const recordedErrors: string[] = []

export class Deprecation {
constructor(readonly message: string) {}
Expand All @@ -24,13 +25,19 @@ export function recordDeprecation(message: string): void {

export function failOnUseOfRemovedFeature(removalMessage: string, deprecationMessage: string = removalMessage): void {
const deprecation = new Deprecation(deprecationMessage)
core.setFailed(`${removalMessage}. See ${deprecation.getDocumentationLink()}`)
const errorMessage = `${removalMessage}. See ${deprecation.getDocumentationLink()}`
recordedErrors.push(errorMessage)
core.setFailed(errorMessage)
}

export function getDeprecations(): Deprecation[] {
return recordedDeprecations
}

export function getErrors(): string[] {
return recordedErrors
}

export function emitDeprecationWarnings(hasJobSummary = true): void {
if (recordedDeprecations.length > 0) {
core.warning(
Expand All @@ -43,17 +50,21 @@ export function emitDeprecationWarnings(hasJobSummary = true): void {
}

export function saveDeprecationState(): void {
core.saveState('deprecations', JSON.stringify(recordedDeprecations))
core.saveState('deprecation-collector_deprecations', JSON.stringify(recordedDeprecations))
core.saveState('deprecation-collector_errors', JSON.stringify(recordedErrors))
}

export function restoreDeprecationState(): void {
const stringRep = core.getState('deprecations')
if (stringRep === '') {
return
const savedDeprecations = core.getState('deprecation-collector_deprecations')
if (savedDeprecations) {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
JSON.parse(savedDeprecations).forEach((obj: any) => {
recordedDeprecations.push(new Deprecation(obj.message))
})
}

// eslint-disable-next-line @typescript-eslint/no-explicit-any
JSON.parse(stringRep).forEach((obj: any) => {
recordedDeprecations.push(new Deprecation(obj.message))
})
const savedErrors = core.getState('deprecation-collector_errors')
if (savedErrors) {
recordedErrors.push(...JSON.parse(savedErrors))
}
}
17 changes: 16 additions & 1 deletion sources/src/job-summary.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,20 @@ import {RequestError} from '@octokit/request-error'

import {BuildResults, BuildResult} from './build-results'
import {SummaryConfig, getActionId, getGithubToken} from './configuration'
import {Deprecation, getDeprecations} from './deprecation-collector'
import {Deprecation, getDeprecations, getErrors} from './deprecation-collector'

export async function generateJobSummary(
buildResults: BuildResults,
cachingReport: string,
config: SummaryConfig
): Promise<void> {
const errors = renderErrors()
if (errors) {
core.summary.addRaw(errors)
await core.summary.write()
return
}

const summaryTable = renderSummaryTable(buildResults.results)

const hasFailure = buildResults.anyFailed()
Expand Down Expand Up @@ -82,6 +89,14 @@ export function renderSummaryTable(results: BuildResult[]): string {
return `${renderDeprecations()}\n${renderBuildResults(results)}`
}

function renderErrors(): string | undefined {
const errors = getErrors()
if (errors.length === 0) {
return undefined
}
return errors.map(error => `<b>:x: ${error}</b>`).join('\n')
}

function renderDeprecations(): string {
const deprecations = getDeprecations()
if (deprecations.length === 0) {
Expand Down

0 comments on commit 1a11891

Please sign in to comment.