fix sbt/scala cache key (#478)
This commit is contained in:
		| @ -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: | ||||
| - gradle: `**/*.gradle*`, `**/gradle-wrapper.properties`, `buildSrc/**/Versions.kt`, `buildSrc/**/Dependencies.kt`, and `gradle/*.versions.toml` | ||||
| - 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). | ||||
|  | ||||
|  | ||||
| @ -145,7 +145,7 @@ describe('dependency cache', () => { | ||||
|         await expect(restore('sbt')).rejects.toThrow( | ||||
|           `No file in ${projectRoot( | ||||
|             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 () => { | ||||
| @ -156,6 +156,28 @@ describe('dependency cache', () => { | ||||
|         expect(spyWarning).not.toHaveBeenCalled(); | ||||
|         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', () => { | ||||
|  | ||||
							
								
								
									
										3
									
								
								dist/cleanup/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								dist/cleanup/index.js
									
									
									
									
										vendored
									
									
								
							| @ -68416,7 +68416,8 @@ const supportedPackageManager = [ | ||||
|         pattern: [ | ||||
|             '**/*.sbt', | ||||
|             '**/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: [ | ||||
|             '**/*.sbt', | ||||
|             '**/project/build.properties', | ||||
|             '**/project/**.{scala,sbt}' | ||||
|             '**/project/**.scala', | ||||
|             '**/project/**.sbt' | ||||
|         ] | ||||
|     } | ||||
| ]; | ||||
|  | ||||
| @ -56,7 +56,8 @@ const supportedPackageManager: PackageManager[] = [ | ||||
|     pattern: [ | ||||
|       '**/*.sbt', | ||||
|       '**/project/build.properties', | ||||
|       '**/project/**.{scala,sbt}' | ||||
|       '**/project/**.scala', | ||||
|       '**/project/**.sbt' | ||||
|     ] | ||||
|   } | ||||
| ]; | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Doğaç Eldenk
					Doğaç Eldenk