mirror of
				https://github.com/actions/cache.git
				synced 2025-10-31 07:16:24 +07: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 | ### Outputs | ||||||
|  |  | ||||||
| * `cache-hit` - A boolean value to indicate an exact match was found for the key. | * `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`. | ||||||
|     > **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`. |   * 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 | See [Skipping steps based on cache-hit](#skipping-steps-based-on-cache-hit) for info on using this output | ||||||
|  |  | ||||||
|  | |||||||
| @ -1,5 +1,8 @@ | |||||||
| # Releases | # Releases | ||||||
|  |  | ||||||
|  | ### 4.1.1 | ||||||
|  | - Restore original behavior of `cache-hit` output - [#1467](https://github.com/actions/cache/pull/1467) | ||||||
|  |  | ||||||
| ### 4.1.0 | ### 4.1.0 | ||||||
| - Ensure `cache-hit` output is set when a cache is missed - [#1404](https://github.com/actions/cache/pull/1404) | - 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) | - 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(stateMock).toHaveBeenCalledWith("CACHE_KEY", key); | ||||||
|     expect(setCacheHitOutputMock).toHaveBeenCalledTimes(1); |     expect(setCacheHitOutputMock).toHaveBeenCalledTimes(0); | ||||||
|  |  | ||||||
|     expect(failedMock).toHaveBeenCalledWith( |     expect(failedMock).toHaveBeenCalledWith( | ||||||
|         `Failed to restore cache entry. Exiting as fail-on-cache-miss is set. Input key: ${key}` |         `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-primary-key", key); | ||||||
|     expect(outputMock).toHaveBeenCalledWith("cache-hit", "false"); |     expect(outputMock).toHaveBeenCalledTimes(1); | ||||||
|     expect(outputMock).toHaveBeenCalledTimes(2); |  | ||||||
|     expect(failedMock).toHaveBeenCalledTimes(0); |     expect(failedMock).toHaveBeenCalledTimes(0); | ||||||
|  |  | ||||||
|     expect(infoMock).toHaveBeenCalledWith( |     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 lookupOnly = utils.getInputAsBool(constants_1.Inputs.LookupOnly); | ||||||
|             const cacheKey = yield cache.restoreCache(cachePaths, primaryKey, restoreKeys, { lookupOnly: lookupOnly }, enableCrossOsArchive); |             const cacheKey = yield cache.restoreCache(cachePaths, primaryKey, restoreKeys, { lookupOnly: lookupOnly }, enableCrossOsArchive); | ||||||
|             if (!cacheKey) { |             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) { |                 if (failOnCacheMiss) { | ||||||
|                     throw new Error(`Failed to restore cache entry. Exiting as fail-on-cache-miss is set. Input key: ${primaryKey}`); |                     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 lookupOnly = utils.getInputAsBool(constants_1.Inputs.LookupOnly); | ||||||
|             const cacheKey = yield cache.restoreCache(cachePaths, primaryKey, restoreKeys, { lookupOnly: lookupOnly }, enableCrossOsArchive); |             const cacheKey = yield cache.restoreCache(cachePaths, primaryKey, restoreKeys, { lookupOnly: lookupOnly }, enableCrossOsArchive); | ||||||
|             if (!cacheKey) { |             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) { |                 if (failOnCacheMiss) { | ||||||
|                     throw new Error(`Failed to restore cache entry. Exiting as fail-on-cache-miss is set. Input key: ${primaryKey}`); |                     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", |   "name": "cache", | ||||||
|   "version": "4.1.0", |   "version": "4.1.1", | ||||||
|   "lockfileVersion": 2, |   "lockfileVersion": 2, | ||||||
|   "requires": true, |   "requires": true, | ||||||
|   "packages": { |   "packages": { | ||||||
|     "": { |     "": { | ||||||
|       "name": "cache", |       "name": "cache", | ||||||
|       "version": "4.1.0", |       "version": "4.1.1", | ||||||
|       "license": "MIT", |       "license": "MIT", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@actions/cache": "^3.2.3", |         "@actions/cache": "^3.2.3", | ||||||
|  | |||||||
| @ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "name": "cache", |   "name": "cache", | ||||||
|   "version": "4.1.0", |   "version": "4.1.1", | ||||||
|   "private": true, |   "private": true, | ||||||
|   "description": "Cache dependencies and build outputs", |   "description": "Cache dependencies and build outputs", | ||||||
|   "main": "dist/restore/index.js", |   "main": "dist/restore/index.js", | ||||||
|  | |||||||
| @ -51,7 +51,9 @@ export async function restoreImpl( | |||||||
|         ); |         ); | ||||||
|  |  | ||||||
|         if (!cacheKey) { |         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) { |             if (failOnCacheMiss) { | ||||||
|                 throw new Error( |                 throw new Error( | ||||||
|                     `Failed to restore cache entry. Exiting as fail-on-cache-miss is set. Input key: ${primaryKey}` |                     `Failed to restore cache entry. Exiting as fail-on-cache-miss is set. Input key: ${primaryKey}` | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	 Josh Gross
					Josh Gross