Skip to content

Commit 4656cbc

Browse files
Merge branch 'actions:main' into main
2 parents 8e8bf44 + ef96bec commit 4656cbc

File tree

5 files changed

+44
-5
lines changed

5 files changed

+44
-5
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ Currently, the following distributions are supported:
7373

7474
### Caching packages dependencies
7575
The action has a built-in functionality for caching and restoring dependencies. It uses [actions/cache](https://github.com/actions/cache) under hood for caching dependencies but requires less configuration settings. Supported package managers are gradle, maven and sbt. The format of the used cache key is `setup-java-${{ platform }}-${{ packageManager }}-${{ fileHash }}`, where the hash is based on the following files:
76-
- gradle: `**/*.gradle*`, `**/gradle-wrapper.properties`
76+
- gradle: `**/*.gradle*`, `**/gradle-wrapper.properties`, `buildSrc/**/Versions.kt`, `buildSrc/**/Dependencies.kt`
7777
- maven: `**/pom.xml`
7878
- sbt: all sbt build definition files `**/*.sbt`, `**/project/build.properties`, `**/project/**.{scala,sbt}`
7979

__tests__/cache.test.ts

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ describe('dependency cache', () => {
9898
await expect(restore('gradle')).rejects.toThrowError(
9999
`No file in ${projectRoot(
100100
workspace
101-
)} matched to [**/*.gradle*,**/gradle-wrapper.properties], make sure you have checked out the target repository`
101+
)} matched to [**/*.gradle*,**/gradle-wrapper.properties,buildSrc/**/Versions.kt,buildSrc/**/Dependencies.kt], make sure you have checked out the target repository`
102102
);
103103
});
104104
it('downloads cache based on build.gradle', async () => {
@@ -118,6 +118,15 @@ describe('dependency cache', () => {
118118
expect(spyInfo).toBeCalledWith('gradle cache is not found');
119119
});
120120
});
121+
it('downloads cache based on buildSrc/Versions.kt', async () => {
122+
createDirectory(join(workspace, 'buildSrc'));
123+
createFile(join(workspace, 'buildSrc', 'Versions.kt'));
124+
125+
await restore('gradle');
126+
expect(spyCacheRestore).toBeCalled();
127+
expect(spyWarning).not.toBeCalled();
128+
expect(spyInfo).toBeCalledWith('gradle cache is not found');
129+
});
121130
describe('for sbt', () => {
122131
it('throws error if no build.sbt found', async () => {
123132
await expect(restore('sbt')).rejects.toThrowError(
@@ -226,6 +235,16 @@ describe('dependency cache', () => {
226235
createFile(join(workspace, 'build.gradle.kts'));
227236
createStateForSuccessfulRestore();
228237

238+
await save('gradle');
239+
expect(spyCacheSave).toBeCalled();
240+
expect(spyWarning).not.toBeCalled();
241+
expect(spyInfo).toBeCalledWith(expect.stringMatching(/^Cache saved with the key:.*/));
242+
});
243+
it('uploads cache based on buildSrc/Versions.kt', async () => {
244+
createDirectory(join(workspace, 'buildSrc'));
245+
createFile(join(workspace, 'buildSrc', 'Versions.kt'));
246+
createStateForSuccessfulRestore();
247+
229248
await save('gradle');
230249
expect(spyCacheSave).toBeCalled();
231250
expect(spyWarning).not.toBeCalled();
@@ -298,6 +317,11 @@ function createFile(path: string) {
298317
fs.writeFileSync(path, '');
299318
}
300319

320+
function createDirectory(path: string) {
321+
core.info(`created a directory at ${path}`);
322+
fs.mkdirSync(path);
323+
}
324+
301325
function projectRoot(workspace: string): string {
302326
if (os.platform() === 'darwin') {
303327
return `/private${workspace}`;

dist/cleanup/index.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66172,7 +66172,12 @@ const supportedPackageManager = [
6617266172
id: 'gradle',
6617366173
path: [path_1.join(os_1.default.homedir(), '.gradle', 'caches'), path_1.join(os_1.default.homedir(), '.gradle', 'wrapper')],
6617466174
// https://github.com/actions/cache/blob/0638051e9af2c23d10bb70fa9beffcad6cff9ce3/examples.md#java---gradle
66175-
pattern: ['**/*.gradle*', '**/gradle-wrapper.properties']
66175+
pattern: [
66176+
'**/*.gradle*',
66177+
'**/gradle-wrapper.properties',
66178+
'buildSrc/**/Versions.kt',
66179+
'buildSrc/**/Dependencies.kt'
66180+
]
6617666181
},
6617766182
{
6617866183
id: 'sbt',

dist/setup/index.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101377,7 +101377,12 @@ const supportedPackageManager = [
101377101377
id: 'gradle',
101378101378
path: [path_1.join(os_1.default.homedir(), '.gradle', 'caches'), path_1.join(os_1.default.homedir(), '.gradle', 'wrapper')],
101379101379
// https://github.com/actions/cache/blob/0638051e9af2c23d10bb70fa9beffcad6cff9ce3/examples.md#java---gradle
101380-
pattern: ['**/*.gradle*', '**/gradle-wrapper.properties']
101380+
pattern: [
101381+
'**/*.gradle*',
101382+
'**/gradle-wrapper.properties',
101383+
'buildSrc/**/Versions.kt',
101384+
'buildSrc/**/Dependencies.kt'
101385+
]
101381101386
},
101382101387
{
101383101388
id: 'sbt',

src/cache.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,12 @@ const supportedPackageManager: PackageManager[] = [
3131
id: 'gradle',
3232
path: [join(os.homedir(), '.gradle', 'caches'), join(os.homedir(), '.gradle', 'wrapper')],
3333
// https://github.com/actions/cache/blob/0638051e9af2c23d10bb70fa9beffcad6cff9ce3/examples.md#java---gradle
34-
pattern: ['**/*.gradle*', '**/gradle-wrapper.properties']
34+
pattern: [
35+
'**/*.gradle*',
36+
'**/gradle-wrapper.properties',
37+
'buildSrc/**/Versions.kt',
38+
'buildSrc/**/Dependencies.kt'
39+
]
3540
},
3641
{
3742
id: 'sbt',

0 commit comments

Comments
 (0)