mirror of
https://gitea.com/actions/setup-java.git
synced 2026-07-11 19:41:57 +08:00
Address cache.ts review feedback
- saveAdditionalCache: handle @actions/cache ValidationError (thrown when the cache paths do not resolve, e.g. the wrapper distribution was never downloaded) by skipping instead of failing the post step. Add a test. - Point the Gradle wrapper cache comment at issue #269 (Gradle wrapper cache churn) instead of the Maven-specific #1095. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -570,6 +570,33 @@ describe('dependency cache', () => {
|
|||||||
expect.any(String)
|
expect.any(String)
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
it('does not fail the post step when the wrapper distribution path is missing', async () => {
|
||||||
|
createFile(join(workspace, 'pom.xml'));
|
||||||
|
(core.getState as jest.Mock<any>).mockImplementation((name: any) => {
|
||||||
|
switch (name) {
|
||||||
|
case 'cache-primary-key':
|
||||||
|
return 'setup-java-cache-primary-key';
|
||||||
|
case 'cache-matched-key':
|
||||||
|
return 'setup-java-cache-matched-key';
|
||||||
|
case 'cache-primary-key-maven-wrapper':
|
||||||
|
return 'setup-java-maven-wrapper-key';
|
||||||
|
default:
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
});
|
||||||
|
spyCacheSave.mockImplementation((paths: string[]) =>
|
||||||
|
paths.includes(join(os.homedir(), '.m2', 'wrapper', 'dists'))
|
||||||
|
? Promise.reject(
|
||||||
|
new cache.ValidationError(
|
||||||
|
'Path Validation Error: Path(s) specified in the action for caching do(es) not exist'
|
||||||
|
)
|
||||||
|
)
|
||||||
|
: Promise.resolve(0)
|
||||||
|
);
|
||||||
|
|
||||||
|
await expect(save('maven')).resolves.toBeUndefined();
|
||||||
|
expect(spyWarning).not.toHaveBeenCalled();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
describe('for gradle', () => {
|
describe('for gradle', () => {
|
||||||
it('uploads cache even if no build.gradle found', async () => {
|
it('uploads cache even if no build.gradle found', async () => {
|
||||||
|
|||||||
9
dist/cleanup/index.js
vendored
9
dist/cleanup/index.js
vendored
@@ -99700,7 +99700,7 @@ const supportedPackageManager = [
|
|||||||
// The Gradle wrapper distribution only depends on the wrapper properties,
|
// The Gradle wrapper distribution only depends on the wrapper properties,
|
||||||
// which change very rarely, so it is cached separately from the Gradle
|
// which change very rarely, so it is cached separately from the Gradle
|
||||||
// caches. This keeps it available across the frequent *.gradle* changes
|
// caches. This keeps it available across the frequent *.gradle* changes
|
||||||
// that rotate the main cache key. See issue #1095.
|
// that rotate the main cache key. See issue #269.
|
||||||
additionalCaches: [
|
additionalCaches: [
|
||||||
{
|
{
|
||||||
name: 'gradle-wrapper',
|
name: 'gradle-wrapper',
|
||||||
@@ -99900,6 +99900,13 @@ async function saveAdditionalCache(packageManager, additionalCache) {
|
|||||||
}
|
}
|
||||||
catch (error) {
|
catch (error) {
|
||||||
const err = error;
|
const err = error;
|
||||||
|
if (err.name === ValidationError.name) {
|
||||||
|
// The cache paths did not resolve, e.g. the wrapper distribution was
|
||||||
|
// never downloaded because a system build tool was used or the download
|
||||||
|
// failed. Optional wrapper caches must not fail the post step, so skip.
|
||||||
|
core_debug(`${additionalCache.name} cache paths do not exist, not saving cache: ${err.message}`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (err.name === ReserveCacheError.name) {
|
if (err.name === ReserveCacheError.name) {
|
||||||
info(err.message);
|
info(err.message);
|
||||||
}
|
}
|
||||||
|
|||||||
9
dist/setup/index.js
vendored
9
dist/setup/index.js
vendored
@@ -130922,7 +130922,7 @@ const supportedPackageManager = [
|
|||||||
// The Gradle wrapper distribution only depends on the wrapper properties,
|
// The Gradle wrapper distribution only depends on the wrapper properties,
|
||||||
// which change very rarely, so it is cached separately from the Gradle
|
// which change very rarely, so it is cached separately from the Gradle
|
||||||
// caches. This keeps it available across the frequent *.gradle* changes
|
// caches. This keeps it available across the frequent *.gradle* changes
|
||||||
// that rotate the main cache key. See issue #1095.
|
// that rotate the main cache key. See issue #269.
|
||||||
additionalCaches: [
|
additionalCaches: [
|
||||||
{
|
{
|
||||||
name: 'gradle-wrapper',
|
name: 'gradle-wrapper',
|
||||||
@@ -131122,6 +131122,13 @@ async function saveAdditionalCache(packageManager, additionalCache) {
|
|||||||
}
|
}
|
||||||
catch (error) {
|
catch (error) {
|
||||||
const err = error;
|
const err = error;
|
||||||
|
if (err.name === cache.ValidationError.name) {
|
||||||
|
// The cache paths did not resolve, e.g. the wrapper distribution was
|
||||||
|
// never downloaded because a system build tool was used or the download
|
||||||
|
// failed. Optional wrapper caches must not fail the post step, so skip.
|
||||||
|
core.debug(`${additionalCache.name} cache paths do not exist, not saving cache: ${err.message}`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (err.name === cache.ReserveCacheError.name) {
|
if (err.name === cache.ReserveCacheError.name) {
|
||||||
core.info(err.message);
|
core.info(err.message);
|
||||||
}
|
}
|
||||||
|
|||||||
12
src/cache.ts
12
src/cache.ts
@@ -85,7 +85,7 @@ const supportedPackageManager: PackageManager[] = [
|
|||||||
// The Gradle wrapper distribution only depends on the wrapper properties,
|
// The Gradle wrapper distribution only depends on the wrapper properties,
|
||||||
// which change very rarely, so it is cached separately from the Gradle
|
// which change very rarely, so it is cached separately from the Gradle
|
||||||
// caches. This keeps it available across the frequent *.gradle* changes
|
// caches. This keeps it available across the frequent *.gradle* changes
|
||||||
// that rotate the main cache key. See issue #1095.
|
// that rotate the main cache key. See issue #269.
|
||||||
additionalCaches: [
|
additionalCaches: [
|
||||||
{
|
{
|
||||||
name: 'gradle-wrapper',
|
name: 'gradle-wrapper',
|
||||||
@@ -333,6 +333,16 @@ async function saveAdditionalCache(
|
|||||||
} catch (error) {
|
} catch (error) {
|
||||||
const err = error as Error;
|
const err = error as Error;
|
||||||
|
|
||||||
|
if (err.name === cache.ValidationError.name) {
|
||||||
|
// The cache paths did not resolve, e.g. the wrapper distribution was
|
||||||
|
// never downloaded because a system build tool was used or the download
|
||||||
|
// failed. Optional wrapper caches must not fail the post step, so skip.
|
||||||
|
core.debug(
|
||||||
|
`${additionalCache.name} cache paths do not exist, not saving cache: ${err.message}`
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (err.name === cache.ReserveCacheError.name) {
|
if (err.name === cache.ReserveCacheError.name) {
|
||||||
core.info(err.message);
|
core.info(err.message);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user