mirror of https://github.com/actions/cache.git
				
				
				
			No-op on GHES
This commit is contained in:
		
							parent
							
								
									eed9cfe64d
								
							
						
					
					
						commit
						4d604c6cce
					
				| 
						 | 
					@ -53,6 +53,30 @@ test("restore with invalid event outputs warning", async () => {
 | 
				
			||||||
    expect(failedMock).toHaveBeenCalledTimes(0);
 | 
					    expect(failedMock).toHaveBeenCalledTimes(0);
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test("restore on GHES should no-op", async () => {
 | 
				
			||||||
 | 
					    try {
 | 
				
			||||||
 | 
					        process.env["GITHUB_SERVER_URL"] = "http://example.com";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        const infoMock = jest.spyOn(core, "info");
 | 
				
			||||||
 | 
					        const restoreCacheMock = jest.spyOn(cache, "restoreCache");
 | 
				
			||||||
 | 
					        const setCacheHitOutputMock = jest.spyOn(
 | 
				
			||||||
 | 
					            actionUtils,
 | 
				
			||||||
 | 
					            "setCacheHitOutput"
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        await run();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        expect(restoreCacheMock).toHaveBeenCalledTimes(0);
 | 
				
			||||||
 | 
					        expect(setCacheHitOutputMock).toHaveBeenCalledTimes(1);
 | 
				
			||||||
 | 
					        expect(setCacheHitOutputMock).toHaveBeenCalledWith(false);
 | 
				
			||||||
 | 
					        expect(infoMock).toHaveBeenCalledWith(
 | 
				
			||||||
 | 
					            "Cache action is not supported on GHES"
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					    } finally {
 | 
				
			||||||
 | 
					        process.env["GITHUB_SERVER_URL"] = undefined;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
test("restore with no path should fail", async () => {
 | 
					test("restore with no path should fail", async () => {
 | 
				
			||||||
    const failedMock = jest.spyOn(core, "setFailed");
 | 
					    const failedMock = jest.spyOn(core, "setFailed");
 | 
				
			||||||
    const restoreCacheMock = jest.spyOn(cache, "restoreCache");
 | 
					    const restoreCacheMock = jest.spyOn(cache, "restoreCache");
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -91,6 +91,24 @@ test("save with no primary key in state outputs warning", async () => {
 | 
				
			||||||
    expect(failedMock).toHaveBeenCalledTimes(0);
 | 
					    expect(failedMock).toHaveBeenCalledTimes(0);
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test("save on GHES should no-op", async () => {
 | 
				
			||||||
 | 
					    try {
 | 
				
			||||||
 | 
					        process.env["GITHUB_SERVER_URL"] = "http://example.com";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        const infoMock = jest.spyOn(core, "info");
 | 
				
			||||||
 | 
					        const saveCacheMock = jest.spyOn(cache, "saveCache");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        await run();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        expect(saveCacheMock).toHaveBeenCalledTimes(0);
 | 
				
			||||||
 | 
					        expect(infoMock).toHaveBeenCalledWith(
 | 
				
			||||||
 | 
					            "Cache action is not supported on GHES"
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					    } finally {
 | 
				
			||||||
 | 
					        process.env["GITHUB_SERVER_URL"] = undefined;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
test("save with exact match returns early", async () => {
 | 
					test("save with exact match returns early", async () => {
 | 
				
			||||||
    const infoMock = jest.spyOn(core, "info");
 | 
					    const infoMock = jest.spyOn(core, "info");
 | 
				
			||||||
    const failedMock = jest.spyOn(core, "setFailed");
 | 
					    const failedMock = jest.spyOn(core, "setFailed");
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,6 +6,12 @@ import * as utils from "./utils/actionUtils";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
async function run(): Promise<void> {
 | 
					async function run(): Promise<void> {
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
 | 
					        if (utils.isGhes()) {
 | 
				
			||||||
 | 
					            core.info("Cache action is not supported on GHES");
 | 
				
			||||||
 | 
					            utils.setCacheHitOutput(false);
 | 
				
			||||||
 | 
					            return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Validate inputs, this can cause task failure
 | 
					        // Validate inputs, this can cause task failure
 | 
				
			||||||
        if (!utils.isValidEvent()) {
 | 
					        if (!utils.isValidEvent()) {
 | 
				
			||||||
            utils.logWarning(
 | 
					            utils.logWarning(
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,6 +6,11 @@ import * as utils from "./utils/actionUtils";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
async function run(): Promise<void> {
 | 
					async function run(): Promise<void> {
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
 | 
					        if (utils.isGhes()) {
 | 
				
			||||||
 | 
					            core.info("Cache action is not supported on GHES");
 | 
				
			||||||
 | 
					            return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (!utils.isValidEvent()) {
 | 
					        if (!utils.isValidEvent()) {
 | 
				
			||||||
            utils.logWarning(
 | 
					            utils.logWarning(
 | 
				
			||||||
                `Event Validation Error: The event type ${
 | 
					                `Event Validation Error: The event type ${
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,6 +2,13 @@ import * as core from "@actions/core";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { Outputs, RefKey, State } from "../constants";
 | 
					import { Outputs, RefKey, State } from "../constants";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export function isGhes(): boolean {
 | 
				
			||||||
 | 
					    const ghUrl = new URL(
 | 
				
			||||||
 | 
					        process.env["GITHUB_SERVER_URL"] || "https://github.com"
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					    return ghUrl.hostname.toUpperCase() !== "GITHUB.COM";
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export function isExactKeyMatch(key: string, cacheKey?: string): boolean {
 | 
					export function isExactKeyMatch(key: string, cacheKey?: string): boolean {
 | 
				
			||||||
    return !!(
 | 
					    return !!(
 | 
				
			||||||
        cacheKey &&
 | 
					        cacheKey &&
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue