mirror of
				https://github.com/actions/cache.git
				synced 2025-10-23 08:56:26 +08:00 
			
		
		
		
	Restore original behavior of cache-hit output (#1467)
				
					
				
			* Restore original behavior of `cache-hit` output * Bump version to 4.1.1
This commit is contained in:
		| @@ -64,9 +64,9 @@ If you are using a `self-hosted` Windows runner, `GNU tar` and `zstd` are requir | ||||
|  | ||||
| ### Outputs | ||||
|  | ||||
| * `cache-hit` - A boolean value to indicate an exact match was found for the key. | ||||
|  | ||||
|     > **Note** `cache-hit` will only be set to `true` when a cache hit occurs for the exact `key` match. For a partial key match via `restore-keys` or a cache miss, it will be set to `false`. | ||||
| * `cache-hit` - A string value to indicate an exact match was found for the key. | ||||
|   * If there's a cache hit, this will be 'true' or 'false' to indicate if there's an exact match for `key`. | ||||
|   * If there's a cache miss, this will be an empty string. | ||||
|  | ||||
| See [Skipping steps based on cache-hit](#skipping-steps-based-on-cache-hit) for info on using this output | ||||
|  | ||||
|   | ||||
| @@ -1,5 +1,8 @@ | ||||
| # Releases | ||||
|  | ||||
| ### 4.1.1 | ||||
| - Restore original behavior of `cache-hit` output - [#1467](https://github.com/actions/cache/pull/1467) | ||||
|  | ||||
| ### 4.1.0 | ||||
| - Ensure `cache-hit` output is set when a cache is missed - [#1404](https://github.com/actions/cache/pull/1404) | ||||
| - Deprecate `save-always` input - [#1452](https://github.com/actions/cache/pull/1452) | ||||
|   | ||||
| @@ -260,7 +260,7 @@ test("Fail restore when fail on cache miss is enabled and primary + restore keys | ||||
|     ); | ||||
|  | ||||
|     expect(stateMock).toHaveBeenCalledWith("CACHE_KEY", key); | ||||
|     expect(setCacheHitOutputMock).toHaveBeenCalledTimes(1); | ||||
|     expect(setCacheHitOutputMock).toHaveBeenCalledTimes(0); | ||||
|  | ||||
|     expect(failedMock).toHaveBeenCalledWith( | ||||
|         `Failed to restore cache entry. Exiting as fail-on-cache-miss is set. Input key: ${key}` | ||||
|   | ||||
| @@ -86,8 +86,7 @@ test("restore with no cache found", async () => { | ||||
|     ); | ||||
|  | ||||
|     expect(outputMock).toHaveBeenCalledWith("cache-primary-key", key); | ||||
|     expect(outputMock).toHaveBeenCalledWith("cache-hit", "false"); | ||||
|     expect(outputMock).toHaveBeenCalledTimes(2); | ||||
|     expect(outputMock).toHaveBeenCalledTimes(1); | ||||
|     expect(failedMock).toHaveBeenCalledTimes(0); | ||||
|  | ||||
|     expect(infoMock).toHaveBeenCalledWith( | ||||
|   | ||||
							
								
								
									
										3
									
								
								dist/restore-only/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								dist/restore-only/index.js
									
									
									
									
										vendored
									
									
								
							| @@ -59415,7 +59415,8 @@ function restoreImpl(stateProvider, earlyExit) { | ||||
|             const lookupOnly = utils.getInputAsBool(constants_1.Inputs.LookupOnly); | ||||
|             const cacheKey = yield cache.restoreCache(cachePaths, primaryKey, restoreKeys, { lookupOnly: lookupOnly }, enableCrossOsArchive); | ||||
|             if (!cacheKey) { | ||||
|                 core.setOutput(constants_1.Outputs.CacheHit, false.toString()); | ||||
|                 // `cache-hit` is intentionally not set to `false` here to preserve existing behavior
 | ||||
|                 // See https://github.com/actions/cache/issues/1466
 | ||||
|                 if (failOnCacheMiss) { | ||||
|                     throw new Error(`Failed to restore cache entry. Exiting as fail-on-cache-miss is set. Input key: ${primaryKey}`); | ||||
|                 } | ||||
|   | ||||
							
								
								
									
										3
									
								
								dist/restore/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								dist/restore/index.js
									
									
									
									
										vendored
									
									
								
							| @@ -59415,7 +59415,8 @@ function restoreImpl(stateProvider, earlyExit) { | ||||
|             const lookupOnly = utils.getInputAsBool(constants_1.Inputs.LookupOnly); | ||||
|             const cacheKey = yield cache.restoreCache(cachePaths, primaryKey, restoreKeys, { lookupOnly: lookupOnly }, enableCrossOsArchive); | ||||
|             if (!cacheKey) { | ||||
|                 core.setOutput(constants_1.Outputs.CacheHit, false.toString()); | ||||
|                 // `cache-hit` is intentionally not set to `false` here to preserve existing behavior
 | ||||
|                 // See https://github.com/actions/cache/issues/1466
 | ||||
|                 if (failOnCacheMiss) { | ||||
|                     throw new Error(`Failed to restore cache entry. Exiting as fail-on-cache-miss is set. Input key: ${primaryKey}`); | ||||
|                 } | ||||
|   | ||||
							
								
								
									
										4
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										4
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @@ -1,12 +1,12 @@ | ||||
| { | ||||
|   "name": "cache", | ||||
|   "version": "4.1.0", | ||||
|   "version": "4.1.1", | ||||
|   "lockfileVersion": 2, | ||||
|   "requires": true, | ||||
|   "packages": { | ||||
|     "": { | ||||
|       "name": "cache", | ||||
|       "version": "4.1.0", | ||||
|       "version": "4.1.1", | ||||
|       "license": "MIT", | ||||
|       "dependencies": { | ||||
|         "@actions/cache": "^3.2.3", | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| { | ||||
|   "name": "cache", | ||||
|   "version": "4.1.0", | ||||
|   "version": "4.1.1", | ||||
|   "private": true, | ||||
|   "description": "Cache dependencies and build outputs", | ||||
|   "main": "dist/restore/index.js", | ||||
|   | ||||
| @@ -51,7 +51,9 @@ export async function restoreImpl( | ||||
|         ); | ||||
|  | ||||
|         if (!cacheKey) { | ||||
|             core.setOutput(Outputs.CacheHit, false.toString()); | ||||
|             // `cache-hit` is intentionally not set to `false` here to preserve existing behavior | ||||
|             // See https://github.com/actions/cache/issues/1466 | ||||
|  | ||||
|             if (failOnCacheMiss) { | ||||
|                 throw new Error( | ||||
|                     `Failed to restore cache entry. Exiting as fail-on-cache-miss is set. Input key: ${primaryKey}` | ||||
|   | ||||
		Reference in New Issue
	
	Block a user