2024-04-11 10:18:07 -06:00
|
|
|
import * as core from '@actions/core'
|
|
|
|
|
2024-04-11 11:56:55 -06:00
|
|
|
export class JobFailure extends Error {
|
2024-01-12 11:15:01 -07:00
|
|
|
constructor(error: unknown) {
|
|
|
|
if (error instanceof Error) {
|
|
|
|
super(error.message)
|
|
|
|
this.name = error.name
|
|
|
|
this.stack = error.stack
|
|
|
|
} else {
|
|
|
|
super(String(error))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2024-04-11 10:18:07 -06:00
|
|
|
|
|
|
|
export function handleMainActionError(error: unknown): void {
|
|
|
|
if (error instanceof AggregateError) {
|
|
|
|
core.setFailed(`Multiple errors returned`)
|
|
|
|
for (const err of error.errors) {
|
|
|
|
core.error(`Error ${error.errors.indexOf(err)}: ${err.message}`)
|
|
|
|
if (err.stack) {
|
|
|
|
core.info(err.stack)
|
|
|
|
}
|
|
|
|
}
|
2024-04-11 11:56:55 -06:00
|
|
|
} else if (error instanceof JobFailure) {
|
|
|
|
core.setFailed(String(error)) // No stack trace for JobFailure: these are known errors
|
2024-04-11 10:18:07 -06:00
|
|
|
} else {
|
|
|
|
core.setFailed(String(error))
|
|
|
|
if (error instanceof Error && error.stack) {
|
|
|
|
core.info(error.stack)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
export function handlePostActionError(error: unknown): void {
|
2024-04-11 11:56:55 -06:00
|
|
|
if (error instanceof JobFailure) {
|
2024-04-11 10:18:07 -06:00
|
|
|
core.setFailed(String(error))
|
|
|
|
} else {
|
|
|
|
core.warning(`Unhandled error in Gradle post-action - job will continue: ${error}`)
|
|
|
|
if (error instanceof Error && error.stack) {
|
|
|
|
core.info(error.stack)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|