Merge pull request #274 from schuenadel/include-buildSrc-in-cache-key
Include *.kt files in buildSrc in cache key
This commit is contained in:
		| @ -73,7 +73,7 @@ Currently, the following distributions are supported: | ||||
|  | ||||
| ### Caching packages dependencies | ||||
| 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: | ||||
| - gradle: `**/*.gradle*`, `**/gradle-wrapper.properties` | ||||
| - gradle: `**/*.gradle*`, `**/gradle-wrapper.properties`, `buildSrc/**/Versions.kt`, `buildSrc/**/Dependencies.kt` | ||||
| - maven: `**/pom.xml` | ||||
| - sbt: all sbt build definition files `**/*.sbt`, `**/project/build.properties`, `**/project/**.{scala,sbt}` | ||||
|  | ||||
|  | ||||
| @ -98,7 +98,7 @@ describe('dependency cache', () => { | ||||
|         await expect(restore('gradle')).rejects.toThrowError( | ||||
|           `No file in ${projectRoot( | ||||
|             workspace | ||||
|           )} matched to [**/*.gradle*,**/gradle-wrapper.properties], make sure you have checked out the target repository` | ||||
|           )} matched to [**/*.gradle*,**/gradle-wrapper.properties,buildSrc/**/Versions.kt,buildSrc/**/Dependencies.kt], make sure you have checked out the target repository` | ||||
|         ); | ||||
|       }); | ||||
|       it('downloads cache based on build.gradle', async () => { | ||||
| @ -118,6 +118,15 @@ describe('dependency cache', () => { | ||||
|         expect(spyInfo).toBeCalledWith('gradle cache is not found'); | ||||
|       }); | ||||
|     }); | ||||
|     it('downloads cache based on buildSrc/Versions.kt', async () => { | ||||
|       createDirectory(join(workspace, 'buildSrc')); | ||||
|       createFile(join(workspace, 'buildSrc', 'Versions.kt')); | ||||
|  | ||||
|       await restore('gradle'); | ||||
|       expect(spyCacheRestore).toBeCalled(); | ||||
|       expect(spyWarning).not.toBeCalled(); | ||||
|       expect(spyInfo).toBeCalledWith('gradle cache is not found'); | ||||
|     }); | ||||
|     describe('for sbt', () => { | ||||
|       it('throws error if no build.sbt found', async () => { | ||||
|         await expect(restore('sbt')).rejects.toThrowError( | ||||
| @ -226,6 +235,16 @@ describe('dependency cache', () => { | ||||
|         createFile(join(workspace, 'build.gradle.kts')); | ||||
|         createStateForSuccessfulRestore(); | ||||
|  | ||||
|         await save('gradle'); | ||||
|         expect(spyCacheSave).toBeCalled(); | ||||
|         expect(spyWarning).not.toBeCalled(); | ||||
|         expect(spyInfo).toBeCalledWith(expect.stringMatching(/^Cache saved with the key:.*/)); | ||||
|       }); | ||||
|       it('uploads cache based on buildSrc/Versions.kt', async () => { | ||||
|         createDirectory(join(workspace, 'buildSrc')); | ||||
|         createFile(join(workspace, 'buildSrc', 'Versions.kt')); | ||||
|         createStateForSuccessfulRestore(); | ||||
|  | ||||
|         await save('gradle'); | ||||
|         expect(spyCacheSave).toBeCalled(); | ||||
|         expect(spyWarning).not.toBeCalled(); | ||||
| @ -298,6 +317,11 @@ function createFile(path: string) { | ||||
|   fs.writeFileSync(path, ''); | ||||
| } | ||||
|  | ||||
| function createDirectory(path: string) { | ||||
|   core.info(`created a directory at ${path}`); | ||||
|   fs.mkdirSync(path); | ||||
| } | ||||
|  | ||||
| function projectRoot(workspace: string): string { | ||||
|   if (os.platform() === 'darwin') { | ||||
|     return `/private${workspace}`; | ||||
|  | ||||
							
								
								
									
										7
									
								
								dist/cleanup/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								dist/cleanup/index.js
									
									
									
									
										vendored
									
									
								
							| @ -66172,7 +66172,12 @@ const supportedPackageManager = [ | ||||
|         id: 'gradle', | ||||
|         path: [path_1.join(os_1.default.homedir(), '.gradle', 'caches'), path_1.join(os_1.default.homedir(), '.gradle', 'wrapper')], | ||||
|         // https://github.com/actions/cache/blob/0638051e9af2c23d10bb70fa9beffcad6cff9ce3/examples.md#java---gradle
 | ||||
|         pattern: ['**/*.gradle*', '**/gradle-wrapper.properties'] | ||||
|         pattern: [ | ||||
|             '**/*.gradle*', | ||||
|             '**/gradle-wrapper.properties', | ||||
|             'buildSrc/**/Versions.kt', | ||||
|             'buildSrc/**/Dependencies.kt' | ||||
|         ] | ||||
|     }, | ||||
|     { | ||||
|         id: 'sbt', | ||||
|  | ||||
							
								
								
									
										7
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							| @ -101377,7 +101377,12 @@ const supportedPackageManager = [ | ||||
|         id: 'gradle', | ||||
|         path: [path_1.join(os_1.default.homedir(), '.gradle', 'caches'), path_1.join(os_1.default.homedir(), '.gradle', 'wrapper')], | ||||
|         // https://github.com/actions/cache/blob/0638051e9af2c23d10bb70fa9beffcad6cff9ce3/examples.md#java---gradle
 | ||||
|         pattern: ['**/*.gradle*', '**/gradle-wrapper.properties'] | ||||
|         pattern: [ | ||||
|             '**/*.gradle*', | ||||
|             '**/gradle-wrapper.properties', | ||||
|             'buildSrc/**/Versions.kt', | ||||
|             'buildSrc/**/Dependencies.kt' | ||||
|         ] | ||||
|     }, | ||||
|     { | ||||
|         id: 'sbt', | ||||
|  | ||||
| @ -31,7 +31,12 @@ const supportedPackageManager: PackageManager[] = [ | ||||
|     id: 'gradle', | ||||
|     path: [join(os.homedir(), '.gradle', 'caches'), join(os.homedir(), '.gradle', 'wrapper')], | ||||
|     // https://github.com/actions/cache/blob/0638051e9af2c23d10bb70fa9beffcad6cff9ce3/examples.md#java---gradle | ||||
|     pattern: ['**/*.gradle*', '**/gradle-wrapper.properties'] | ||||
|     pattern: [ | ||||
|       '**/*.gradle*', | ||||
|       '**/gradle-wrapper.properties', | ||||
|       'buildSrc/**/Versions.kt', | ||||
|       'buildSrc/**/Dependencies.kt' | ||||
|     ] | ||||
|   }, | ||||
|   { | ||||
|     id: 'sbt', | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Marko Zivic
					Marko Zivic