mirror of
https://code.forgejo.org/actions/cache.git
synced 2024-11-27 14:39:16 +01:00
No-op on GHES
This commit is contained in:
parent
eed9cfe64d
commit
4d604c6cce
5 changed files with 60 additions and 0 deletions
|
@ -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 a new issue