Merge pull request #1 from schuenadel/include-buildSrc-in-cache-key
Include *.kt files in buildSrc in cache key
This commit is contained in:
		
						commit
						ca584e7011
					
				| @ -67,7 +67,7 @@ Currently, the following distributions are supported: | |||||||
| 
 | 
 | ||||||
| ### Caching packages dependencies | ### 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 and maven. The format of the used cache key is `setup-java-${{ platform }}-${{ packageManager }}-${{ fileHash }}`, where the hash is based on the following files: | 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 and maven. 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/**/*.kt` | ||||||
| - maven: `**/pom.xml` | - maven: `**/pom.xml` | ||||||
| 
 | 
 | ||||||
| The cache input is optional, and caching is turned off by default. | The cache input is optional, and caching is turned off by default. | ||||||
|  | |||||||
| @ -98,7 +98,7 @@ describe('dependency cache', () => { | |||||||
|         await expect(restore('gradle')).rejects.toThrowError( |         await expect(restore('gradle')).rejects.toThrowError( | ||||||
|           `No file in ${projectRoot( |           `No file in ${projectRoot( | ||||||
|             workspace |             workspace | ||||||
|           )} matched to [**/*.gradle*,**/gradle-wrapper.properties], make sure you have checked out the target repository` |           )} matched to [**/*.gradle*,**/gradle-wrapper.properties,buildSrc/**/*.kt], make sure you have checked out the target repository` | ||||||
|         ); |         ); | ||||||
|       }); |       }); | ||||||
|       it('downloads cache based on build.gradle', async () => { |       it('downloads cache based on build.gradle', async () => { | ||||||
| @ -118,6 +118,15 @@ describe('dependency cache', () => { | |||||||
|         expect(spyInfo).toBeCalledWith('gradle cache is not found'); |         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('save', () => { |   describe('save', () => { | ||||||
|     let spyCacheSave: jest.SpyInstance< |     let spyCacheSave: jest.SpyInstance< | ||||||
| @ -188,6 +197,16 @@ describe('dependency cache', () => { | |||||||
|         createFile(join(workspace, 'build.gradle.kts')); |         createFile(join(workspace, 'build.gradle.kts')); | ||||||
|         createStateForSuccessfulRestore(); |         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'); |         await save('gradle'); | ||||||
|         expect(spyCacheSave).toBeCalled(); |         expect(spyCacheSave).toBeCalled(); | ||||||
|         expect(spyWarning).not.toBeCalled(); |         expect(spyWarning).not.toBeCalled(); | ||||||
| @ -236,6 +255,11 @@ function createFile(path: string) { | |||||||
|   fs.writeFileSync(path, ''); |   fs.writeFileSync(path, ''); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | function createDirectory(path: string) { | ||||||
|  |   core.info(`created a directory at ${path}`); | ||||||
|  |   fs.mkdirSync(path); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| function projectRoot(workspace: string): string { | function projectRoot(workspace: string): string { | ||||||
|   if (os.platform() === 'darwin') { |   if (os.platform() === 'darwin') { | ||||||
|     return `/private${workspace}`; |     return `/private${workspace}`; | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								dist/cleanup/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/cleanup/index.js
									
									
									
									
										vendored
									
									
								
							| @ -61833,7 +61833,7 @@ const supportedPackageManager = [ | |||||||
|         id: 'gradle', |         id: 'gradle', | ||||||
|         path: [path_1.join(os_1.default.homedir(), '.gradle', 'caches'), path_1.join(os_1.default.homedir(), '.gradle', 'wrapper')], |         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
 |         // https://github.com/actions/cache/blob/0638051e9af2c23d10bb70fa9beffcad6cff9ce3/examples.md#java---gradle
 | ||||||
|         pattern: ['**/*.gradle*', '**/gradle-wrapper.properties'] |         pattern: ['**/*.gradle*', '**/gradle-wrapper.properties', 'buildSrc/**/*.kt'] | ||||||
|     } |     } | ||||||
| ]; | ]; | ||||||
| function findPackageManager(id) { | function findPackageManager(id) { | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							| @ -18624,7 +18624,7 @@ const supportedPackageManager = [ | |||||||
|         id: 'gradle', |         id: 'gradle', | ||||||
|         path: [path_1.join(os_1.default.homedir(), '.gradle', 'caches'), path_1.join(os_1.default.homedir(), '.gradle', 'wrapper')], |         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
 |         // https://github.com/actions/cache/blob/0638051e9af2c23d10bb70fa9beffcad6cff9ce3/examples.md#java---gradle
 | ||||||
|         pattern: ['**/*.gradle*', '**/gradle-wrapper.properties'] |         pattern: ['**/*.gradle*', '**/gradle-wrapper.properties', 'buildSrc/**/*.kt'] | ||||||
|     } |     } | ||||||
| ]; | ]; | ||||||
| function findPackageManager(id) { | function findPackageManager(id) { | ||||||
|  | |||||||
| @ -31,7 +31,7 @@ const supportedPackageManager: PackageManager[] = [ | |||||||
|     id: 'gradle', |     id: 'gradle', | ||||||
|     path: [join(os.homedir(), '.gradle', 'caches'), join(os.homedir(), '.gradle', 'wrapper')], |     path: [join(os.homedir(), '.gradle', 'caches'), join(os.homedir(), '.gradle', 'wrapper')], | ||||||
|     // https://github.com/actions/cache/blob/0638051e9af2c23d10bb70fa9beffcad6cff9ce3/examples.md#java---gradle
 |     // https://github.com/actions/cache/blob/0638051e9af2c23d10bb70fa9beffcad6cff9ce3/examples.md#java---gradle
 | ||||||
|     pattern: ['**/*.gradle*', '**/gradle-wrapper.properties'] |     pattern: ['**/*.gradle*', '**/gradle-wrapper.properties', 'buildSrc/**/*.kt'] | ||||||
|   } |   } | ||||||
| ]; | ]; | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user