@@ -91441,7 +91441,8 @@ function installPyPy(pypyVersion, pythonVersion, architecture, allowPreReleases,
9144191441 const downloadUrl = `${foundAsset.download_url}`;
9144291442 core.info(`Downloading PyPy from "${downloadUrl}" ...`);
9144391443 try {
91444- const pypyPath = yield tc.downloadTool(downloadUrl);
91444+ const fileName = (0, utils_1.getDownloadFileName)(downloadUrl);
91445+ const pypyPath = yield tc.downloadTool(downloadUrl, fileName);
9144591446 core.info('Extracting downloaded archive...');
9144691447 if (utils_1.IS_WINDOWS) {
9144791448 downloadDir = yield tc.extractZip(pypyPath);
@@ -91703,7 +91704,8 @@ function installCpythonFromRelease(release) {
9170391704 core.info(`Download from "${downloadUrl}"`);
9170491705 let pythonPath = '';
9170591706 try {
91706- pythonPath = yield tc.downloadTool(downloadUrl, undefined, AUTH);
91707+ const fileName = (0, utils_1.getDownloadFileName)(downloadUrl);
91708+ pythonPath = yield tc.downloadTool(downloadUrl, fileName, AUTH);
9170791709 core.info('Extract downloaded archive');
9170891710 let pythonExtractedFolder;
9170991711 if (utils_1.IS_WINDOWS) {
@@ -91938,7 +91940,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
9193891940 return (mod && mod.__esModule) ? mod : { "default": mod };
9193991941};
9194091942Object.defineProperty(exports, "__esModule", ({ value: true }));
91941- exports.getNextPageUrl = exports.getBinaryDirectory = exports.getVersionInputFromFile = exports.getVersionInputFromPlainFile = exports.getVersionInputFromTomlFile = exports.getOSInfo = exports.getLinuxInfo = exports.logWarning = exports.isCacheFeatureAvailable = exports.isGhes = exports.validatePythonVersionFormatForPyPy = exports.writeExactPyPyVersionFile = exports.readExactPyPyVersionFile = exports.getPyPyVersionFromPath = exports.isNightlyKeyword = exports.validateVersion = exports.createSymlinkInFolder = exports.WINDOWS_PLATFORMS = exports.WINDOWS_ARCHS = exports.IS_MAC = exports.IS_LINUX = exports.IS_WINDOWS = void 0;
91943+ exports.getDownloadFileName = exports. getNextPageUrl = exports.getBinaryDirectory = exports.getVersionInputFromFile = exports.getVersionInputFromPlainFile = exports.getVersionInputFromTomlFile = exports.getOSInfo = exports.getLinuxInfo = exports.logWarning = exports.isCacheFeatureAvailable = exports.isGhes = exports.validatePythonVersionFormatForPyPy = exports.writeExactPyPyVersionFile = exports.readExactPyPyVersionFile = exports.getPyPyVersionFromPath = exports.isNightlyKeyword = exports.validateVersion = exports.createSymlinkInFolder = exports.WINDOWS_PLATFORMS = exports.WINDOWS_ARCHS = exports.IS_MAC = exports.IS_LINUX = exports.IS_WINDOWS = void 0;
9194291944/* eslint no-unsafe-finally: "off" */
9194391945const cache = __importStar(__nccwpck_require__(7799));
9194491946const core = __importStar(__nccwpck_require__(2186));
@@ -92198,6 +92200,20 @@ function getNextPageUrl(response) {
9219892200 return null;
9219992201}
9220092202exports.getNextPageUrl = getNextPageUrl;
92203+ /**
92204+ * Add temporary fix for Windows
92205+ * On Windows, it is necessary to retain the .zip extension for proper extraction.
92206+ * because the tc.extractZip() failure due to tc.downloadTool() not adding .zip extension.
92207+ * Related issue: https://github.com/actions/toolkit/issues/1179
92208+ * Related issue: https://github.com/actions/setup-python/issues/819
92209+ */
92210+ function getDownloadFileName(downloadUrl) {
92211+ const tempDir = process.env.RUNNER_TEMP || '.';
92212+ return exports.IS_WINDOWS
92213+ ? path.join(tempDir, path.basename(downloadUrl))
92214+ : undefined;
92215+ }
92216+ exports.getDownloadFileName = getDownloadFileName;
9220192217
9220292218
9220392219/***/ }),
0 commit comments