diff --git a/dist/setup/index.js b/dist/setup/index.js index 8ac8c6a..b30598c 100644 Binary files a/dist/setup/index.js and b/dist/setup/index.js differ diff --git a/src/download/download-latest.ts b/src/download/download-latest.ts index dcfd0a5..5690f77 100644 --- a/src/download/download-latest.ts +++ b/src/download/download-latest.ts @@ -4,14 +4,14 @@ import * as path from 'path' import * as exec from '@actions/exec' import {Architecture, Platform} from '../utils/platforms' import {validateChecksum} from './checksum/checksum' -import {OWNER, REPO} from '../utils/utils' +import {OWNER, REPO, TOOL_CACHE_NAME} from '../utils/utils' export async function downloadLatest( platform: Platform, arch: Architecture, checkSum: string | undefined, githubToken: string | undefined -): Promise<{downloadDir: string; version: string}> { +): Promise<{cachedToolDir: string; version: string}> { const binary = `uv-${arch}-${platform}` let downloadUrl = `https://github.com/${OWNER}/${REPO}/releases/latest/download/${binary}` if (platform === 'pc-windows-msvc') { @@ -38,8 +38,14 @@ export async function downloadLatest( } const version = await getVersion(uvExecutablePath) await validateChecksum(checkSum, downloadPath, arch, platform, version) + const cachedToolDir = await tc.cacheDir( + downloadPath, + TOOL_CACHE_NAME, + version, + arch + ) - return {downloadDir, version} + return {cachedToolDir, version} } async function getVersion(uvExecutablePath: string): Promise { diff --git a/src/download/download-version.ts b/src/download/download-version.ts index 4ef9ffd..e136e49 100644 --- a/src/download/download-version.ts +++ b/src/download/download-version.ts @@ -44,5 +44,5 @@ export async function downloadVersion( } else { tc.extractTar(downloadPath) } - return downloadPath + return await tc.cacheDir(downloadPath, TOOL_CACHE_NAME, version, arch) } diff --git a/src/setup-uv.ts b/src/setup-uv.ts index 2bb4cdd..a986fc2 100644 --- a/src/setup-uv.ts +++ b/src/setup-uv.ts @@ -24,7 +24,7 @@ async function run(): Promise { if (arch === undefined) { throw new Error(`Unsupported architecture: ${process.arch}`) } - const installedVersion = await setupUv( + const setupResult = await setupUv( platform, arch, version, @@ -32,11 +32,15 @@ async function run(): Promise { githubToken ) + addUvToPath(setupResult.uvDir) + core.setOutput('uv-version', version) + core.info(`Successfully installed uv version ${version}`) + addMatchers() setCacheDir(cacheLocalPath) if (enableCache) { - await restoreCache(installedVersion) + await restoreCache(setupResult.version) } } catch (err) { core.setFailed((err as Error).message) @@ -50,22 +54,22 @@ async function setupUv( versionInput: string, checkSum: string | undefined, githubToken: string | undefined -): Promise { +): Promise<{uvDir: string; version: string}> { let installedPath: string | undefined - let downloadDir: string + let cachedToolDir: string let version: string if (versionInput === 'latest') { const result = await downloadLatest(platform, arch, checkSum, githubToken) version = result.version - downloadDir = result.downloadDir + cachedToolDir = result.cachedToolDir } else { version = versionInput installedPath = tryGetFromToolCache(arch, versionInput) if (installedPath) { core.info(`Found uv in tool-cache for ${versionInput}`) - return version + return {uvDir: installedPath, version} } - downloadDir = await downloadVersion( + cachedToolDir = await downloadVersion( platform, arch, versionInput, @@ -74,10 +78,7 @@ async function setupUv( ) } - addUvToPath(downloadDir) - core.setOutput('uv-version', version) - core.info(`Successfully installed uv version ${version}`) - return version + return {uvDir: cachedToolDir, version} } function addUvToPath(cachedPath: string): void {