mirror of
				https://github.com/actions/cache.git
				synced 2025-11-04 05:19:10 +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