mirror of
https://github.com/astral-sh/setup-uv.git
synced 2026-04-16 16:40:17 +00:00
feat: add venv-path input for custom virtual environment location
Allow users to specify a custom path for the virtual environment when using activate-environment. This is useful for CI workflows that need to create isolated venvs outside the working directory (e.g., in $RUNNER_TEMP) to avoid conflicts with project-level configurations. When venv-path is not specified, the default behavior remains unchanged (.venv in the working directory).
This commit is contained in:
parent
9cfd029643
commit
c19391797c
6 changed files with 89 additions and 10 deletions
19
dist/setup/index.js
generated
vendored
19
dist/setup/index.js
generated
vendored
|
|
@ -96496,10 +96496,10 @@ async function activateEnvironment() {
|
|||
if (process.env.UV_NO_MODIFY_PATH !== undefined) {
|
||||
throw new Error("UV_NO_MODIFY_PATH and activate-environment cannot be used together.");
|
||||
}
|
||||
const execArgs = ["venv", ".venv", "--directory", inputs_1.workingDirectory];
|
||||
core.info("Activating python venv...");
|
||||
await exec.exec("uv", execArgs);
|
||||
const venvPath = path.resolve(`${inputs_1.workingDirectory}${path.sep}.venv`);
|
||||
// Use custom venv path if provided, otherwise default to .venv in working directory
|
||||
const venvPath = inputs_1.venvPath ?? path.resolve(`${inputs_1.workingDirectory}${path.sep}.venv`);
|
||||
core.info(`Activating python venv at ${venvPath}...`);
|
||||
await exec.exec("uv", ["venv", venvPath]);
|
||||
let venvBinPath = `${venvPath}${path.sep}bin`;
|
||||
if (process.platform === "win32") {
|
||||
venvBinPath = `${venvPath}${path.sep}Scripts`;
|
||||
|
|
@ -96678,7 +96678,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.resolutionStrategy = exports.addProblemMatchers = exports.manifestFile = exports.githubToken = exports.pythonDir = exports.toolDir = exports.toolBinDir = exports.ignoreEmptyWorkdir = exports.ignoreNothingToCache = exports.cachePython = exports.pruneCache = exports.cacheDependencyGlob = exports.cacheLocalPath = exports.cacheSuffix = exports.saveCache = exports.restoreCache = exports.enableCache = exports.checkSum = exports.activateEnvironment = exports.pythonVersion = exports.versionFile = exports.version = exports.workingDirectory = exports.CacheLocalSource = void 0;
|
||||
exports.resolutionStrategy = exports.addProblemMatchers = exports.manifestFile = exports.githubToken = exports.pythonDir = exports.toolDir = exports.toolBinDir = exports.ignoreEmptyWorkdir = exports.ignoreNothingToCache = exports.cachePython = exports.pruneCache = exports.cacheDependencyGlob = exports.cacheLocalPath = exports.cacheSuffix = exports.saveCache = exports.restoreCache = exports.enableCache = exports.checkSum = exports.venvPath = exports.activateEnvironment = exports.pythonVersion = exports.versionFile = exports.version = exports.workingDirectory = exports.CacheLocalSource = void 0;
|
||||
exports.getUvPythonDir = getUvPythonDir;
|
||||
const node_path_1 = __importDefault(__nccwpck_require__(6760));
|
||||
const core = __importStar(__nccwpck_require__(7484));
|
||||
|
|
@ -96695,6 +96695,7 @@ exports.version = core.getInput("version");
|
|||
exports.versionFile = getVersionFile();
|
||||
exports.pythonVersion = core.getInput("python-version");
|
||||
exports.activateEnvironment = core.getBooleanInput("activate-environment");
|
||||
exports.venvPath = getVenvPath();
|
||||
exports.checkSum = core.getInput("checksum");
|
||||
exports.enableCache = getEnableCache();
|
||||
exports.restoreCache = core.getInput("restore-cache") === "true";
|
||||
|
|
@ -96721,6 +96722,14 @@ function getVersionFile() {
|
|||
}
|
||||
return versionFileInput;
|
||||
}
|
||||
function getVenvPath() {
|
||||
const venvPathInput = core.getInput("venv-path");
|
||||
if (venvPathInput !== "") {
|
||||
const tildeExpanded = expandTilde(venvPathInput);
|
||||
return resolveRelativePath(tildeExpanded);
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
function getEnableCache() {
|
||||
const enableCacheInput = core.getInput("enable-cache");
|
||||
if (enableCacheInput === "auto") {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue