@@ -1148,6 +1148,11 @@ function assertDefined(name, value) {
11481148 return value;
11491149}
11501150exports.assertDefined = assertDefined;
1151+ function isGhes() {
1152+ const ghUrl = new URL(process.env['GITHUB_SERVER_URL'] || 'https://github.com');
1153+ return ghUrl.hostname.toUpperCase() !== 'GITHUB.COM';
1154+ }
1155+ exports.isGhes = isGhes;
11511156//# sourceMappingURL=cacheUtils.js.map
11521157
11531158/***/ }),
@@ -3806,18 +3811,18 @@ function downloadCache(archiveLocation, archivePath, options) {
38063811exports.downloadCache = downloadCache;
38073812// Reserve Cache
38083813function reserveCache(key, paths, options) {
3809- var _a, _b;
38103814 return __awaiter(this, void 0, void 0, function* () {
38113815 const httpClient = createHttpClient();
38123816 const version = getCacheVersion(paths, options === null || options === void 0 ? void 0 : options.compressionMethod);
38133817 const reserveCacheRequest = {
38143818 key,
3815- version
3819+ version,
3820+ cacheSize: options === null || options === void 0 ? void 0 : options.cacheSize
38163821 };
38173822 const response = yield requestUtils_1.retryTypedResponse('reserveCache', () => __awaiter(this, void 0, void 0, function* () {
38183823 return httpClient.postJson(getCacheApiUrl('caches'), reserveCacheRequest);
38193824 }));
3820- return (_b = (_a = response === null || response === void 0 ? void 0 : response.result) === null || _a === void 0 ? void 0 : _a.cacheId) !== null && _b !== void 0 ? _b : -1 ;
3825+ return response;
38213826 });
38223827}
38233828exports.reserveCache = reserveCache;
@@ -41528,18 +41533,12 @@ exports.restoreCache = restoreCache;
4152841533 * @returns number returns cacheId if the cache was saved successfully and throws an error if save fails
4152941534 */
4153041535function saveCache(paths, key, options) {
41536+ var _a, _b, _c, _d, _e;
4153141537 return __awaiter(this, void 0, void 0, function* () {
4153241538 checkPaths(paths);
4153341539 checkKey(key);
4153441540 const compressionMethod = yield utils.getCompressionMethod();
41535- core.debug('Reserving Cache');
41536- const cacheId = yield cacheHttpClient.reserveCache(key, paths, {
41537- compressionMethod
41538- });
41539- if (cacheId === -1) {
41540- throw new ReserveCacheError(`Unable to reserve cache with key ${key}, another job may be creating this cache.`);
41541- }
41542- core.debug(`Cache ID: ${cacheId}`);
41541+ let cacheId = null;
4154341542 const cachePaths = yield utils.resolvePaths(paths);
4154441543 core.debug('Cache Paths:');
4154541544 core.debug(`${JSON.stringify(cachePaths)}`);
@@ -41554,9 +41553,24 @@ function saveCache(paths, key, options) {
4155441553 const fileSizeLimit = 10 * 1024 * 1024 * 1024; // 10GB per repo limit
4155541554 const archiveFileSize = utils.getArchiveFileSizeInBytes(archivePath);
4155641555 core.debug(`File Size: ${archiveFileSize}`);
41557- if (archiveFileSize > fileSizeLimit) {
41556+ // For GHES, this check will take place in ReserveCache API with enterprise file size limit
41557+ if (archiveFileSize > fileSizeLimit && !utils.isGhes()) {
4155841558 throw new Error(`Cache size of ~${Math.round(archiveFileSize / (1024 * 1024))} MB (${archiveFileSize} B) is over the 10GB limit, not saving cache.`);
4155941559 }
41560+ core.debug('Reserving Cache');
41561+ const reserveCacheResponse = yield cacheHttpClient.reserveCache(key, paths, {
41562+ compressionMethod,
41563+ cacheSize: archiveFileSize
41564+ });
41565+ if ((_a = reserveCacheResponse === null || reserveCacheResponse === void 0 ? void 0 : reserveCacheResponse.result) === null || _a === void 0 ? void 0 : _a.cacheId) {
41566+ cacheId = (_b = reserveCacheResponse === null || reserveCacheResponse === void 0 ? void 0 : reserveCacheResponse.result) === null || _b === void 0 ? void 0 : _b.cacheId;
41567+ }
41568+ else if ((reserveCacheResponse === null || reserveCacheResponse === void 0 ? void 0 : reserveCacheResponse.statusCode) === 400) {
41569+ throw new Error((_d = (_c = reserveCacheResponse === null || reserveCacheResponse === void 0 ? void 0 : reserveCacheResponse.error) === null || _c === void 0 ? void 0 : _c.message) !== null && _d !== void 0 ? _d : `Cache size of ~${Math.round(archiveFileSize / (1024 * 1024))} MB (${archiveFileSize} B) is over the data cap limit, not saving cache.`);
41570+ }
41571+ else {
41572+ throw new ReserveCacheError(`Unable to reserve cache with key ${key}, another job may be creating this cache. More details: ${(_e = reserveCacheResponse === null || reserveCacheResponse === void 0 ? void 0 : reserveCacheResponse.error) === null || _e === void 0 ? void 0 : _e.message}`);
41573+ }
4156041574 core.debug(`Saving Cache (ID: ${cacheId})`);
4156141575 yield cacheHttpClient.saveCache(cacheId, archivePath, options);
4156241576 }
@@ -50335,7 +50349,8 @@ function retryTypedResponse(name, method, maxAttempts = constants_1.DefaultRetry
5033550349 return {
5033650350 statusCode: error.statusCode,
5033750351 result: null,
50338- headers: {}
50352+ headers: {},
50353+ error
5033950354 };
5034050355 }
5034150356 else {
0 commit comments