mirror of
https://github.com/gradle/gradle-build-action.git
synced 2024-10-19 04:01:15 +08:00
996094e8e8
Failures to store cache entries should not fail the action or the Job. This fix attempts to catch and log any unexpected errors that occur when saving cache entries. Fixes: #119 Fixes: #120
26 lines
802 B
TypeScript
26 lines
802 B
TypeScript
import * as core from '@actions/core'
|
|
import * as caches from './caches'
|
|
|
|
// Catch and log any unhandled exceptions. These exceptions can leak out of the uploadChunk method in
|
|
// @actions/toolkit when a failed upload closes the file descriptor causing any in-process reads to
|
|
// throw an uncaught exception. Instead of failing this action, just warn.
|
|
process.on('uncaughtException', e => handleFailure(e))
|
|
|
|
// Invoked by GitHub Actions
|
|
export async function run(): Promise<void> {
|
|
try {
|
|
await caches.save()
|
|
} catch (error) {
|
|
handleFailure(error)
|
|
}
|
|
}
|
|
|
|
function handleFailure(error: unknown): void {
|
|
core.warning(`Unhandled error saving cache - job will continue: ${error}`)
|
|
if (error instanceof Error && error.stack) {
|
|
core.info(error.stack)
|
|
}
|
|
}
|
|
|
|
run()
|