mirror of
				https://github.com/actions/cache.git
				synced 2025-11-01 02:44:18 +08:00 
			
		
		
		
	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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Dave Hadka
						Dave Hadka