fix sbt/scala cache key (#478)
This commit is contained in:
		
							parent
							
								
									191ba8c6ba
								
							
						
					
					
						commit
						404e5db3a1
					
				| @ -116,7 +116,7 @@ Currently, the following distributions are supported: | |||||||
| 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: | 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`, `buildSrc/**/Versions.kt`, `buildSrc/**/Dependencies.kt`, and `gradle/*.versions.toml` | - gradle: `**/*.gradle*`, `**/gradle-wrapper.properties`, `buildSrc/**/Versions.kt`, `buildSrc/**/Dependencies.kt`, and `gradle/*.versions.toml` | ||||||
| - maven: `**/pom.xml` | - maven: `**/pom.xml` | ||||||
| - sbt: all sbt build definition files `**/*.sbt`, `**/project/build.properties`, `**/project/**.{scala,sbt}` | - sbt: all sbt build definition files `**/*.sbt`, `**/project/build.properties`, `**/project/**.scala`, `**/project/**.sbt` | ||||||
| 
 | 
 | ||||||
| The workflow output `cache-hit` is set to indicate if an exact match was found for the key [as actions/cache does](https://github.com/actions/cache/tree/main#outputs). | The workflow output `cache-hit` is set to indicate if an exact match was found for the key [as actions/cache does](https://github.com/actions/cache/tree/main#outputs). | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -145,7 +145,7 @@ describe('dependency cache', () => { | |||||||
|         await expect(restore('sbt')).rejects.toThrow( |         await expect(restore('sbt')).rejects.toThrow( | ||||||
|           `No file in ${projectRoot( |           `No file in ${projectRoot( | ||||||
|             workspace |             workspace | ||||||
|           )} matched to [**/*.sbt,**/project/build.properties,**/project/**.{scala,sbt}], make sure you have checked out the target repository` |           )} matched to [**/*.sbt,**/project/build.properties,**/project/**.scala,**/project/**.sbt], make sure you have checked out the target repository` | ||||||
|         ); |         ); | ||||||
|       }); |       }); | ||||||
|       it('downloads cache', async () => { |       it('downloads cache', async () => { | ||||||
| @ -156,6 +156,28 @@ describe('dependency cache', () => { | |||||||
|         expect(spyWarning).not.toHaveBeenCalled(); |         expect(spyWarning).not.toHaveBeenCalled(); | ||||||
|         expect(spyInfo).toHaveBeenCalledWith('sbt cache is not found'); |         expect(spyInfo).toHaveBeenCalledWith('sbt cache is not found'); | ||||||
|       }); |       }); | ||||||
|  |       it('detects scala and sbt changes under **/project/ folder', async () => { | ||||||
|  |         createFile(join(workspace, 'build.sbt')); | ||||||
|  |         createDirectory(join(workspace, 'project')); | ||||||
|  |         createFile(join(workspace, 'project/DependenciesV1.scala')); | ||||||
|  | 
 | ||||||
|  |         await restore('sbt'); | ||||||
|  |         const firstCall = spySaveState.mock.calls.toString(); | ||||||
|  | 
 | ||||||
|  |         spySaveState.mockClear(); | ||||||
|  |         await restore('sbt'); | ||||||
|  |         const secondCall = spySaveState.mock.calls.toString(); | ||||||
|  | 
 | ||||||
|  |         // Make sure multiple restores produce the same cache
 | ||||||
|  |         expect(firstCall).toBe(secondCall); | ||||||
|  | 
 | ||||||
|  |         spySaveState.mockClear(); | ||||||
|  |         createFile(join(workspace, 'project/DependenciesV2.scala')); | ||||||
|  |         await restore('sbt'); | ||||||
|  |         const thirdCall = spySaveState.mock.calls.toString(); | ||||||
|  | 
 | ||||||
|  |         expect(firstCall).not.toBe(thirdCall); | ||||||
|  |       }); | ||||||
|     }); |     }); | ||||||
|   }); |   }); | ||||||
|   describe('save', () => { |   describe('save', () => { | ||||||
|  | |||||||
							
								
								
									
										3
									
								
								dist/cleanup/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								dist/cleanup/index.js
									
									
									
									
										vendored
									
									
								
							| @ -68416,7 +68416,8 @@ const supportedPackageManager = [ | |||||||
|         pattern: [ |         pattern: [ | ||||||
|             '**/*.sbt', |             '**/*.sbt', | ||||||
|             '**/project/build.properties', |             '**/project/build.properties', | ||||||
|             '**/project/**.{scala,sbt}' |             '**/project/**.scala', | ||||||
|  |             '**/project/**.sbt' | ||||||
|         ] |         ] | ||||||
|     } |     } | ||||||
| ]; | ]; | ||||||
|  | |||||||
							
								
								
									
										3
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							| @ -103621,7 +103621,8 @@ const supportedPackageManager = [ | |||||||
|         pattern: [ |         pattern: [ | ||||||
|             '**/*.sbt', |             '**/*.sbt', | ||||||
|             '**/project/build.properties', |             '**/project/build.properties', | ||||||
|             '**/project/**.{scala,sbt}' |             '**/project/**.scala', | ||||||
|  |             '**/project/**.sbt' | ||||||
|         ] |         ] | ||||||
|     } |     } | ||||||
| ]; | ]; | ||||||
|  | |||||||
| @ -56,7 +56,8 @@ const supportedPackageManager: PackageManager[] = [ | |||||||
|     pattern: [ |     pattern: [ | ||||||
|       '**/*.sbt', |       '**/*.sbt', | ||||||
|       '**/project/build.properties', |       '**/project/build.properties', | ||||||
|       '**/project/**.{scala,sbt}' |       '**/project/**.scala', | ||||||
|  |       '**/project/**.sbt' | ||||||
|     ] |     ] | ||||||
|   } |   } | ||||||
| ]; | ]; | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user