@@ -1148,6 +1148,11 @@ function assertDefined(name, value) {
1148
1148
return value;
1149
1149
}
1150
1150
exports.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;
1151
1156
//# sourceMappingURL=cacheUtils.js.map
1152
1157
1153
1158
/***/ }),
@@ -3959,18 +3964,18 @@ function downloadCache(archiveLocation, archivePath, options) {
3959
3964
exports.downloadCache = downloadCache;
3960
3965
// Reserve Cache
3961
3966
function reserveCache(key, paths, options) {
3962
- var _a, _b;
3963
3967
return __awaiter(this, void 0, void 0, function* () {
3964
3968
const httpClient = createHttpClient();
3965
3969
const version = getCacheVersion(paths, options === null || options === void 0 ? void 0 : options.compressionMethod);
3966
3970
const reserveCacheRequest = {
3967
3971
key,
3968
- version
3972
+ version,
3973
+ cacheSize: options === null || options === void 0 ? void 0 : options.cacheSize
3969
3974
};
3970
3975
const response = yield requestUtils_1.retryTypedResponse('reserveCache', () => __awaiter(this, void 0, void 0, function* () {
3971
3976
return httpClient.postJson(getCacheApiUrl('caches'), reserveCacheRequest);
3972
3977
}));
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;
3974
3979
});
3975
3980
}
3976
3981
exports.reserveCache = reserveCache;
@@ -6107,9 +6112,6 @@ function run() {
6107
6112
yield cacheDependencies(cache, pythonVersion);
6108
6113
}
6109
6114
}
6110
- else {
6111
- throw new Error('there\'s empty python-version input');
6112
- }
6113
6115
const matchersPath = path.join(__dirname, '../..', '.github');
6114
6116
core.info(`##[add-matcher]${path.join(matchersPath, 'python.json')}`);
6115
6117
}
@@ -47085,18 +47087,12 @@ exports.restoreCache = restoreCache;
47085
47087
* @returns number returns cacheId if the cache was saved successfully and throws an error if save fails
47086
47088
*/
47087
47089
function saveCache(paths, key, options) {
47090
+ var _a, _b, _c, _d, _e;
47088
47091
return __awaiter(this, void 0, void 0, function* () {
47089
47092
checkPaths(paths);
47090
47093
checkKey(key);
47091
47094
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;
47100
47096
const cachePaths = yield utils.resolvePaths(paths);
47101
47097
core.debug('Cache Paths:');
47102
47098
core.debug(`${JSON.stringify(cachePaths)}`);
@@ -47111,9 +47107,24 @@ function saveCache(paths, key, options) {
47111
47107
const fileSizeLimit = 10 * 1024 * 1024 * 1024; // 10GB per repo limit
47112
47108
const archiveFileSize = utils.getArchiveFileSizeInBytes(archivePath);
47113
47109
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()) {
47115
47112
throw new Error(`Cache size of ~${Math.round(archiveFileSize / (1024 * 1024))} MB (${archiveFileSize} B) is over the 10GB limit, not saving cache.`);
47116
47113
}
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
+ }
47117
47128
core.debug(`Saving Cache (ID: ${cacheId})`);
47118
47129
yield cacheHttpClient.saveCache(cacheId, archivePath, options);
47119
47130
}
@@ -56422,7 +56433,8 @@ function retryTypedResponse(name, method, maxAttempts = constants_1.DefaultRetry
56422
56433
return {
56423
56434
statusCode: error.statusCode,
56424
56435
result: null,
56425
- headers: {}
56436
+ headers: {},
56437
+ error
56426
56438
};
56427
56439
}
56428
56440
else {
0 commit comments