mirror of
				https://github.com/actions/cache.git
				synced 2025-11-04 07:38:37 +08:00 
			
		
		
		
	Merge pull request #1327 from cdce8p/fix-fail-on-cache-miss
Fix `fail-on-cache-miss` not working
This commit is contained in:
		
						commit
						0c45773b62
					
				| 
						 | 
				
			
			@ -1,5 +1,9 @@
 | 
			
		|||
# Releases
 | 
			
		||||
 | 
			
		||||
### 4.0.2
 | 
			
		||||
 | 
			
		||||
- Fixed restore `fail-on-cache-miss` not working.
 | 
			
		||||
 | 
			
		||||
### 4.0.1
 | 
			
		||||
 | 
			
		||||
- Updated `isGhes` check
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -449,3 +449,19 @@ test("restore with lookup-only set", async () => {
 | 
			
		|||
    );
 | 
			
		||||
    expect(failedMock).toHaveBeenCalledTimes(0);
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
test("restore failure with earlyExit should call process exit", async () => {
 | 
			
		||||
    testUtils.setInput(Inputs.Path, "node_modules");
 | 
			
		||||
    const failedMock = jest.spyOn(core, "setFailed");
 | 
			
		||||
    const restoreCacheMock = jest.spyOn(cache, "restoreCache");
 | 
			
		||||
    const processExitMock = jest.spyOn(process, "exit").mockImplementation();
 | 
			
		||||
 | 
			
		||||
    // call restoreImpl with `earlyExit` set to true
 | 
			
		||||
    await restoreImpl(new StateProvider(), true);
 | 
			
		||||
 | 
			
		||||
    expect(restoreCacheMock).toHaveBeenCalledTimes(0);
 | 
			
		||||
    expect(failedMock).toHaveBeenCalledWith(
 | 
			
		||||
        "Input required and not supplied: key"
 | 
			
		||||
    );
 | 
			
		||||
    expect(processExitMock).toHaveBeenCalledWith(1);
 | 
			
		||||
});
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										15
									
								
								dist/restore-only/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								dist/restore-only/index.js
									
									
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -59392,7 +59392,7 @@ const core = __importStar(__nccwpck_require__(2186));
 | 
			
		|||
const constants_1 = __nccwpck_require__(9042);
 | 
			
		||||
const stateProvider_1 = __nccwpck_require__(1527);
 | 
			
		||||
const utils = __importStar(__nccwpck_require__(6850));
 | 
			
		||||
function restoreImpl(stateProvider) {
 | 
			
		||||
function restoreImpl(stateProvider, earlyExit) {
 | 
			
		||||
    return __awaiter(this, void 0, void 0, function* () {
 | 
			
		||||
        try {
 | 
			
		||||
            if (!utils.isCacheFeatureAvailable()) {
 | 
			
		||||
| 
						 | 
				
			
			@ -59438,21 +59438,16 @@ function restoreImpl(stateProvider) {
 | 
			
		|||
        }
 | 
			
		||||
        catch (error) {
 | 
			
		||||
            core.setFailed(error.message);
 | 
			
		||||
            if (earlyExit) {
 | 
			
		||||
                process.exit(1);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
exports.restoreImpl = restoreImpl;
 | 
			
		||||
function run(stateProvider, earlyExit) {
 | 
			
		||||
    return __awaiter(this, void 0, void 0, function* () {
 | 
			
		||||
        try {
 | 
			
		||||
            yield restoreImpl(stateProvider);
 | 
			
		||||
        }
 | 
			
		||||
        catch (err) {
 | 
			
		||||
            console.error(err);
 | 
			
		||||
            if (earlyExit) {
 | 
			
		||||
                process.exit(1);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        yield restoreImpl(stateProvider, earlyExit);
 | 
			
		||||
        // node will stay alive if any promises are not resolved,
 | 
			
		||||
        // which is a possibility if HTTP requests are dangling
 | 
			
		||||
        // due to retries or timeouts. We know that if we got here
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										15
									
								
								dist/restore/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								dist/restore/index.js
									
									
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -59392,7 +59392,7 @@ const core = __importStar(__nccwpck_require__(2186));
 | 
			
		|||
const constants_1 = __nccwpck_require__(9042);
 | 
			
		||||
const stateProvider_1 = __nccwpck_require__(1527);
 | 
			
		||||
const utils = __importStar(__nccwpck_require__(6850));
 | 
			
		||||
function restoreImpl(stateProvider) {
 | 
			
		||||
function restoreImpl(stateProvider, earlyExit) {
 | 
			
		||||
    return __awaiter(this, void 0, void 0, function* () {
 | 
			
		||||
        try {
 | 
			
		||||
            if (!utils.isCacheFeatureAvailable()) {
 | 
			
		||||
| 
						 | 
				
			
			@ -59438,21 +59438,16 @@ function restoreImpl(stateProvider) {
 | 
			
		|||
        }
 | 
			
		||||
        catch (error) {
 | 
			
		||||
            core.setFailed(error.message);
 | 
			
		||||
            if (earlyExit) {
 | 
			
		||||
                process.exit(1);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
exports.restoreImpl = restoreImpl;
 | 
			
		||||
function run(stateProvider, earlyExit) {
 | 
			
		||||
    return __awaiter(this, void 0, void 0, function* () {
 | 
			
		||||
        try {
 | 
			
		||||
            yield restoreImpl(stateProvider);
 | 
			
		||||
        }
 | 
			
		||||
        catch (err) {
 | 
			
		||||
            console.error(err);
 | 
			
		||||
            if (earlyExit) {
 | 
			
		||||
                process.exit(1);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        yield restoreImpl(stateProvider, earlyExit);
 | 
			
		||||
        // node will stay alive if any promises are not resolved,
 | 
			
		||||
        // which is a possibility if HTTP requests are dangling
 | 
			
		||||
        // due to retries or timeouts. We know that if we got here
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										4
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										4
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| 
						 | 
				
			
			@ -1,12 +1,12 @@
 | 
			
		|||
{
 | 
			
		||||
  "name": "cache",
 | 
			
		||||
  "version": "4.0.1",
 | 
			
		||||
  "version": "4.0.2",
 | 
			
		||||
  "lockfileVersion": 2,
 | 
			
		||||
  "requires": true,
 | 
			
		||||
  "packages": {
 | 
			
		||||
    "": {
 | 
			
		||||
      "name": "cache",
 | 
			
		||||
      "version": "4.0.1",
 | 
			
		||||
      "version": "4.0.2",
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@actions/cache": "^3.2.3",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,6 @@
 | 
			
		|||
{
 | 
			
		||||
  "name": "cache",
 | 
			
		||||
  "version": "4.0.1",
 | 
			
		||||
  "version": "4.0.2",
 | 
			
		||||
  "private": true,
 | 
			
		||||
  "description": "Cache dependencies and build outputs",
 | 
			
		||||
  "main": "dist/restore/index.js",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,7 +10,8 @@ import {
 | 
			
		|||
import * as utils from "./utils/actionUtils";
 | 
			
		||||
 | 
			
		||||
export async function restoreImpl(
 | 
			
		||||
    stateProvider: IStateProvider
 | 
			
		||||
    stateProvider: IStateProvider,
 | 
			
		||||
    earlyExit?: boolean | undefined
 | 
			
		||||
): Promise<string | undefined> {
 | 
			
		||||
    try {
 | 
			
		||||
        if (!utils.isCacheFeatureAvailable()) {
 | 
			
		||||
| 
						 | 
				
			
			@ -83,6 +84,9 @@ export async function restoreImpl(
 | 
			
		|||
        return cacheKey;
 | 
			
		||||
    } catch (error: unknown) {
 | 
			
		||||
        core.setFailed((error as Error).message);
 | 
			
		||||
        if (earlyExit) {
 | 
			
		||||
            process.exit(1);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -90,14 +94,7 @@ async function run(
 | 
			
		|||
    stateProvider: IStateProvider,
 | 
			
		||||
    earlyExit: boolean | undefined
 | 
			
		||||
): Promise<void> {
 | 
			
		||||
    try {
 | 
			
		||||
        await restoreImpl(stateProvider);
 | 
			
		||||
    } catch (err) {
 | 
			
		||||
        console.error(err);
 | 
			
		||||
        if (earlyExit) {
 | 
			
		||||
            process.exit(1);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    await restoreImpl(stateProvider, earlyExit);
 | 
			
		||||
 | 
			
		||||
    // node will stay alive if any promises are not resolved,
 | 
			
		||||
    // which is a possibility if HTTP requests are dangling
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user