diff --git a/__tests__/utils/inputs.test.ts b/__tests__/utils/inputs.test.ts index a066833..e16ffa6 100644 --- a/__tests__/utils/inputs.test.ts +++ b/__tests__/utils/inputs.test.ts @@ -36,7 +36,7 @@ jest.unstable_mockModule("@actions/core", () => ({ const { CacheLocalSource, loadInputs } = await import("../../src/utils/inputs"); -function createTempProject(files: Record): string { +function createTempProject(files: Record = {}): string { const dir = fs.mkdtempSync(path.join(os.tmpdir(), "setup-uv-inputs-test-")); tempDirs.push(dir); @@ -60,11 +60,8 @@ function resetEnvironment(): void { } function restoreEnvironment(): void { - while (tempDirs.length > 0) { - const dir = tempDirs.pop(); - if (dir !== undefined) { - fs.rmSync(dir, { force: true, recursive: true }); - } + for (const dir of tempDirs.splice(0)) { + fs.rmSync(dir, { force: true, recursive: true }); } process.env.HOME = ORIGINAL_HOME; @@ -74,13 +71,8 @@ function restoreEnvironment(): void { process.env.UV_PYTHON_INSTALL_DIR = ORIGINAL_UV_PYTHON_INSTALL_DIR; } -beforeEach(() => { - resetEnvironment(); -}); - -afterEach(() => { - restoreEnvironment(); -}); +beforeEach(resetEnvironment); +afterEach(restoreEnvironment); describe("loadInputs", () => { it("loads defaults for a github-hosted runner", () => { @@ -125,7 +117,7 @@ cache-dir = "/tmp/pyproject-toml-defined-cache-path" }); it("uses UV_CACHE_DIR from the environment", () => { - mockInputs["working-directory"] = createTempProject({}); + mockInputs["working-directory"] = createTempProject(); process.env.UV_CACHE_DIR = "/env/cache-dir"; const inputs = loadInputs(); diff --git a/dist/save-cache/index.cjs b/dist/save-cache/index.cjs index 42f3ae7..ecbfbbb 100644 --- a/dist/save-cache/index.cjs +++ b/dist/save-cache/index.cjs @@ -62959,19 +62959,12 @@ function getConfigValueFromTomlFile(filePath, key) { function loadInputs() { const workingDirectory = getInput("working-directory"); const version3 = getInput("version"); - const versionFile = getVersionFile( - workingDirectory, - getInput("version-file") - ); + const versionFile = getVersionFile(workingDirectory); const pythonVersion = getInput("python-version"); const activateEnvironment = getBooleanInput("activate-environment"); - const venvPath = getVenvPath( - workingDirectory, - getInput("venv-path"), - activateEnvironment - ); + const venvPath = getVenvPath(workingDirectory, activateEnvironment); const checksum = getInput("checksum"); - const enableCache = getEnableCache(getInput("enable-cache")); + const enableCache = getEnableCache(); const restoreCache2 = getInput("restore-cache") === "true"; const saveCache4 = getInput("save-cache") === "true"; const cacheSuffix = getInput("cache-suffix") || ""; @@ -62980,26 +62973,18 @@ function loadInputs() { versionFile, enableCache ); - const cacheDependencyGlob = getCacheDependencyGlob( - workingDirectory, - getInput("cache-dependency-glob") - ); + const cacheDependencyGlob = getCacheDependencyGlob(workingDirectory); const pruneCache2 = getInput("prune-cache") === "true"; const cachePython = getInput("cache-python") === "true"; const ignoreNothingToCache = getInput("ignore-nothing-to-cache") === "true"; const ignoreEmptyWorkdir = getInput("ignore-empty-workdir") === "true"; - const toolBinDir = getToolBinDir( - workingDirectory, - getInput("tool-bin-dir") - ); - const toolDir = getToolDir(workingDirectory, getInput("tool-dir")); + const toolBinDir = getToolBinDir(workingDirectory); + const toolDir = getToolDir(workingDirectory); const pythonDir = getUvPythonDir(); const githubToken = getInput("github-token"); - const manifestFile = getManifestFile(getInput("manifest-file")); + const manifestFile = getManifestFile(); const addProblemMatchers = getInput("add-problem-matchers") === "true"; - const resolutionStrategy = getResolutionStrategy( - getInput("resolution-strategy") - ); + const resolutionStrategy = getResolutionStrategy(); return { activateEnvironment, addProblemMatchers, @@ -63027,14 +63012,16 @@ function loadInputs() { workingDirectory }; } -function getVersionFile(workingDirectory, versionFileInput) { +function getVersionFile(workingDirectory) { + const versionFileInput = getInput("version-file"); if (versionFileInput !== "") { const tildeExpanded = expandTilde(versionFileInput); return resolveRelativePath(workingDirectory, tildeExpanded); } return versionFileInput; } -function getVenvPath(workingDirectory, venvPathInput, activateEnvironment) { +function getVenvPath(workingDirectory, activateEnvironment) { + const venvPathInput = getInput("venv-path"); if (venvPathInput !== "") { if (!activateEnvironment) { warning("venv-path is only used when activate-environment is true"); @@ -63044,13 +63031,15 @@ function getVenvPath(workingDirectory, venvPathInput, activateEnvironment) { } return normalizePath(resolveRelativePath(workingDirectory, ".venv")); } -function getEnableCache(enableCacheInput) { +function getEnableCache() { + const enableCacheInput = getInput("enable-cache"); if (enableCacheInput === "auto") { return process.env.RUNNER_ENVIRONMENT === "github-hosted"; } return enableCacheInput === "true"; } -function getToolBinDir(workingDirectory, toolBinDirInput) { +function getToolBinDir(workingDirectory) { + const toolBinDirInput = getInput("tool-bin-dir"); if (toolBinDirInput !== "") { const tildeExpanded = expandTilde(toolBinDirInput); return resolveRelativePath(workingDirectory, tildeExpanded); @@ -63065,7 +63054,8 @@ function getToolBinDir(workingDirectory, toolBinDirInput) { } return void 0; } -function getToolDir(workingDirectory, toolDirInput) { +function getToolDir(workingDirectory) { + const toolDirInput = getInput("tool-dir"); if (toolDirInput !== "") { const tildeExpanded = expandTilde(toolDirInput); return resolveRelativePath(workingDirectory, tildeExpanded); @@ -63161,7 +63151,8 @@ function getUvPythonDir() { "Could not determine UV_PYTHON_INSTALL_DIR. Please make sure RUNNER_TEMP is set or provide the UV_PYTHON_INSTALL_DIR environment variable" ); } -function getCacheDependencyGlob(workingDirectory, cacheDependencyGlobInput) { +function getCacheDependencyGlob(workingDirectory) { + const cacheDependencyGlobInput = getInput("cache-dependency-glob"); if (cacheDependencyGlobInput !== "") { return cacheDependencyGlobInput.split("\n").map((part) => part.trim()).map((part) => expandTilde(part)).map((part) => resolveRelativePath(workingDirectory, part)).join("\n"); } @@ -63191,13 +63182,15 @@ function resolveRelativePath(workingDirectory, inputPath) { ); return hasNegation ? `!${resolvedPath}` : resolvedPath; } -function getManifestFile(manifestFileInput) { +function getManifestFile() { + const manifestFileInput = getInput("manifest-file"); if (manifestFileInput !== "") { return manifestFileInput; } return void 0; } -function getResolutionStrategy(resolutionStrategyInput) { +function getResolutionStrategy() { + const resolutionStrategyInput = getInput("resolution-strategy"); if (resolutionStrategyInput === "lowest") { return "lowest"; } diff --git a/dist/setup/index.cjs b/dist/setup/index.cjs index fad1f29..2b2496f 100644 --- a/dist/setup/index.cjs +++ b/dist/setup/index.cjs @@ -96557,19 +96557,12 @@ function getConfigValueFromTomlFile(filePath, key) { function loadInputs() { const workingDirectory = getInput("working-directory"); const version3 = getInput("version"); - const versionFile = getVersionFile( - workingDirectory, - getInput("version-file") - ); + const versionFile = getVersionFile(workingDirectory); const pythonVersion = getInput("python-version"); const activateEnvironment2 = getBooleanInput("activate-environment"); - const venvPath = getVenvPath( - workingDirectory, - getInput("venv-path"), - activateEnvironment2 - ); + const venvPath = getVenvPath(workingDirectory, activateEnvironment2); const checksum = getInput("checksum"); - const enableCache = getEnableCache(getInput("enable-cache")); + const enableCache = getEnableCache(); const restoreCache3 = getInput("restore-cache") === "true"; const saveCache2 = getInput("save-cache") === "true"; const cacheSuffix = getInput("cache-suffix") || ""; @@ -96578,26 +96571,18 @@ function loadInputs() { versionFile, enableCache ); - const cacheDependencyGlob = getCacheDependencyGlob( - workingDirectory, - getInput("cache-dependency-glob") - ); + const cacheDependencyGlob = getCacheDependencyGlob(workingDirectory); const pruneCache = getInput("prune-cache") === "true"; const cachePython = getInput("cache-python") === "true"; const ignoreNothingToCache = getInput("ignore-nothing-to-cache") === "true"; const ignoreEmptyWorkdir = getInput("ignore-empty-workdir") === "true"; - const toolBinDir = getToolBinDir( - workingDirectory, - getInput("tool-bin-dir") - ); - const toolDir = getToolDir(workingDirectory, getInput("tool-dir")); + const toolBinDir = getToolBinDir(workingDirectory); + const toolDir = getToolDir(workingDirectory); const pythonDir = getUvPythonDir(); const githubToken = getInput("github-token"); - const manifestFile = getManifestFile(getInput("manifest-file")); + const manifestFile = getManifestFile(); const addProblemMatchers = getInput("add-problem-matchers") === "true"; - const resolutionStrategy = getResolutionStrategy( - getInput("resolution-strategy") - ); + const resolutionStrategy = getResolutionStrategy(); return { activateEnvironment: activateEnvironment2, addProblemMatchers, @@ -96625,14 +96610,16 @@ function loadInputs() { workingDirectory }; } -function getVersionFile(workingDirectory, versionFileInput) { +function getVersionFile(workingDirectory) { + const versionFileInput = getInput("version-file"); if (versionFileInput !== "") { const tildeExpanded = expandTilde(versionFileInput); return resolveRelativePath(workingDirectory, tildeExpanded); } return versionFileInput; } -function getVenvPath(workingDirectory, venvPathInput, activateEnvironment2) { +function getVenvPath(workingDirectory, activateEnvironment2) { + const venvPathInput = getInput("venv-path"); if (venvPathInput !== "") { if (!activateEnvironment2) { warning("venv-path is only used when activate-environment is true"); @@ -96642,13 +96629,15 @@ function getVenvPath(workingDirectory, venvPathInput, activateEnvironment2) { } return normalizePath(resolveRelativePath(workingDirectory, ".venv")); } -function getEnableCache(enableCacheInput) { +function getEnableCache() { + const enableCacheInput = getInput("enable-cache"); if (enableCacheInput === "auto") { return process.env.RUNNER_ENVIRONMENT === "github-hosted"; } return enableCacheInput === "true"; } -function getToolBinDir(workingDirectory, toolBinDirInput) { +function getToolBinDir(workingDirectory) { + const toolBinDirInput = getInput("tool-bin-dir"); if (toolBinDirInput !== "") { const tildeExpanded = expandTilde(toolBinDirInput); return resolveRelativePath(workingDirectory, tildeExpanded); @@ -96663,7 +96652,8 @@ function getToolBinDir(workingDirectory, toolBinDirInput) { } return void 0; } -function getToolDir(workingDirectory, toolDirInput) { +function getToolDir(workingDirectory) { + const toolDirInput = getInput("tool-dir"); if (toolDirInput !== "") { const tildeExpanded = expandTilde(toolDirInput); return resolveRelativePath(workingDirectory, tildeExpanded); @@ -96759,7 +96749,8 @@ function getUvPythonDir() { "Could not determine UV_PYTHON_INSTALL_DIR. Please make sure RUNNER_TEMP is set or provide the UV_PYTHON_INSTALL_DIR environment variable" ); } -function getCacheDependencyGlob(workingDirectory, cacheDependencyGlobInput) { +function getCacheDependencyGlob(workingDirectory) { + const cacheDependencyGlobInput = getInput("cache-dependency-glob"); if (cacheDependencyGlobInput !== "") { return cacheDependencyGlobInput.split("\n").map((part) => part.trim()).map((part) => expandTilde(part)).map((part) => resolveRelativePath(workingDirectory, part)).join("\n"); } @@ -96789,13 +96780,15 @@ function resolveRelativePath(workingDirectory, inputPath) { ); return hasNegation ? `!${resolvedPath}` : resolvedPath; } -function getManifestFile(manifestFileInput) { +function getManifestFile() { + const manifestFileInput = getInput("manifest-file"); if (manifestFileInput !== "") { return manifestFileInput; } return void 0; } -function getResolutionStrategy(resolutionStrategyInput) { +function getResolutionStrategy() { + const resolutionStrategyInput = getInput("resolution-strategy"); if (resolutionStrategyInput === "lowest") { return "lowest"; } diff --git a/src/utils/inputs.ts b/src/utils/inputs.ts index 7fc49b3..be8ce83 100644 --- a/src/utils/inputs.ts +++ b/src/utils/inputs.ts @@ -14,6 +14,8 @@ export interface CacheLocalPath { source: CacheLocalSource; } +export type ResolutionStrategy = "highest" | "lowest"; + export interface SetupInputs { workingDirectory: string; version: string; @@ -38,25 +40,18 @@ export interface SetupInputs { githubToken: string; manifestFile?: string; addProblemMatchers: boolean; - resolutionStrategy: "highest" | "lowest"; + resolutionStrategy: ResolutionStrategy; } export function loadInputs(): SetupInputs { const workingDirectory = core.getInput("working-directory"); const version = core.getInput("version"); - const versionFile = getVersionFile( - workingDirectory, - core.getInput("version-file"), - ); + const versionFile = getVersionFile(workingDirectory); const pythonVersion = core.getInput("python-version"); const activateEnvironment = core.getBooleanInput("activate-environment"); - const venvPath = getVenvPath( - workingDirectory, - core.getInput("venv-path"), - activateEnvironment, - ); + const venvPath = getVenvPath(workingDirectory, activateEnvironment); const checksum = core.getInput("checksum"); - const enableCache = getEnableCache(core.getInput("enable-cache")); + const enableCache = getEnableCache(); const restoreCache = core.getInput("restore-cache") === "true"; const saveCache = core.getInput("save-cache") === "true"; const cacheSuffix = core.getInput("cache-suffix") || ""; @@ -65,27 +60,19 @@ export function loadInputs(): SetupInputs { versionFile, enableCache, ); - const cacheDependencyGlob = getCacheDependencyGlob( - workingDirectory, - core.getInput("cache-dependency-glob"), - ); + const cacheDependencyGlob = getCacheDependencyGlob(workingDirectory); const pruneCache = core.getInput("prune-cache") === "true"; const cachePython = core.getInput("cache-python") === "true"; const ignoreNothingToCache = core.getInput("ignore-nothing-to-cache") === "true"; const ignoreEmptyWorkdir = core.getInput("ignore-empty-workdir") === "true"; - const toolBinDir = getToolBinDir( - workingDirectory, - core.getInput("tool-bin-dir"), - ); - const toolDir = getToolDir(workingDirectory, core.getInput("tool-dir")); + const toolBinDir = getToolBinDir(workingDirectory); + const toolDir = getToolDir(workingDirectory); const pythonDir = getUvPythonDir(); const githubToken = core.getInput("github-token"); - const manifestFile = getManifestFile(core.getInput("manifest-file")); + const manifestFile = getManifestFile(); const addProblemMatchers = core.getInput("add-problem-matchers") === "true"; - const resolutionStrategy = getResolutionStrategy( - core.getInput("resolution-strategy"), - ); + const resolutionStrategy = getResolutionStrategy(); return { activateEnvironment, @@ -115,10 +102,8 @@ export function loadInputs(): SetupInputs { }; } -function getVersionFile( - workingDirectory: string, - versionFileInput: string, -): string { +function getVersionFile(workingDirectory: string): string { + const versionFileInput = core.getInput("version-file"); if (versionFileInput !== "") { const tildeExpanded = expandTilde(versionFileInput); return resolveRelativePath(workingDirectory, tildeExpanded); @@ -128,9 +113,9 @@ function getVersionFile( function getVenvPath( workingDirectory: string, - venvPathInput: string, activateEnvironment: boolean, ): string { + const venvPathInput = core.getInput("venv-path"); if (venvPathInput !== "") { if (!activateEnvironment) { core.warning("venv-path is only used when activate-environment is true"); @@ -141,17 +126,16 @@ function getVenvPath( return normalizePath(resolveRelativePath(workingDirectory, ".venv")); } -function getEnableCache(enableCacheInput: string): boolean { +function getEnableCache(): boolean { + const enableCacheInput = core.getInput("enable-cache"); if (enableCacheInput === "auto") { return process.env.RUNNER_ENVIRONMENT === "github-hosted"; } return enableCacheInput === "true"; } -function getToolBinDir( - workingDirectory: string, - toolBinDirInput: string, -): string | undefined { +function getToolBinDir(workingDirectory: string): string | undefined { + const toolBinDirInput = core.getInput("tool-bin-dir"); if (toolBinDirInput !== "") { const tildeExpanded = expandTilde(toolBinDirInput); return resolveRelativePath(workingDirectory, tildeExpanded); @@ -167,10 +151,8 @@ function getToolBinDir( return undefined; } -function getToolDir( - workingDirectory: string, - toolDirInput: string, -): string | undefined { +function getToolDir(workingDirectory: string): string | undefined { + const toolDirInput = core.getInput("tool-dir"); if (toolDirInput !== "") { const tildeExpanded = expandTilde(toolDirInput); return resolveRelativePath(workingDirectory, tildeExpanded); @@ -277,10 +259,8 @@ export function getUvPythonDir(): string { ); } -function getCacheDependencyGlob( - workingDirectory: string, - cacheDependencyGlobInput: string, -): string { +function getCacheDependencyGlob(workingDirectory: string): string { + const cacheDependencyGlobInput = core.getInput("cache-dependency-glob"); if (cacheDependencyGlobInput !== "") { return cacheDependencyGlobInput .split("\n") @@ -327,16 +307,16 @@ function resolveRelativePath( return hasNegation ? `!${resolvedPath}` : resolvedPath; } -function getManifestFile(manifestFileInput: string): string | undefined { +function getManifestFile(): string | undefined { + const manifestFileInput = core.getInput("manifest-file"); if (manifestFileInput !== "") { return manifestFileInput; } return undefined; } -function getResolutionStrategy( - resolutionStrategyInput: string, -): "highest" | "lowest" { +function getResolutionStrategy(): ResolutionStrategy { + const resolutionStrategyInput = core.getInput("resolution-strategy"); if (resolutionStrategyInput === "lowest") { return "lowest"; }