From 6f467a02b36f2701aae4f729ee6d76a1229efd54 Mon Sep 17 00:00:00 2001 From: Kevin Stillhammer Date: Tue, 5 Nov 2024 21:21:57 +0100 Subject: [PATCH] add archive extension to downloaded assets (#148) Fixes missing .zip extensions which breaks on old PowerShell versions Fixes: #147 --- dist/setup/index.js | 20 ++++++++------------ src/download/download-latest.ts | 10 +++++----- src/download/download-version.ts | 10 +++++----- 3 files changed, 18 insertions(+), 22 deletions(-) diff --git a/dist/setup/index.js b/dist/setup/index.js index ab3c5e1..899bd47 100644 --- a/dist/setup/index.js +++ b/dist/setup/index.js @@ -89846,15 +89846,13 @@ const constants_1 = __nccwpck_require__(6156); function downloadLatest(platform, arch, checkSum, githubToken) { return __awaiter(this, void 0, void 0, function* () { const artifact = `uv-${arch}-${platform}`; - let downloadUrl = `https://github.com/${constants_1.OWNER}/${constants_1.REPO}/releases/latest/download/${artifact}`; + let extension = ".tar.gz"; if (platform === "pc-windows-msvc") { - downloadUrl += ".zip"; - } - else { - downloadUrl += ".tar.gz"; + extension = ".zip"; } + const downloadUrl = `https://github.com/${constants_1.OWNER}/${constants_1.REPO}/releases/latest/download/${artifact}${extension}`; core.info(`Downloading uv from "${downloadUrl}" ...`); - const downloadPath = yield tc.downloadTool(downloadUrl, undefined, githubToken); + const downloadPath = yield tc.downloadTool(downloadUrl, `${artifact}${extension}`, githubToken); let uvExecutablePath; let uvDir; if (platform === "pc-windows-msvc") { @@ -89958,15 +89956,13 @@ function downloadVersion(platform, arch, version, checkSum, githubToken) { return __awaiter(this, void 0, void 0, function* () { const resolvedVersion = yield resolveVersion(version, githubToken); const artifact = `uv-${arch}-${platform}`; - let downloadUrl = `https://github.com/${constants_1.OWNER}/${constants_1.REPO}/releases/download/${resolvedVersion}/${artifact}`; + let extension = ".tar.gz"; if (platform === "pc-windows-msvc") { - downloadUrl += ".zip"; - } - else { - downloadUrl += ".tar.gz"; + extension = ".zip"; } + const downloadUrl = `https://github.com/${constants_1.OWNER}/${constants_1.REPO}/releases/download/${resolvedVersion}/${artifact}${extension}`; core.info(`Downloading uv from "${downloadUrl}" ...`); - const downloadPath = yield tc.downloadTool(downloadUrl, undefined, githubToken); + const downloadPath = yield tc.downloadTool(downloadUrl, `${artifact}${extension}`, githubToken); yield (0, checksum_1.validateChecksum)(checkSum, downloadPath, arch, platform, resolvedVersion); let uvDir; if (platform === "pc-windows-msvc") { diff --git a/src/download/download-latest.ts b/src/download/download-latest.ts index 6f173e0..cd78358 100644 --- a/src/download/download-latest.ts +++ b/src/download/download-latest.ts @@ -2,6 +2,7 @@ import * as core from "@actions/core"; import * as tc from "@actions/tool-cache"; import * as exec from "@actions/exec"; import * as path from "node:path"; +import { promises as fs } from "node:fs"; import type { Architecture, Platform } from "../utils/platforms"; import { validateChecksum } from "./checksum/checksum"; import { OWNER, REPO, TOOL_CACHE_NAME } from "../utils/constants"; @@ -13,17 +14,16 @@ export async function downloadLatest( githubToken: string | undefined, ): Promise<{ cachedToolDir: string; version: string }> { const artifact = `uv-${arch}-${platform}`; - let downloadUrl = `https://github.com/${OWNER}/${REPO}/releases/latest/download/${artifact}`; + let extension = ".tar.gz"; if (platform === "pc-windows-msvc") { - downloadUrl += ".zip"; - } else { - downloadUrl += ".tar.gz"; + extension = ".zip"; } + const downloadUrl = `https://github.com/${OWNER}/${REPO}/releases/latest/download/${artifact}${extension}`; core.info(`Downloading uv from "${downloadUrl}" ...`); const downloadPath = await tc.downloadTool( downloadUrl, - undefined, + `${artifact}${extension}`, githubToken, ); let uvExecutablePath: string; diff --git a/src/download/download-version.ts b/src/download/download-version.ts index b6123e6..6590050 100644 --- a/src/download/download-version.ts +++ b/src/download/download-version.ts @@ -1,6 +1,7 @@ import * as core from "@actions/core"; import * as tc from "@actions/tool-cache"; import * as path from "node:path"; +import { promises as fs } from "node:fs"; import { OWNER, REPO, TOOL_CACHE_NAME } from "../utils/constants"; import type { Architecture, Platform } from "../utils/platforms"; import { validateChecksum } from "./checksum/checksum"; @@ -30,17 +31,16 @@ export async function downloadVersion( ): Promise<{ version: string; cachedToolDir: string }> { const resolvedVersion = await resolveVersion(version, githubToken); const artifact = `uv-${arch}-${platform}`; - let downloadUrl = `https://github.com/${OWNER}/${REPO}/releases/download/${resolvedVersion}/${artifact}`; + let extension = ".tar.gz"; if (platform === "pc-windows-msvc") { - downloadUrl += ".zip"; - } else { - downloadUrl += ".tar.gz"; + extension = ".zip"; } + const downloadUrl = `https://github.com/${OWNER}/${REPO}/releases/download/${resolvedVersion}/${artifact}${extension}`; core.info(`Downloading uv from "${downloadUrl}" ...`); const downloadPath = await tc.downloadTool( downloadUrl, - undefined, + `${artifact}${extension}`, githubToken, ); await validateChecksum(