mirror of
				https://gitea.com/actions/cache.git
				synced 2025-10-31 07:47:07 +00:00 
			
		
		
		
	Compare commits
	
		
			3 Commits
		
	
	
		
			v3.0.1
			...
			users/ashw
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 36b2031d81 | ||
|   | 9cab3ca62a | ||
|   | c64a574c65 | 
							
								
								
									
										2
									
								
								.licenses/npm/@actions/cache.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2
									
								
								.licenses/npm/@actions/cache.dep.yml
									
									
									
										generated
									
									
									
								
							| @@ -1,6 +1,6 @@ | |||||||
| --- | --- | ||||||
| name: "@actions/cache" | name: "@actions/cache" | ||||||
| version: 2.0.0 | version: 1.0.10 | ||||||
| type: npm | type: npm | ||||||
| summary:  | summary:  | ||||||
| homepage:  | homepage:  | ||||||
|   | |||||||
							
								
								
									
										14
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								README.md
									
									
									
									
									
								
							| @@ -10,8 +10,6 @@ See ["Caching dependencies to speed up workflows"](https://help.github.com/githu | |||||||
|  |  | ||||||
| ## What's New | ## What's New | ||||||
| ### v3 | ### v3 | ||||||
| * Added support for caching from GHES 3.5. |  | ||||||
| * Fixed download issue for files > 2GB during restore. |  | ||||||
| * Updated the minimum runner version support from node 12 -> node 16. | * Updated the minimum runner version support from node 12 -> node 16. | ||||||
|  |  | ||||||
| ### v2 | ### v2 | ||||||
| @@ -177,6 +175,18 @@ steps: | |||||||
|  |  | ||||||
| > Note: The `id` defined in `actions/cache` must match the `id` in the `if` statement (i.e. `steps.[ID].outputs.cache-hit`) | > Note: The `id` defined in `actions/cache` must match the `id` in the `if` statement (i.e. `steps.[ID].outputs.cache-hit`) | ||||||
|  |  | ||||||
|  | ## Known limitation | ||||||
|  |  | ||||||
|  | - `action/cache` is currently not supported on GitHub Enterprise Server. <https://github.com/github/roadmap/issues/273> is tracking this. | ||||||
|  |  | ||||||
|  | Since GitHub Enterprise Server uses self-hosted runners, dependencies are typically cached on the runner by whatever dependency management tool is being used (npm, maven, etc.).  This eliminates the need for explicit caching in some scenarios. | ||||||
|  |  | ||||||
|  | ## Changelog schedule and history  | ||||||
|  |  | ||||||
|  | | Status  | Version  | Date  | Highlights  | | ||||||
|  | |:---|:---|:---|:---| | ||||||
|  | | Published  | v3.0.0  | Mar 21st, 2022 | -  Updated minimum runner version support from node 12 -> node 16 <br>  | | ||||||
|  |  | ||||||
| ## Contributing | ## Contributing | ||||||
| We would love for you to contribute to `actions/cache`, pull requests are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) for more information. | We would love for you to contribute to `actions/cache`, pull requests are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) for more information. | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,8 +0,0 @@ | |||||||
| # Releases |  | ||||||
|  |  | ||||||
| ### 3.0.0 |  | ||||||
| - Updated minimum runner version support from node 12 -> node 16 |  | ||||||
|  |  | ||||||
| ### 3.0.1 |  | ||||||
| - Added support for caching from GHES 3.5. |  | ||||||
| - Fixed download issue for files > 2GB during restore. |  | ||||||
| @@ -1,4 +1,3 @@ | |||||||
| import * as cache from "@actions/cache"; |  | ||||||
| import * as core from "@actions/core"; | import * as core from "@actions/core"; | ||||||
|  |  | ||||||
| import { Events, Outputs, RefKey, State } from "../src/constants"; | import { Events, Outputs, RefKey, State } from "../src/constants"; | ||||||
| @@ -6,7 +5,6 @@ import * as actionUtils from "../src/utils/actionUtils"; | |||||||
| import * as testUtils from "../src/utils/testUtils"; | import * as testUtils from "../src/utils/testUtils"; | ||||||
|  |  | ||||||
| jest.mock("@actions/core"); | jest.mock("@actions/core"); | ||||||
| jest.mock("@actions/cache"); |  | ||||||
|  |  | ||||||
| beforeAll(() => { | beforeAll(() => { | ||||||
|     jest.spyOn(core, "getInput").mockImplementation((name, options) => { |     jest.spyOn(core, "getInput").mockImplementation((name, options) => { | ||||||
| @@ -234,41 +232,3 @@ test("getInputAsInt throws if required and value missing", () => { | |||||||
|         actionUtils.getInputAsInt("undefined", { required: true }) |         actionUtils.getInputAsInt("undefined", { required: true }) | ||||||
|     ).toThrowError(); |     ).toThrowError(); | ||||||
| }); | }); | ||||||
|  |  | ||||||
| test("isCacheFeatureAvailable for ac enabled", () => { |  | ||||||
|     jest.spyOn(cache, "isFeatureAvailable").mockImplementation(() => true); |  | ||||||
|  |  | ||||||
|     expect(actionUtils.isCacheFeatureAvailable()).toBe(true); |  | ||||||
| }); |  | ||||||
|  |  | ||||||
| test("isCacheFeatureAvailable for ac disabled on GHES", () => { |  | ||||||
|     jest.spyOn(cache, "isFeatureAvailable").mockImplementation(() => false); |  | ||||||
|  |  | ||||||
|     const message = |  | ||||||
|         "Cache action is only supported on GHES version >= 3.5. If you are on version >=3.5 Please check with GHES admin if Actions cache service is enabled or not."; |  | ||||||
|     const infoMock = jest.spyOn(core, "info"); |  | ||||||
|  |  | ||||||
|     try { |  | ||||||
|         process.env["GITHUB_SERVER_URL"] = "http://example.com"; |  | ||||||
|         expect(actionUtils.isCacheFeatureAvailable()).toBe(false); |  | ||||||
|         expect(infoMock).toHaveBeenCalledWith(`[warning]${message}`); |  | ||||||
|     } finally { |  | ||||||
|         delete process.env["GITHUB_SERVER_URL"]; |  | ||||||
|     } |  | ||||||
| }); |  | ||||||
|  |  | ||||||
| test("isCacheFeatureAvailable for ac disabled on dotcom", () => { |  | ||||||
|     jest.spyOn(cache, "isFeatureAvailable").mockImplementation(() => false); |  | ||||||
|  |  | ||||||
|     const message = |  | ||||||
|         "An internal error has occurred in cache backend. Please check https://www.githubstatus.com/ for any ongoing issue in actions."; |  | ||||||
|     const infoMock = jest.spyOn(core, "info"); |  | ||||||
|  |  | ||||||
|     try { |  | ||||||
|         process.env["GITHUB_SERVER_URL"] = "http://github.com"; |  | ||||||
|         expect(actionUtils.isCacheFeatureAvailable()).toBe(false); |  | ||||||
|         expect(infoMock).toHaveBeenCalledWith(`[warning]${message}`); |  | ||||||
|     } finally { |  | ||||||
|         delete process.env["GITHUB_SERVER_URL"]; |  | ||||||
|     } |  | ||||||
| }); |  | ||||||
|   | |||||||
| @@ -34,9 +34,6 @@ beforeEach(() => { | |||||||
|     process.env[RefKey] = "refs/heads/feature-branch"; |     process.env[RefKey] = "refs/heads/feature-branch"; | ||||||
|  |  | ||||||
|     jest.spyOn(actionUtils, "isGhes").mockImplementation(() => false); |     jest.spyOn(actionUtils, "isGhes").mockImplementation(() => false); | ||||||
|     jest.spyOn(actionUtils, "isCacheFeatureAvailable").mockImplementation( |  | ||||||
|         () => true |  | ||||||
|     ); |  | ||||||
| }); | }); | ||||||
|  |  | ||||||
| afterEach(() => { | afterEach(() => { | ||||||
| @@ -58,12 +55,10 @@ test("restore with invalid event outputs warning", async () => { | |||||||
|     expect(failedMock).toHaveBeenCalledTimes(0); |     expect(failedMock).toHaveBeenCalledTimes(0); | ||||||
| }); | }); | ||||||
|  |  | ||||||
| test("restore without AC available should no-op", async () => { | test("restore on GHES should no-op", async () => { | ||||||
|     jest.spyOn(actionUtils, "isGhes").mockImplementation(() => false); |     jest.spyOn(actionUtils, "isGhes").mockImplementation(() => true); | ||||||
|     jest.spyOn(actionUtils, "isCacheFeatureAvailable").mockImplementation( |  | ||||||
|         () => false |  | ||||||
|     ); |  | ||||||
|  |  | ||||||
|  |     const logWarningMock = jest.spyOn(actionUtils, "logWarning"); | ||||||
|     const restoreCacheMock = jest.spyOn(cache, "restoreCache"); |     const restoreCacheMock = jest.spyOn(cache, "restoreCache"); | ||||||
|     const setCacheHitOutputMock = jest.spyOn(actionUtils, "setCacheHitOutput"); |     const setCacheHitOutputMock = jest.spyOn(actionUtils, "setCacheHitOutput"); | ||||||
|  |  | ||||||
| @@ -72,54 +67,9 @@ test("restore without AC available should no-op", async () => { | |||||||
|     expect(restoreCacheMock).toHaveBeenCalledTimes(0); |     expect(restoreCacheMock).toHaveBeenCalledTimes(0); | ||||||
|     expect(setCacheHitOutputMock).toHaveBeenCalledTimes(1); |     expect(setCacheHitOutputMock).toHaveBeenCalledTimes(1); | ||||||
|     expect(setCacheHitOutputMock).toHaveBeenCalledWith(false); |     expect(setCacheHitOutputMock).toHaveBeenCalledWith(false); | ||||||
| }); |     expect(logWarningMock).toHaveBeenCalledWith( | ||||||
|  |         "Cache action is not supported on GHES. See https://github.com/actions/cache/issues/505 for more details" | ||||||
| test("restore on GHES without AC available should no-op", async () => { |  | ||||||
|     jest.spyOn(actionUtils, "isGhes").mockImplementation(() => true); |  | ||||||
|     jest.spyOn(actionUtils, "isCacheFeatureAvailable").mockImplementation( |  | ||||||
|         () => false |  | ||||||
|     ); |     ); | ||||||
|  |  | ||||||
|     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); |  | ||||||
| }); |  | ||||||
|  |  | ||||||
| test("restore on GHES with AC available ", async () => { |  | ||||||
|     jest.spyOn(actionUtils, "isGhes").mockImplementation(() => true); |  | ||||||
|     const path = "node_modules"; |  | ||||||
|     const key = "node-test"; |  | ||||||
|     testUtils.setInputs({ |  | ||||||
|         path: path, |  | ||||||
|         key |  | ||||||
|     }); |  | ||||||
|  |  | ||||||
|     const infoMock = jest.spyOn(core, "info"); |  | ||||||
|     const failedMock = jest.spyOn(core, "setFailed"); |  | ||||||
|     const stateMock = jest.spyOn(core, "saveState"); |  | ||||||
|     const setCacheHitOutputMock = jest.spyOn(actionUtils, "setCacheHitOutput"); |  | ||||||
|     const restoreCacheMock = jest |  | ||||||
|         .spyOn(cache, "restoreCache") |  | ||||||
|         .mockImplementationOnce(() => { |  | ||||||
|             return Promise.resolve(key); |  | ||||||
|         }); |  | ||||||
|  |  | ||||||
|     await run(); |  | ||||||
|  |  | ||||||
|     expect(restoreCacheMock).toHaveBeenCalledTimes(1); |  | ||||||
|     expect(restoreCacheMock).toHaveBeenCalledWith([path], key, []); |  | ||||||
|  |  | ||||||
|     expect(stateMock).toHaveBeenCalledWith("CACHE_KEY", key); |  | ||||||
|     expect(setCacheHitOutputMock).toHaveBeenCalledTimes(1); |  | ||||||
|     expect(setCacheHitOutputMock).toHaveBeenCalledWith(true); |  | ||||||
|  |  | ||||||
|     expect(infoMock).toHaveBeenCalledWith(`Cache restored from key: ${key}`); |  | ||||||
|     expect(failedMock).toHaveBeenCalledTimes(0); |  | ||||||
| }); | }); | ||||||
|  |  | ||||||
| test("restore with no path should fail", async () => { | test("restore with no path should fail", async () => { | ||||||
|   | |||||||
| @@ -54,9 +54,6 @@ beforeEach(() => { | |||||||
|     process.env[RefKey] = "refs/heads/feature-branch"; |     process.env[RefKey] = "refs/heads/feature-branch"; | ||||||
|  |  | ||||||
|     jest.spyOn(actionUtils, "isGhes").mockImplementation(() => false); |     jest.spyOn(actionUtils, "isGhes").mockImplementation(() => false); | ||||||
|     jest.spyOn(actionUtils, "isCacheFeatureAvailable").mockImplementation( |  | ||||||
|         () => true |  | ||||||
|     ); |  | ||||||
| }); | }); | ||||||
|  |  | ||||||
| afterEach(() => { | afterEach(() => { | ||||||
| @@ -104,67 +101,18 @@ test("save with no primary key in state outputs warning", async () => { | |||||||
|     expect(failedMock).toHaveBeenCalledTimes(0); |     expect(failedMock).toHaveBeenCalledTimes(0); | ||||||
| }); | }); | ||||||
|  |  | ||||||
| test("save without AC available should no-op", async () => { | test("save on GHES should no-op", async () => { | ||||||
|     jest.spyOn(actionUtils, "isCacheFeatureAvailable").mockImplementation( |     jest.spyOn(actionUtils, "isGhes").mockImplementation(() => true); | ||||||
|         () => false |  | ||||||
|     ); |  | ||||||
|  |  | ||||||
|  |     const logWarningMock = jest.spyOn(actionUtils, "logWarning"); | ||||||
|     const saveCacheMock = jest.spyOn(cache, "saveCache"); |     const saveCacheMock = jest.spyOn(cache, "saveCache"); | ||||||
|  |  | ||||||
|     await run(); |     await run(); | ||||||
|  |  | ||||||
|     expect(saveCacheMock).toHaveBeenCalledTimes(0); |     expect(saveCacheMock).toHaveBeenCalledTimes(0); | ||||||
| }); |     expect(logWarningMock).toHaveBeenCalledWith( | ||||||
|  |         "Cache action is not supported on GHES. See https://github.com/actions/cache/issues/505 for more details" | ||||||
| test("save on ghes without AC available should no-op", async () => { |  | ||||||
|     jest.spyOn(actionUtils, "isGhes").mockImplementation(() => true); |  | ||||||
|     jest.spyOn(actionUtils, "isCacheFeatureAvailable").mockImplementation( |  | ||||||
|         () => false |  | ||||||
|     ); |     ); | ||||||
|  |  | ||||||
|     const saveCacheMock = jest.spyOn(cache, "saveCache"); |  | ||||||
|  |  | ||||||
|     await run(); |  | ||||||
|  |  | ||||||
|     expect(saveCacheMock).toHaveBeenCalledTimes(0); |  | ||||||
| }); |  | ||||||
|  |  | ||||||
| test("save on GHES with AC available", async () => { |  | ||||||
|     jest.spyOn(actionUtils, "isGhes").mockImplementation(() => true); |  | ||||||
|     const failedMock = jest.spyOn(core, "setFailed"); |  | ||||||
|  |  | ||||||
|     const primaryKey = "Linux-node-bb828da54c148048dd17899ba9fda624811cfb43"; |  | ||||||
|     const savedCacheKey = "Linux-node-"; |  | ||||||
|  |  | ||||||
|     jest.spyOn(core, "getState") |  | ||||||
|         // Cache Entry State |  | ||||||
|         .mockImplementationOnce(() => { |  | ||||||
|             return savedCacheKey; |  | ||||||
|         }) |  | ||||||
|         // Cache Key State |  | ||||||
|         .mockImplementationOnce(() => { |  | ||||||
|             return primaryKey; |  | ||||||
|         }); |  | ||||||
|  |  | ||||||
|     const inputPath = "node_modules"; |  | ||||||
|     testUtils.setInput(Inputs.Path, inputPath); |  | ||||||
|     testUtils.setInput(Inputs.UploadChunkSize, "4000000"); |  | ||||||
|  |  | ||||||
|     const cacheId = 4; |  | ||||||
|     const saveCacheMock = jest |  | ||||||
|         .spyOn(cache, "saveCache") |  | ||||||
|         .mockImplementationOnce(() => { |  | ||||||
|             return Promise.resolve(cacheId); |  | ||||||
|         }); |  | ||||||
|  |  | ||||||
|     await run(); |  | ||||||
|  |  | ||||||
|     expect(saveCacheMock).toHaveBeenCalledTimes(1); |  | ||||||
|     expect(saveCacheMock).toHaveBeenCalledWith([inputPath], primaryKey, { |  | ||||||
|         uploadChunkSize: 4000000 |  | ||||||
|     }); |  | ||||||
|  |  | ||||||
|     expect(failedMock).toHaveBeenCalledTimes(0); |  | ||||||
| }); | }); | ||||||
|  |  | ||||||
| test("save with exact match returns early", async () => { | test("save with exact match returns early", async () => { | ||||||
|   | |||||||
							
								
								
									
										36
									
								
								dist/restore/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										36
									
								
								dist/restore/index.js
									
									
									
									
										vendored
									
									
								
							| @@ -3221,7 +3221,10 @@ const options_1 = __webpack_require__(538); | |||||||
| const requestUtils_1 = __webpack_require__(899); | const requestUtils_1 = __webpack_require__(899); | ||||||
| const versionSalt = '1.0'; | const versionSalt = '1.0'; | ||||||
| function getCacheApiUrl(resource) { | function getCacheApiUrl(resource) { | ||||||
|     const baseUrl = process.env['ACTIONS_CACHE_URL'] || ''; |     // Ideally we just use ACTIONS_CACHE_URL
 | ||||||
|  |     const baseUrl = (process.env['ACTIONS_CACHE_URL'] || | ||||||
|  |         process.env['ACTIONS_RUNTIME_URL'] || | ||||||
|  |         '').replace('pipelines', 'artifactcache'); | ||||||
|     if (!baseUrl) { |     if (!baseUrl) { | ||||||
|         throw new Error('Cache Service Url not found, unable to restore cache.'); |         throw new Error('Cache Service Url not found, unable to restore cache.'); | ||||||
|     } |     } | ||||||
| @@ -5516,8 +5519,7 @@ function downloadCacheStorageSDK(archiveLocation, archivePath, options) { | |||||||
|             //
 |             //
 | ||||||
|             // If the file exceeds the buffer maximum length (~1 GB on 32-bit systems and ~2 GB
 |             // If the file exceeds the buffer maximum length (~1 GB on 32-bit systems and ~2 GB
 | ||||||
|             // on 64-bit systems), split the download into multiple segments
 |             // on 64-bit systems), split the download into multiple segments
 | ||||||
|             // ~2 GB = 2147483647, beyond this, we start getting out of range error. So, capping it accordingly.
 |             const maxSegmentSize = buffer.constants.MAX_LENGTH; | ||||||
|             const maxSegmentSize = Math.min(2147483647, buffer.constants.MAX_LENGTH); |  | ||||||
|             const downloadProgress = new DownloadProgress(contentLength); |             const downloadProgress = new DownloadProgress(contentLength); | ||||||
|             const fd = fs.openSync(archivePath, 'w'); |             const fd = fs.openSync(archivePath, 'w'); | ||||||
|             try { |             try { | ||||||
| @@ -37457,8 +37459,7 @@ var __importStar = (this && this.__importStar) || function (mod) { | |||||||
|     return result; |     return result; | ||||||
| }; | }; | ||||||
| Object.defineProperty(exports, "__esModule", { value: true }); | Object.defineProperty(exports, "__esModule", { value: true }); | ||||||
| exports.isCacheFeatureAvailable = exports.getInputAsInt = exports.getInputAsArray = exports.isValidEvent = exports.logWarning = exports.getCacheState = exports.setOutputAndState = exports.setCacheHitOutput = exports.setCacheState = exports.isExactKeyMatch = exports.isGhes = void 0; | exports.getInputAsInt = exports.getInputAsArray = exports.isValidEvent = exports.logWarning = exports.getCacheState = exports.setOutputAndState = exports.setCacheHitOutput = exports.setCacheState = exports.isExactKeyMatch = exports.isGhes = void 0; | ||||||
| const cache = __importStar(__webpack_require__(692)); |  | ||||||
| const core = __importStar(__webpack_require__(470)); | const core = __importStar(__webpack_require__(470)); | ||||||
| const constants_1 = __webpack_require__(196); | const constants_1 = __webpack_require__(196); | ||||||
| function isGhes() { | function isGhes() { | ||||||
| @@ -37523,19 +37524,6 @@ function getInputAsInt(name, options) { | |||||||
|     return value; |     return value; | ||||||
| } | } | ||||||
| exports.getInputAsInt = getInputAsInt; | exports.getInputAsInt = getInputAsInt; | ||||||
| function isCacheFeatureAvailable() { |  | ||||||
|     if (!cache.isFeatureAvailable()) { |  | ||||||
|         if (isGhes()) { |  | ||||||
|             logWarning("Cache action is only supported on GHES version >= 3.5. If you are on version >=3.5 Please check with GHES admin if Actions cache service is enabled or not."); |  | ||||||
|         } |  | ||||||
|         else { |  | ||||||
|             logWarning("An internal error has occurred in cache backend. Please check https://www.githubstatus.com/ for any ongoing issue in actions."); |  | ||||||
|         } |  | ||||||
|         return false; |  | ||||||
|     } |  | ||||||
|     return true; |  | ||||||
| } |  | ||||||
| exports.isCacheFeatureAvailable = isCacheFeatureAvailable; |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| /***/ }), | /***/ }), | ||||||
| @@ -46451,15 +46439,6 @@ function checkKey(key) { | |||||||
|         throw new ValidationError(`Key Validation Error: ${key} cannot contain commas.`); |         throw new ValidationError(`Key Validation Error: ${key} cannot contain commas.`); | ||||||
|     } |     } | ||||||
| } | } | ||||||
| /** |  | ||||||
|  * isFeatureAvailable to check the presence of Actions cache service |  | ||||||
|  * |  | ||||||
|  * @returns boolean return true if Actions cache service feature is available, otherwise false |  | ||||||
|  */ |  | ||||||
| function isFeatureAvailable() { |  | ||||||
|     return !!process.env['ACTIONS_CACHE_URL']; |  | ||||||
| } |  | ||||||
| exports.isFeatureAvailable = isFeatureAvailable; |  | ||||||
| /** | /** | ||||||
|  * Restores cache from keys |  * Restores cache from keys | ||||||
|  * |  * | ||||||
| @@ -48121,7 +48100,8 @@ const utils = __importStar(__webpack_require__(443)); | |||||||
| function run() { | function run() { | ||||||
|     return __awaiter(this, void 0, void 0, function* () { |     return __awaiter(this, void 0, void 0, function* () { | ||||||
|         try { |         try { | ||||||
|             if (!utils.isCacheFeatureAvailable()) { |             if (utils.isGhes()) { | ||||||
|  |                 utils.logWarning("Cache action is not supported on GHES. See https://github.com/actions/cache/issues/505 for more details"); | ||||||
|                 utils.setCacheHitOutput(false); |                 utils.setCacheHitOutput(false); | ||||||
|                 return; |                 return; | ||||||
|             } |             } | ||||||
|   | |||||||
							
								
								
									
										36
									
								
								dist/save/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										36
									
								
								dist/save/index.js
									
									
									
									
										vendored
									
									
								
							| @@ -3221,7 +3221,10 @@ const options_1 = __webpack_require__(538); | |||||||
| const requestUtils_1 = __webpack_require__(899); | const requestUtils_1 = __webpack_require__(899); | ||||||
| const versionSalt = '1.0'; | const versionSalt = '1.0'; | ||||||
| function getCacheApiUrl(resource) { | function getCacheApiUrl(resource) { | ||||||
|     const baseUrl = process.env['ACTIONS_CACHE_URL'] || ''; |     // Ideally we just use ACTIONS_CACHE_URL
 | ||||||
|  |     const baseUrl = (process.env['ACTIONS_CACHE_URL'] || | ||||||
|  |         process.env['ACTIONS_RUNTIME_URL'] || | ||||||
|  |         '').replace('pipelines', 'artifactcache'); | ||||||
|     if (!baseUrl) { |     if (!baseUrl) { | ||||||
|         throw new Error('Cache Service Url not found, unable to restore cache.'); |         throw new Error('Cache Service Url not found, unable to restore cache.'); | ||||||
|     } |     } | ||||||
| @@ -5516,8 +5519,7 @@ function downloadCacheStorageSDK(archiveLocation, archivePath, options) { | |||||||
|             //
 |             //
 | ||||||
|             // If the file exceeds the buffer maximum length (~1 GB on 32-bit systems and ~2 GB
 |             // If the file exceeds the buffer maximum length (~1 GB on 32-bit systems and ~2 GB
 | ||||||
|             // on 64-bit systems), split the download into multiple segments
 |             // on 64-bit systems), split the download into multiple segments
 | ||||||
|             // ~2 GB = 2147483647, beyond this, we start getting out of range error. So, capping it accordingly.
 |             const maxSegmentSize = buffer.constants.MAX_LENGTH; | ||||||
|             const maxSegmentSize = Math.min(2147483647, buffer.constants.MAX_LENGTH); |  | ||||||
|             const downloadProgress = new DownloadProgress(contentLength); |             const downloadProgress = new DownloadProgress(contentLength); | ||||||
|             const fd = fs.openSync(archivePath, 'w'); |             const fd = fs.openSync(archivePath, 'w'); | ||||||
|             try { |             try { | ||||||
| @@ -37457,8 +37459,7 @@ var __importStar = (this && this.__importStar) || function (mod) { | |||||||
|     return result; |     return result; | ||||||
| }; | }; | ||||||
| Object.defineProperty(exports, "__esModule", { value: true }); | Object.defineProperty(exports, "__esModule", { value: true }); | ||||||
| exports.isCacheFeatureAvailable = exports.getInputAsInt = exports.getInputAsArray = exports.isValidEvent = exports.logWarning = exports.getCacheState = exports.setOutputAndState = exports.setCacheHitOutput = exports.setCacheState = exports.isExactKeyMatch = exports.isGhes = void 0; | exports.getInputAsInt = exports.getInputAsArray = exports.isValidEvent = exports.logWarning = exports.getCacheState = exports.setOutputAndState = exports.setCacheHitOutput = exports.setCacheState = exports.isExactKeyMatch = exports.isGhes = void 0; | ||||||
| const cache = __importStar(__webpack_require__(692)); |  | ||||||
| const core = __importStar(__webpack_require__(470)); | const core = __importStar(__webpack_require__(470)); | ||||||
| const constants_1 = __webpack_require__(196); | const constants_1 = __webpack_require__(196); | ||||||
| function isGhes() { | function isGhes() { | ||||||
| @@ -37523,19 +37524,6 @@ function getInputAsInt(name, options) { | |||||||
|     return value; |     return value; | ||||||
| } | } | ||||||
| exports.getInputAsInt = getInputAsInt; | exports.getInputAsInt = getInputAsInt; | ||||||
| function isCacheFeatureAvailable() { |  | ||||||
|     if (!cache.isFeatureAvailable()) { |  | ||||||
|         if (isGhes()) { |  | ||||||
|             logWarning("Cache action is only supported on GHES version >= 3.5. If you are on version >=3.5 Please check with GHES admin if Actions cache service is enabled or not."); |  | ||||||
|         } |  | ||||||
|         else { |  | ||||||
|             logWarning("An internal error has occurred in cache backend. Please check https://www.githubstatus.com/ for any ongoing issue in actions."); |  | ||||||
|         } |  | ||||||
|         return false; |  | ||||||
|     } |  | ||||||
|     return true; |  | ||||||
| } |  | ||||||
| exports.isCacheFeatureAvailable = isCacheFeatureAvailable; |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| /***/ }), | /***/ }), | ||||||
| @@ -46400,7 +46388,8 @@ process.on("uncaughtException", e => utils.logWarning(e.message)); | |||||||
| function run() { | function run() { | ||||||
|     return __awaiter(this, void 0, void 0, function* () { |     return __awaiter(this, void 0, void 0, function* () { | ||||||
|         try { |         try { | ||||||
|             if (!utils.isCacheFeatureAvailable()) { |             if (utils.isGhes()) { | ||||||
|  |                 utils.logWarning("Cache action is not supported on GHES. See https://github.com/actions/cache/issues/505 for more details"); | ||||||
|                 return; |                 return; | ||||||
|             } |             } | ||||||
|             if (!utils.isValidEvent()) { |             if (!utils.isValidEvent()) { | ||||||
| @@ -46544,15 +46533,6 @@ function checkKey(key) { | |||||||
|         throw new ValidationError(`Key Validation Error: ${key} cannot contain commas.`); |         throw new ValidationError(`Key Validation Error: ${key} cannot contain commas.`); | ||||||
|     } |     } | ||||||
| } | } | ||||||
| /** |  | ||||||
|  * isFeatureAvailable to check the presence of Actions cache service |  | ||||||
|  * |  | ||||||
|  * @returns boolean return true if Actions cache service feature is available, otherwise false |  | ||||||
|  */ |  | ||||||
| function isFeatureAvailable() { |  | ||||||
|     return !!process.env['ACTIONS_CACHE_URL']; |  | ||||||
| } |  | ||||||
| exports.isFeatureAvailable = isFeatureAvailable; |  | ||||||
| /** | /** | ||||||
|  * Restores cache from keys |  * Restores cache from keys | ||||||
|  * |  * | ||||||
|   | |||||||
							
								
								
									
										7414
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										7414
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										14
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								package.json
									
									
									
									
									
								
							| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "name": "cache", |   "name": "cache", | ||||||
|   "version": "3.0.1", |   "version": "3.0.0", | ||||||
|   "private": true, |   "private": true, | ||||||
|   "description": "Cache dependencies and build outputs", |   "description": "Cache dependencies and build outputs", | ||||||
|   "main": "dist/restore/index.js", |   "main": "dist/restore/index.js", | ||||||
| @@ -23,7 +23,7 @@ | |||||||
|   "author": "GitHub", |   "author": "GitHub", | ||||||
|   "license": "MIT", |   "license": "MIT", | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "@actions/cache": "^2.0.0", |     "@actions/cache": "^1.0.10", | ||||||
|     "@actions/core": "^1.2.6", |     "@actions/core": "^1.2.6", | ||||||
|     "@actions/exec": "^1.1.1", |     "@actions/exec": "^1.1.1", | ||||||
|     "@actions/io": "^1.1.2" |     "@actions/io": "^1.1.2" | ||||||
| @@ -32,20 +32,20 @@ | |||||||
|     "@types/jest": "^27.4.1", |     "@types/jest": "^27.4.1", | ||||||
|     "@types/nock": "^11.1.0", |     "@types/nock": "^11.1.0", | ||||||
|     "@types/node": "^16.11.26", |     "@types/node": "^16.11.26", | ||||||
|     "@typescript-eslint/eslint-plugin": "^5.16.0", |     "@typescript-eslint/eslint-plugin": "^5.15.0", | ||||||
|     "@typescript-eslint/parser": "^5.16.0", |     "@typescript-eslint/parser": "^5.15.0", | ||||||
|     "@zeit/ncc": "^0.20.5", |     "@zeit/ncc": "^0.20.5", | ||||||
|     "eslint": "^8.11.0", |     "eslint": "^8.11.0", | ||||||
|     "eslint-config-prettier": "^8.5.0", |     "eslint-config-prettier": "^8.5.0", | ||||||
|     "eslint-plugin-import": "^2.25.4", |     "eslint-plugin-import": "^2.25.4", | ||||||
|     "eslint-plugin-jest": "^26.1.3", |     "eslint-plugin-jest": "^26.1.2", | ||||||
|     "eslint-plugin-prettier": "^4.0.0", |     "eslint-plugin-prettier": "^4.0.0", | ||||||
|     "eslint-plugin-simple-import-sort": "^7.0.0", |     "eslint-plugin-simple-import-sort": "^7.0.0", | ||||||
|     "jest": "^27.5.1", |     "jest": "^27.5.1", | ||||||
|     "jest-circus": "^27.5.1", |     "jest-circus": "^27.5.1", | ||||||
|     "nock": "^11.7.0", |     "nock": "^11.7.0", | ||||||
|     "prettier": "^2.6.1", |     "prettier": "^2.6.0", | ||||||
|     "ts-jest": "^27.1.4", |     "ts-jest": "^27.1.3", | ||||||
|     "typescript": "^3.9.9" |     "typescript": "^3.9.9" | ||||||
|   } |   } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -6,7 +6,10 @@ import * as utils from "./utils/actionUtils"; | |||||||
|  |  | ||||||
| async function run(): Promise<void> { | async function run(): Promise<void> { | ||||||
|     try { |     try { | ||||||
|         if (!utils.isCacheFeatureAvailable()) { |         if (utils.isGhes()) { | ||||||
|  |             utils.logWarning( | ||||||
|  |                 "Cache action is not supported on GHES. See https://github.com/actions/cache/issues/505 for more details" | ||||||
|  |             ); | ||||||
|             utils.setCacheHitOutput(false); |             utils.setCacheHitOutput(false); | ||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
|   | |||||||
| @@ -11,7 +11,10 @@ process.on("uncaughtException", e => utils.logWarning(e.message)); | |||||||
|  |  | ||||||
| async function run(): Promise<void> { | async function run(): Promise<void> { | ||||||
|     try { |     try { | ||||||
|         if (!utils.isCacheFeatureAvailable()) { |         if (utils.isGhes()) { | ||||||
|  |             utils.logWarning( | ||||||
|  |                 "Cache action is not supported on GHES. See https://github.com/actions/cache/issues/505 for more details" | ||||||
|  |             ); | ||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,4 +1,3 @@ | |||||||
| import * as cache from "@actions/cache"; |  | ||||||
| import * as core from "@actions/core"; | import * as core from "@actions/core"; | ||||||
|  |  | ||||||
| import { Outputs, RefKey, State } from "../constants"; | import { Outputs, RefKey, State } from "../constants"; | ||||||
| @@ -75,20 +74,3 @@ export function getInputAsInt( | |||||||
|     } |     } | ||||||
|     return value; |     return value; | ||||||
| } | } | ||||||
|  |  | ||||||
| export function isCacheFeatureAvailable(): boolean { |  | ||||||
|     if (!cache.isFeatureAvailable()) { |  | ||||||
|         if (isGhes()) { |  | ||||||
|             logWarning( |  | ||||||
|                 "Cache action is only supported on GHES version >= 3.5. If you are on version >=3.5 Please check with GHES admin if Actions cache service is enabled or not." |  | ||||||
|             ); |  | ||||||
|         } else { |  | ||||||
|             logWarning( |  | ||||||
|                 "An internal error has occurred in cache backend. Please check https://www.githubstatus.com/ for any ongoing issue in actions." |  | ||||||
|             ); |  | ||||||
|         } |  | ||||||
|         return false; |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     return true; |  | ||||||
| } |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user