Skip to content

Commit

Permalink
No-op on GHES
Browse files Browse the repository at this point in the history
  • Loading branch information
Dave Hadka committed Sep 29, 2020
1 parent eed9cfe commit 4d604c6
Show file tree
Hide file tree
Showing 5 changed files with 60 additions and 0 deletions.
24 changes: 24 additions & 0 deletions __tests__/restore.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,30 @@ test("restore with invalid event outputs warning", async () => {
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 () => {
const failedMock = jest.spyOn(core, "setFailed");
const restoreCacheMock = jest.spyOn(cache, "restoreCache");
Expand Down
18 changes: 18 additions & 0 deletions __tests__/save.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,24 @@ test("save with no primary key in state outputs warning", async () => {
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 () => {
const infoMock = jest.spyOn(core, "info");
const failedMock = jest.spyOn(core, "setFailed");
Expand Down
6 changes: 6 additions & 0 deletions src/restore.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,12 @@ import * as utils from "./utils/actionUtils";

async function run(): Promise<void> {
try {
if (utils.isGhes()) {
core.info("Cache action is not supported on GHES");
utils.setCacheHitOutput(false);
return;
}

// Validate inputs, this can cause task failure
if (!utils.isValidEvent()) {
utils.logWarning(
Expand Down
5 changes: 5 additions & 0 deletions src/save.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@ import * as utils from "./utils/actionUtils";

async function run(): Promise<void> {
try {
if (utils.isGhes()) {
core.info("Cache action is not supported on GHES");
return;
}

if (!utils.isValidEvent()) {
utils.logWarning(
`Event Validation Error: The event type ${
Expand Down
7 changes: 7 additions & 0 deletions src/utils/actionUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@ import * as core from "@actions/core";

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 {
return !!(
cacheKey &&
Expand Down

0 comments on commit 4d604c6

Please sign in to comment.