suggest users to run without daemon if fail to save Gradle cache on Windows

This commit is contained in:
Kengo TODA 2021-07-20 11:32:37 +08:00
parent 7fe6c4d631
commit fae2927552
3 changed files with 51 additions and 0 deletions

16
dist/cleanup/index.js vendored
View file

@ -64623,12 +64623,28 @@ function save(id) {
core.info(error.message); core.info(error.message);
} }
else { else {
if (isProbablyGradleDaemonProblem(packageManager, error)) {
core.warning('Failed to save Gradle cache on Windows. If tar.exe reported "Permission denied", try to run Gradle with `--no-daemon` option. Refer to https://github.com/actions/cache/issues/454 for detail.');
}
throw error; throw error;
} }
} }
}); });
} }
exports.save = save; exports.save = save;
/**
* @param packageManager the specified package manager by user
* @param error the error thrown by the saveCache
* @returns true if the given error seems related to the {@link https://github.com/actions/cache/issues/454|running Gradle Daemon issue}.
* @see {@link https://github.com/actions/cache/issues/454#issuecomment-840493935|why --no-daemon is necessary}
*/
function isProbablyGradleDaemonProblem(packageManager, error) {
if (packageManager.id !== 'gradle' || process.env['RUNNER_OS'] !== 'Windows') {
return false;
}
const message = error.message || '';
return message.startsWith('Tar failed with error: ');
}
/***/ }), /***/ }),

16
dist/setup/index.js vendored
View file

@ -19019,12 +19019,28 @@ function save(id) {
core.info(error.message); core.info(error.message);
} }
else { else {
if (isProbablyGradleDaemonProblem(packageManager, error)) {
core.warning('Failed to save Gradle cache on Windows. If tar.exe reported "Permission denied", try to run Gradle with `--no-daemon` option. Refer to https://github.com/actions/cache/issues/454 for detail.');
}
throw error; throw error;
} }
} }
}); });
} }
exports.save = save; exports.save = save;
/**
* @param packageManager the specified package manager by user
* @param error the error thrown by the saveCache
* @returns true if the given error seems related to the {@link https://github.com/actions/cache/issues/454|running Gradle Daemon issue}.
* @see {@link https://github.com/actions/cache/issues/454#issuecomment-840493935|why --no-daemon is necessary}
*/
function isProbablyGradleDaemonProblem(packageManager, error) {
if (packageManager.id !== 'gradle' || process.env['RUNNER_OS'] !== 'Windows') {
return false;
}
const message = error.message || '';
return message.startsWith('Tar failed with error: ');
}
/***/ }), /***/ }),

View file

@ -110,7 +110,26 @@ export async function save(id: string) {
if (error.name === cache.ReserveCacheError.name) { if (error.name === cache.ReserveCacheError.name) {
core.info(error.message); core.info(error.message);
} else { } else {
if (isProbablyGradleDaemonProblem(packageManager, error)) {
core.warning(
'Failed to save Gradle cache on Windows. If tar.exe reported "Permission denied", try to run Gradle with `--no-daemon` option. Refer to https://github.com/actions/cache/issues/454 for detail.'
);
}
throw error; throw error;
} }
} }
} }
/**
* @param packageManager the specified package manager by user
* @param error the error thrown by the saveCache
* @returns true if the given error seems related to the {@link https://github.com/actions/cache/issues/454|running Gradle Daemon issue}.
* @see {@link https://github.com/actions/cache/issues/454#issuecomment-840493935|why --no-daemon is necessary}
*/
function isProbablyGradleDaemonProblem(packageManager: PackageManager, error: Error) {
if (packageManager.id !== 'gradle' || process.env['RUNNER_OS'] !== 'Windows') {
return false;
}
const message = error.message || '';
return message.startsWith('Tar failed with error: ');
}