diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9506f07..45f9870 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -584,6 +584,28 @@ jobs: exit 1 fi + test-relative-path: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: mkdir + run: mkdir -p /tmp/setup-uv-test-relative-path + - name: Create requirements.txt + run: echo "uv==0.6.17" > /tmp/setup-uv-test-relative-path/setup-uv-requirements.txt + - name: Install from requirements file + id: setup-uv + uses: ./ + with: + version-file: "./setup-uv-requirements.txt" + working-directory: "/tmp/setup-uv-test-relative-path" + cache-dependency-glob: "./setup-uv-requirements.txt" + - name: Correct version gets installed + run: | + if [ "$(uv --version)" != "uv 0.6.17" ]; then + echo "Wrong uv version: $(uv --version)" + exit 1 + fi + all-tests-passed: runs-on: ubuntu-latest needs: @@ -619,6 +641,7 @@ jobs: - test-no-python-version - test-custom-manifest-file - test-absolute-path + - test-relative-path if: always() steps: - name: All tests passed diff --git a/dist/save-cache/index.js b/dist/save-cache/index.js index 242308a..b2466b7 100644 --- a/dist/save-cache/index.js +++ b/dist/save-cache/index.js @@ -88998,14 +88998,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.manifestFile = exports.githubToken = exports.serverUrl = exports.toolDir = exports.toolBinDir = exports.ignoreEmptyWorkdir = exports.ignoreNothingToCache = exports.pruneCache = exports.cacheDependencyGlob = exports.cacheLocalPath = exports.cacheSuffix = exports.enableCache = exports.checkSum = exports.workingDirectory = exports.activateEnvironment = exports.pythonVersion = exports.versionFile = exports.version = void 0; +exports.manifestFile = exports.githubToken = exports.serverUrl = exports.toolDir = exports.toolBinDir = exports.ignoreEmptyWorkdir = exports.ignoreNothingToCache = exports.pruneCache = exports.cacheDependencyGlob = exports.cacheLocalPath = exports.cacheSuffix = exports.enableCache = exports.checkSum = exports.activateEnvironment = exports.pythonVersion = exports.versionFile = exports.version = exports.workingDirectory = void 0; const core = __importStar(__nccwpck_require__(7484)); const node_path_1 = __importDefault(__nccwpck_require__(6760)); +exports.workingDirectory = core.getInput("working-directory"); exports.version = core.getInput("version"); -exports.versionFile = core.getInput("version-file"); +exports.versionFile = getVersionFile(); exports.pythonVersion = core.getInput("python-version"); exports.activateEnvironment = core.getBooleanInput("activate-environment"); -exports.workingDirectory = core.getInput("working-directory"); exports.checkSum = core.getInput("checksum"); exports.enableCache = getEnableCache(); exports.cacheSuffix = core.getInput("cache-suffix") || ""; @@ -89019,6 +89019,14 @@ exports.toolDir = getToolDir(); exports.serverUrl = core.getInput("server-url"); exports.githubToken = core.getInput("github-token"); exports.manifestFile = getManifestFile(); +function getVersionFile() { + const versionFileInput = core.getInput("version-file"); + if (versionFileInput !== "") { + const tildeExpanded = expandTilde(versionFileInput); + return resolveRelativePath(tildeExpanded); + } + return versionFileInput; +} function getEnableCache() { const enableCacheInput = core.getInput("enable-cache"); if (enableCacheInput === "auto") { @@ -89093,7 +89101,11 @@ function resolveRelativePath(inputPath) { if (node_path_1.default.isAbsolute(inputPath)) { return inputPath; } - const absolutePath = `${exports.workingDirectory}${node_path_1.default.sep}${inputPath}`; + let absolutePath = inputPath; + if (absolutePath.startsWith("./")) { + absolutePath = absolutePath.substring(2); + } + absolutePath = `${exports.workingDirectory}${node_path_1.default.sep}${absolutePath}`; core.debug(`Resolving relative path ${inputPath} to ${absolutePath}`); return absolutePath; } diff --git a/dist/setup/index.js b/dist/setup/index.js index be2d838..65e7c4c 100644 --- a/dist/setup/index.js +++ b/dist/setup/index.js @@ -125522,14 +125522,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.manifestFile = exports.githubToken = exports.serverUrl = exports.toolDir = exports.toolBinDir = exports.ignoreEmptyWorkdir = exports.ignoreNothingToCache = exports.pruneCache = exports.cacheDependencyGlob = exports.cacheLocalPath = exports.cacheSuffix = exports.enableCache = exports.checkSum = exports.workingDirectory = exports.activateEnvironment = exports.pythonVersion = exports.versionFile = exports.version = void 0; +exports.manifestFile = exports.githubToken = exports.serverUrl = exports.toolDir = exports.toolBinDir = exports.ignoreEmptyWorkdir = exports.ignoreNothingToCache = exports.pruneCache = exports.cacheDependencyGlob = exports.cacheLocalPath = exports.cacheSuffix = exports.enableCache = exports.checkSum = exports.activateEnvironment = exports.pythonVersion = exports.versionFile = exports.version = exports.workingDirectory = void 0; const core = __importStar(__nccwpck_require__(37484)); const node_path_1 = __importDefault(__nccwpck_require__(76760)); +exports.workingDirectory = core.getInput("working-directory"); exports.version = core.getInput("version"); -exports.versionFile = core.getInput("version-file"); +exports.versionFile = getVersionFile(); exports.pythonVersion = core.getInput("python-version"); exports.activateEnvironment = core.getBooleanInput("activate-environment"); -exports.workingDirectory = core.getInput("working-directory"); exports.checkSum = core.getInput("checksum"); exports.enableCache = getEnableCache(); exports.cacheSuffix = core.getInput("cache-suffix") || ""; @@ -125543,6 +125543,14 @@ exports.toolDir = getToolDir(); exports.serverUrl = core.getInput("server-url"); exports.githubToken = core.getInput("github-token"); exports.manifestFile = getManifestFile(); +function getVersionFile() { + const versionFileInput = core.getInput("version-file"); + if (versionFileInput !== "") { + const tildeExpanded = expandTilde(versionFileInput); + return resolveRelativePath(tildeExpanded); + } + return versionFileInput; +} function getEnableCache() { const enableCacheInput = core.getInput("enable-cache"); if (enableCacheInput === "auto") { @@ -125617,7 +125625,11 @@ function resolveRelativePath(inputPath) { if (node_path_1.default.isAbsolute(inputPath)) { return inputPath; } - const absolutePath = `${exports.workingDirectory}${node_path_1.default.sep}${inputPath}`; + let absolutePath = inputPath; + if (absolutePath.startsWith("./")) { + absolutePath = absolutePath.substring(2); + } + absolutePath = `${exports.workingDirectory}${node_path_1.default.sep}${absolutePath}`; core.debug(`Resolving relative path ${inputPath} to ${absolutePath}`); return absolutePath; } diff --git a/src/utils/inputs.ts b/src/utils/inputs.ts index a164221..63d87c7 100644 --- a/src/utils/inputs.ts +++ b/src/utils/inputs.ts @@ -1,11 +1,11 @@ import * as core from "@actions/core"; import path from "node:path"; +export const workingDirectory = core.getInput("working-directory"); export const version = core.getInput("version"); -export const versionFile = core.getInput("version-file"); +export const versionFile = getVersionFile(); export const pythonVersion = core.getInput("python-version"); export const activateEnvironment = core.getBooleanInput("activate-environment"); -export const workingDirectory = core.getInput("working-directory"); export const checkSum = core.getInput("checksum"); export const enableCache = getEnableCache(); export const cacheSuffix = core.getInput("cache-suffix") || ""; @@ -22,6 +22,15 @@ export const serverUrl = core.getInput("server-url"); export const githubToken = core.getInput("github-token"); export const manifestFile = getManifestFile(); +function getVersionFile(): string { + const versionFileInput = core.getInput("version-file"); + if (versionFileInput !== "") { + const tildeExpanded = expandTilde(versionFileInput); + return resolveRelativePath(tildeExpanded); + } + return versionFileInput; +} + function getEnableCache(): boolean { const enableCacheInput = core.getInput("enable-cache"); if (enableCacheInput === "auto") { @@ -108,7 +117,11 @@ function resolveRelativePath(inputPath: string): string { if (path.isAbsolute(inputPath)) { return inputPath; } - const absolutePath = `${workingDirectory}${path.sep}${inputPath}`; + let absolutePath = inputPath; + if (absolutePath.startsWith("./")) { + absolutePath = absolutePath.substring(2); + } + absolutePath = `${workingDirectory}${path.sep}${absolutePath}`; core.debug(`Resolving relative path ${inputPath} to ${absolutePath}`); return absolutePath; }