@@ -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/***/ }),
@@ -3959,18 +3964,18 @@ function downloadCache(archiveLocation, archivePath, options) {
39593964exports.downloadCache = downloadCache;
39603965// Reserve Cache
39613966function reserveCache(key, paths, options) {
3962- var _a, _b;
39633967 return __awaiter(this, void 0, void 0, function* () {
39643968 const httpClient = createHttpClient();
39653969 const version = getCacheVersion(paths, options === null || options === void 0 ? void 0 : options.compressionMethod);
39663970 const reserveCacheRequest = {
39673971 key,
3968- version
3972+ version,
3973+ cacheSize: options === null || options === void 0 ? void 0 : options.cacheSize
39693974 };
39703975 const response = yield requestUtils_1.retryTypedResponse('reserveCache', () => __awaiter(this, void 0, void 0, function* () {
39713976 return httpClient.postJson(getCacheApiUrl('caches'), reserveCacheRequest);
39723977 }));
3973- 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 ;
3978+ return response;
39743979 });
39753980}
39763981exports.reserveCache = reserveCache;
@@ -6107,9 +6112,6 @@ function run() {
61076112 yield cacheDependencies(cache, pythonVersion);
61086113 }
61096114 }
6110- else {
6111- throw new Error('there\'s empty python-version input');
6112- }
61136115 const matchersPath = path.join(__dirname, '../..', '.github');
61146116 core.info(`##[add-matcher]${path.join(matchersPath, 'python.json')}`);
61156117 }
@@ -47085,18 +47087,12 @@ exports.restoreCache = restoreCache;
4708547087 * @returns number returns cacheId if the cache was saved successfully and throws an error if save fails
4708647088 */
4708747089function saveCache(paths, key, options) {
47090+ var _a, _b, _c, _d, _e;
4708847091 return __awaiter(this, void 0, void 0, function* () {
4708947092 checkPaths(paths);
4709047093 checkKey(key);
4709147094 const compressionMethod = yield utils.getCompressionMethod();
47092- core.debug('Reserving Cache');
47093- const cacheId = yield cacheHttpClient.reserveCache(key, paths, {
47094- compressionMethod
47095- });
47096- if (cacheId === -1) {
47097- throw new ReserveCacheError(`Unable to reserve cache with key ${key}, another job may be creating this cache.`);
47098- }
47099- core.debug(`Cache ID: ${cacheId}`);
47095+ let cacheId = null;
4710047096 const cachePaths = yield utils.resolvePaths(paths);
4710147097 core.debug('Cache Paths:');
4710247098 core.debug(`${JSON.stringify(cachePaths)}`);
@@ -47111,9 +47107,24 @@ function saveCache(paths, key, options) {
4711147107 const fileSizeLimit = 10 * 1024 * 1024 * 1024; // 10GB per repo limit
4711247108 const archiveFileSize = utils.getArchiveFileSizeInBytes(archivePath);
4711347109 core.debug(`File Size: ${archiveFileSize}`);
47114- if (archiveFileSize > fileSizeLimit) {
47110+ // For GHES, this check will take place in ReserveCache API with enterprise file size limit
47111+ if (archiveFileSize > fileSizeLimit && !utils.isGhes()) {
4711547112 throw new Error(`Cache size of ~${Math.round(archiveFileSize / (1024 * 1024))} MB (${archiveFileSize} B) is over the 10GB limit, not saving cache.`);
4711647113 }
47114+ core.debug('Reserving Cache');
47115+ const reserveCacheResponse = yield cacheHttpClient.reserveCache(key, paths, {
47116+ compressionMethod,
47117+ cacheSize: archiveFileSize
47118+ });
47119+ if ((_a = reserveCacheResponse === null || reserveCacheResponse === void 0 ? void 0 : reserveCacheResponse.result) === null || _a === void 0 ? void 0 : _a.cacheId) {
47120+ cacheId = (_b = reserveCacheResponse === null || reserveCacheResponse === void 0 ? void 0 : reserveCacheResponse.result) === null || _b === void 0 ? void 0 : _b.cacheId;
47121+ }
47122+ else if ((reserveCacheResponse === null || reserveCacheResponse === void 0 ? void 0 : reserveCacheResponse.statusCode) === 400) {
47123+ 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.`);
47124+ }
47125+ else {
47126+ 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}`);
47127+ }
4711747128 core.debug(`Saving Cache (ID: ${cacheId})`);
4711847129 yield cacheHttpClient.saveCache(cacheId, archivePath, options);
4711947130 }
@@ -56422,7 +56433,8 @@ function retryTypedResponse(name, method, maxAttempts = constants_1.DefaultRetry
5642256433 return {
5642356434 statusCode: error.statusCode,
5642456435 result: null,
56425- headers: {}
56436+ headers: {},
56437+ error
5642656438 };
5642756439 }
5642856440 else {
0 commit comments