mirror of
https://github.com/astral-sh/setup-uv.git
synced 2025-04-08 00:18:49 -04:00
1. If defined use version input 2. If defined use uv-file input 3. If defined use pyproject-file input 4. Search for required-version in uv.toml in repo root 5. Search for required-version in pyproject.toml in repo root 6. Use latest Closes: #215
78 lines
2.6 KiB
TypeScript
78 lines
2.6 KiB
TypeScript
import * as core from "@actions/core";
|
|
import path from "node:path";
|
|
|
|
export const version = core.getInput("version");
|
|
export const pyProjectFile = core.getInput("pyproject-file");
|
|
export const uvFile = core.getInput("uv-file");
|
|
export const pythonVersion = core.getInput("python-version");
|
|
export const checkSum = core.getInput("checksum");
|
|
export const enableCache = getEnableCache();
|
|
export const cacheSuffix = core.getInput("cache-suffix") || "";
|
|
export const cacheLocalPath = getCacheLocalPath();
|
|
export const cacheDependencyGlob = core.getInput("cache-dependency-glob");
|
|
export const pruneCache = core.getInput("prune-cache") === "true";
|
|
export const ignoreNothingToCache =
|
|
core.getInput("ignore-nothing-to-cache") === "true";
|
|
export const toolBinDir = getToolBinDir();
|
|
export const toolDir = getToolDir();
|
|
export const githubToken = core.getInput("github-token");
|
|
|
|
function getEnableCache(): boolean {
|
|
const enableCacheInput = core.getInput("enable-cache");
|
|
if (enableCacheInput === "auto") {
|
|
return process.env.RUNNER_ENVIRONMENT === "github-hosted";
|
|
}
|
|
return enableCacheInput === "true";
|
|
}
|
|
|
|
function getToolBinDir(): string | undefined {
|
|
const toolBinDirInput = core.getInput("tool-bin-dir");
|
|
if (toolBinDirInput !== "") {
|
|
return expandTilde(toolBinDirInput);
|
|
}
|
|
if (process.platform === "win32") {
|
|
if (process.env.RUNNER_TEMP !== undefined) {
|
|
return `${process.env.RUNNER_TEMP}${path.sep}uv-tool-bin-dir`;
|
|
}
|
|
throw Error(
|
|
"Could not determine UV_TOOL_BIN_DIR. Please make sure RUNNER_TEMP is set or provide the tool-bin-dir input",
|
|
);
|
|
}
|
|
return undefined;
|
|
}
|
|
|
|
function getToolDir(): string | undefined {
|
|
const toolDirInput = core.getInput("tool-dir");
|
|
if (toolDirInput !== "") {
|
|
return expandTilde(toolDirInput);
|
|
}
|
|
if (process.platform === "win32") {
|
|
if (process.env.RUNNER_TEMP !== undefined) {
|
|
return `${process.env.RUNNER_TEMP}${path.sep}uv-tool-dir`;
|
|
}
|
|
throw Error(
|
|
"Could not determine UV_TOOL_DIR. Please make sure RUNNER_TEMP is set or provide the tool-dir input",
|
|
);
|
|
}
|
|
return undefined;
|
|
}
|
|
|
|
function getCacheLocalPath(): string {
|
|
const cacheLocalPathInput = core.getInput("cache-local-path");
|
|
if (cacheLocalPathInput !== "") {
|
|
return expandTilde(cacheLocalPathInput);
|
|
}
|
|
if (process.env.RUNNER_TEMP !== undefined) {
|
|
return `${process.env.RUNNER_TEMP}${path.sep}setup-uv-cache`;
|
|
}
|
|
throw Error(
|
|
"Could not determine UV_CACHE_DIR. Please make sure RUNNER_TEMP is set or provide the cache-local-path input",
|
|
);
|
|
}
|
|
|
|
function expandTilde(input: string): string {
|
|
if (input.startsWith("~")) {
|
|
return `${process.env.HOME}${input.substring(1)}`;
|
|
}
|
|
return input;
|
|
}
|