mirror of
https://github.com/astral-sh/setup-uv.git
synced 2025-06-27 06:49:19 +00:00
Use latest version from manifest-file (#458)
Some checks failed
test / test-default-version (ubuntu-latest) (push) Successful in 27s
CodeQL / Analyze (TypeScript) (push) Failing after 46s
test / test-specific-version (0.3.0) (push) Successful in 41s
test / test-specific-version (0.3.2) (push) Successful in 37s
test / test-with-explicit-token (push) Successful in 45s
test / test-python-version (ubuntu-latest) (push) Successful in 1m0s
test / lint (push) Failing after 1m40s
test / test-custom-manifest-file (push) Failing after 13m25s
test / test-no-python-version (push) Failing after 13m26s
test / test-cache-local (map[expected-cache-dir:/home/runner/work/_temp/setup-uv-cache os:ubuntu-latest]) (push) Failing after 13m27s
test / test-setup-cache-dependency-glob (push) Failing after 13m27s
test / test-setup-cache-requirements-txt (push) Failing after 13m28s
test / test-setup-cache (true, ubuntu-latest) (push) Failing after 13m29s
test / test-setup-cache (false, ubuntu-latest) (push) Failing after 13m32s
test / test-setup-cache (auto, ubuntu-latest) (push) Failing after 13m32s
test / test-musl (push) Failing after 13m32s
test / test-activate-environment (ubuntu-latest) (push) Failing after 13m34s
test / test-tool-install (ubuntu-latest) (push) Failing after 13m36s
test / test-uvx (push) Failing after 13m36s
test / test-checksum (map[checksum:4d9279ad5ca596b1e2d703901d508430eb07564dc4d8837de9e2fca9c90f8ecd os:ubuntu-latest]) (push) Failing after 13m37s
test / test-uv-file-version (push) Failing after 13m38s
test / test-malformed-pyproject-file-fallback (push) Failing after 13m41s
test / test-pyproject-file-version (push) Failing after 13m41s
test / test-pep440-version (push) Failing after 13m43s
test / test-semver-range (ubuntu-latest) (push) Failing after 13m43s
test / test-specific-version (>=0.3.0) (push) Failing after 13m45s
test / test-specific-version (0.3.x) (push) Failing after 13m46s
test / test-specific-version (0.3) (push) Failing after 13m49s
Release Drafter / ✏️ Draft release (push) Has been cancelled
test / test-default-version (macos-14) (push) Has been cancelled
test / test-default-version (macos-latest) (push) Has been cancelled
test / test-default-version (windows-latest) (push) Has been cancelled
test / test-semver-range (selfhosted-ubuntu-arm64) (push) Has been cancelled
test / test-checksum (map[checksum:a70cbfbf3bb5c08b2f84963b4f12c94e08fbb2468ba418a3bfe1066fbe9e7218 os:macos-latest]) (push) Has been cancelled
test / test-tool-install (macos-14) (push) Has been cancelled
test / test-tool-install (macos-latest) (push) Has been cancelled
test / test-tool-install (windows-latest) (push) Has been cancelled
test / test-tilde-expansion-tool-dirs (push) Has been cancelled
test / test-python-version (macos-latest) (push) Has been cancelled
test / test-python-version (windows-latest) (push) Has been cancelled
test / test-activate-environment (macos-latest) (push) Has been cancelled
test / test-activate-environment (windows-latest) (push) Has been cancelled
test / test-setup-cache (auto, selfhosted-ubuntu-arm64) (push) Has been cancelled
test / test-setup-cache (auto, windows-latest) (push) Has been cancelled
test / test-setup-cache (false, selfhosted-ubuntu-arm64) (push) Has been cancelled
test / test-setup-cache (false, windows-latest) (push) Has been cancelled
test / test-setup-cache (true, selfhosted-ubuntu-arm64) (push) Has been cancelled
test / test-setup-cache (true, windows-latest) (push) Has been cancelled
test / test-cache-local (map[expected-cache-dir:/home/ubuntu/.cache/uv os:selfhosted-ubuntu-arm64]) (push) Has been cancelled
test / test-cache-local (map[expected-cache-dir:C:\a\_temp\setup-uv-cache os:windows-latest]) (push) Has been cancelled
test / test-setup-cache-local (push) Has been cancelled
test / test-tilde-expansion-cache-local-path (push) Has been cancelled
test / test-tilde-expansion-cache-dependency-glob (push) Has been cancelled
test / test-restore-cache (auto, selfhosted-ubuntu-arm64) (push) Has been cancelled
test / test-restore-cache (auto, ubuntu-latest) (push) Has been cancelled
test / test-restore-cache (auto, windows-latest) (push) Has been cancelled
test / test-restore-cache (false, selfhosted-ubuntu-arm64) (push) Has been cancelled
test / test-restore-cache (false, ubuntu-latest) (push) Has been cancelled
test / test-restore-cache (false, windows-latest) (push) Has been cancelled
test / test-restore-cache (true, selfhosted-ubuntu-arm64) (push) Has been cancelled
test / test-restore-cache (true, ubuntu-latest) (push) Has been cancelled
test / test-restore-cache (true, windows-latest) (push) Has been cancelled
test / test-restore-cache-requirements-txt (push) Has been cancelled
test / test-restore-cache-dependency-glob (push) Has been cancelled
test / test-restore-cache-local (push) Has been cancelled
test / cleanup-tilde-expansion-tests (push) Has been cancelled
test / all-tests-passed (push) Has been cancelled
Update known versions / build (push) Has been cancelled
Some checks failed
test / test-default-version (ubuntu-latest) (push) Successful in 27s
CodeQL / Analyze (TypeScript) (push) Failing after 46s
test / test-specific-version (0.3.0) (push) Successful in 41s
test / test-specific-version (0.3.2) (push) Successful in 37s
test / test-with-explicit-token (push) Successful in 45s
test / test-python-version (ubuntu-latest) (push) Successful in 1m0s
test / lint (push) Failing after 1m40s
test / test-custom-manifest-file (push) Failing after 13m25s
test / test-no-python-version (push) Failing after 13m26s
test / test-cache-local (map[expected-cache-dir:/home/runner/work/_temp/setup-uv-cache os:ubuntu-latest]) (push) Failing after 13m27s
test / test-setup-cache-dependency-glob (push) Failing after 13m27s
test / test-setup-cache-requirements-txt (push) Failing after 13m28s
test / test-setup-cache (true, ubuntu-latest) (push) Failing after 13m29s
test / test-setup-cache (false, ubuntu-latest) (push) Failing after 13m32s
test / test-setup-cache (auto, ubuntu-latest) (push) Failing after 13m32s
test / test-musl (push) Failing after 13m32s
test / test-activate-environment (ubuntu-latest) (push) Failing after 13m34s
test / test-tool-install (ubuntu-latest) (push) Failing after 13m36s
test / test-uvx (push) Failing after 13m36s
test / test-checksum (map[checksum:4d9279ad5ca596b1e2d703901d508430eb07564dc4d8837de9e2fca9c90f8ecd os:ubuntu-latest]) (push) Failing after 13m37s
test / test-uv-file-version (push) Failing after 13m38s
test / test-malformed-pyproject-file-fallback (push) Failing after 13m41s
test / test-pyproject-file-version (push) Failing after 13m41s
test / test-pep440-version (push) Failing after 13m43s
test / test-semver-range (ubuntu-latest) (push) Failing after 13m43s
test / test-specific-version (>=0.3.0) (push) Failing after 13m45s
test / test-specific-version (0.3.x) (push) Failing after 13m46s
test / test-specific-version (0.3) (push) Failing after 13m49s
Release Drafter / ✏️ Draft release (push) Has been cancelled
test / test-default-version (macos-14) (push) Has been cancelled
test / test-default-version (macos-latest) (push) Has been cancelled
test / test-default-version (windows-latest) (push) Has been cancelled
test / test-semver-range (selfhosted-ubuntu-arm64) (push) Has been cancelled
test / test-checksum (map[checksum:a70cbfbf3bb5c08b2f84963b4f12c94e08fbb2468ba418a3bfe1066fbe9e7218 os:macos-latest]) (push) Has been cancelled
test / test-tool-install (macos-14) (push) Has been cancelled
test / test-tool-install (macos-latest) (push) Has been cancelled
test / test-tool-install (windows-latest) (push) Has been cancelled
test / test-tilde-expansion-tool-dirs (push) Has been cancelled
test / test-python-version (macos-latest) (push) Has been cancelled
test / test-python-version (windows-latest) (push) Has been cancelled
test / test-activate-environment (macos-latest) (push) Has been cancelled
test / test-activate-environment (windows-latest) (push) Has been cancelled
test / test-setup-cache (auto, selfhosted-ubuntu-arm64) (push) Has been cancelled
test / test-setup-cache (auto, windows-latest) (push) Has been cancelled
test / test-setup-cache (false, selfhosted-ubuntu-arm64) (push) Has been cancelled
test / test-setup-cache (false, windows-latest) (push) Has been cancelled
test / test-setup-cache (true, selfhosted-ubuntu-arm64) (push) Has been cancelled
test / test-setup-cache (true, windows-latest) (push) Has been cancelled
test / test-cache-local (map[expected-cache-dir:/home/ubuntu/.cache/uv os:selfhosted-ubuntu-arm64]) (push) Has been cancelled
test / test-cache-local (map[expected-cache-dir:C:\a\_temp\setup-uv-cache os:windows-latest]) (push) Has been cancelled
test / test-setup-cache-local (push) Has been cancelled
test / test-tilde-expansion-cache-local-path (push) Has been cancelled
test / test-tilde-expansion-cache-dependency-glob (push) Has been cancelled
test / test-restore-cache (auto, selfhosted-ubuntu-arm64) (push) Has been cancelled
test / test-restore-cache (auto, ubuntu-latest) (push) Has been cancelled
test / test-restore-cache (auto, windows-latest) (push) Has been cancelled
test / test-restore-cache (false, selfhosted-ubuntu-arm64) (push) Has been cancelled
test / test-restore-cache (false, ubuntu-latest) (push) Has been cancelled
test / test-restore-cache (false, windows-latest) (push) Has been cancelled
test / test-restore-cache (true, selfhosted-ubuntu-arm64) (push) Has been cancelled
test / test-restore-cache (true, ubuntu-latest) (push) Has been cancelled
test / test-restore-cache (true, windows-latest) (push) Has been cancelled
test / test-restore-cache-requirements-txt (push) Has been cancelled
test / test-restore-cache-dependency-glob (push) Has been cancelled
test / test-restore-cache-local (push) Has been cancelled
test / cleanup-tilde-expansion-tests (push) Has been cancelled
test / all-tests-passed (push) Has been cancelled
Update known versions / build (push) Has been cancelled
If a manifest-file is supplied the default value of the version input (latest) will get the latest version available in the manifest. That might not be the actual latest version available in the official uv repo.
This commit is contained in:
parent
a02a550bdd
commit
445689ea25
1
.github/workflows/test.yml
vendored
1
.github/workflows/test.yml
vendored
@ -540,7 +540,6 @@ jobs:
|
|||||||
- name: Install from custom manifest file
|
- name: Install from custom manifest file
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
version: 0.7.12-alpha.1
|
|
||||||
manifest-file: "https://raw.githubusercontent.com/astral-sh/setup-uv/${{ github.ref }}/__tests__/download/custom-manifest.json"
|
manifest-file: "https://raw.githubusercontent.com/astral-sh/setup-uv/${{ github.ref }}/__tests__/download/custom-manifest.json"
|
||||||
- run: uv sync
|
- run: uv sync
|
||||||
working-directory: __tests__/fixtures/uv-project
|
working-directory: __tests__/fixtures/uv-project
|
||||||
|
@ -430,6 +430,11 @@ This is useful if you maintain your own uv builds or want to override the defaul
|
|||||||
manifest-file: "https://example.com/my-custom-manifest.json"
|
manifest-file: "https://example.com/my-custom-manifest.json"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> When you use a custom manifest file and do not set the `version` input, its default value is `latest`.
|
||||||
|
> This means the action will install the latest version available in the custom manifest file.
|
||||||
|
> This is different from the default behavior of installing the latest version from the official uv releases.
|
||||||
|
|
||||||
## How it works
|
## How it works
|
||||||
|
|
||||||
This action downloads uv from the uv repo's official
|
This action downloads uv from the uv repo's official
|
||||||
|
26
dist/setup/index.js
generated
vendored
26
dist/setup/index.js
generated
vendored
@ -124735,11 +124735,21 @@ async function downloadVersion(downloadUrl, artifactName, platform, arch, versio
|
|||||||
function getExtension(platform) {
|
function getExtension(platform) {
|
||||||
return platform === "pc-windows-msvc" ? ".zip" : ".tar.gz";
|
return platform === "pc-windows-msvc" ? ".zip" : ".tar.gz";
|
||||||
}
|
}
|
||||||
async function resolveVersion(versionInput, githubToken) {
|
async function resolveVersion(versionInput, manifestFile, githubToken) {
|
||||||
core.debug(`Resolving version: ${versionInput}`);
|
core.debug(`Resolving version: ${versionInput}`);
|
||||||
const version = versionInput === "latest"
|
let version;
|
||||||
? await getLatestVersion(githubToken)
|
if (manifestFile) {
|
||||||
: versionInput;
|
version =
|
||||||
|
versionInput === "latest"
|
||||||
|
? await (0, version_manifest_1.getLatestKnownVersion)(manifestFile)
|
||||||
|
: versionInput;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
version =
|
||||||
|
versionInput === "latest"
|
||||||
|
? await getLatestVersion(githubToken)
|
||||||
|
: versionInput;
|
||||||
|
}
|
||||||
if (tc.isExplicitVersion(version)) {
|
if (tc.isExplicitVersion(version)) {
|
||||||
core.debug(`Version ${version} is an explicit version.`);
|
core.debug(`Version ${version} is an explicit version.`);
|
||||||
return version;
|
return version;
|
||||||
@ -125105,7 +125115,7 @@ function detectEmptyWorkdir() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
async function setupUv(platform, arch, checkSum, githubToken) {
|
async function setupUv(platform, arch, checkSum, githubToken) {
|
||||||
const resolvedVersion = await determineVersion();
|
const resolvedVersion = await determineVersion(inputs_1.manifestFile);
|
||||||
const toolCacheResult = (0, download_version_1.tryGetFromToolCache)(arch, resolvedVersion);
|
const toolCacheResult = (0, download_version_1.tryGetFromToolCache)(arch, resolvedVersion);
|
||||||
if (toolCacheResult.installedPath) {
|
if (toolCacheResult.installedPath) {
|
||||||
core.info(`Found uv in tool-cache for ${toolCacheResult.version}`);
|
core.info(`Found uv in tool-cache for ${toolCacheResult.version}`);
|
||||||
@ -125127,16 +125137,16 @@ async function setupUv(platform, arch, checkSum, githubToken) {
|
|||||||
version: downloadVersionResult.version,
|
version: downloadVersionResult.version,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
async function determineVersion() {
|
async function determineVersion(manifestFile) {
|
||||||
if (inputs_1.version !== "") {
|
if (inputs_1.version !== "") {
|
||||||
return await (0, download_version_1.resolveVersion)(inputs_1.version, inputs_1.githubToken);
|
return await (0, download_version_1.resolveVersion)(inputs_1.version, manifestFile, inputs_1.githubToken);
|
||||||
}
|
}
|
||||||
const versionFromUvToml = (0, config_file_1.getUvVersionFromConfigFile)(`${inputs_1.workingDirectory}${path.sep}uv.toml`);
|
const versionFromUvToml = (0, config_file_1.getUvVersionFromConfigFile)(`${inputs_1.workingDirectory}${path.sep}uv.toml`);
|
||||||
const versionFromPyproject = (0, config_file_1.getUvVersionFromConfigFile)(`${inputs_1.workingDirectory}${path.sep}pyproject.toml`);
|
const versionFromPyproject = (0, config_file_1.getUvVersionFromConfigFile)(`${inputs_1.workingDirectory}${path.sep}pyproject.toml`);
|
||||||
if (versionFromUvToml === undefined && versionFromPyproject === undefined) {
|
if (versionFromUvToml === undefined && versionFromPyproject === undefined) {
|
||||||
core.info("Could not determine uv version from uv.toml or pyproject.toml. Falling back to latest.");
|
core.info("Could not determine uv version from uv.toml or pyproject.toml. Falling back to latest.");
|
||||||
}
|
}
|
||||||
return await (0, download_version_1.resolveVersion)(versionFromUvToml || versionFromPyproject || "latest", inputs_1.githubToken);
|
return await (0, download_version_1.resolveVersion)(versionFromUvToml || versionFromPyproject || "latest", manifestFile, inputs_1.githubToken);
|
||||||
}
|
}
|
||||||
function addUvToPathAndOutput(cachedPath) {
|
function addUvToPathAndOutput(cachedPath) {
|
||||||
core.setOutput("uv-path", `${cachedPath}${path.sep}uv`);
|
core.setOutput("uv-path", `${cachedPath}${path.sep}uv`);
|
||||||
|
@ -7,7 +7,10 @@ import { OWNER, REPO, TOOL_CACHE_NAME } from "../utils/constants";
|
|||||||
import type { Architecture, Platform } from "../utils/platforms";
|
import type { Architecture, Platform } from "../utils/platforms";
|
||||||
import { validateChecksum } from "./checksum/checksum";
|
import { validateChecksum } from "./checksum/checksum";
|
||||||
import { Octokit } from "../utils/octokit";
|
import { Octokit } from "../utils/octokit";
|
||||||
import { getDownloadUrl } from "./version-manifest";
|
import {
|
||||||
|
getDownloadUrl,
|
||||||
|
getLatestKnownVersion as getLatestVersionInManifest,
|
||||||
|
} from "./version-manifest";
|
||||||
|
|
||||||
export function tryGetFromToolCache(
|
export function tryGetFromToolCache(
|
||||||
arch: Architecture,
|
arch: Architecture,
|
||||||
@ -127,13 +130,22 @@ function getExtension(platform: Platform): string {
|
|||||||
|
|
||||||
export async function resolveVersion(
|
export async function resolveVersion(
|
||||||
versionInput: string,
|
versionInput: string,
|
||||||
|
manifestFile: string | undefined,
|
||||||
githubToken: string,
|
githubToken: string,
|
||||||
): Promise<string> {
|
): Promise<string> {
|
||||||
core.debug(`Resolving version: ${versionInput}`);
|
core.debug(`Resolving version: ${versionInput}`);
|
||||||
const version =
|
let version: string;
|
||||||
versionInput === "latest"
|
if (manifestFile) {
|
||||||
? await getLatestVersion(githubToken)
|
version =
|
||||||
: versionInput;
|
versionInput === "latest"
|
||||||
|
? await getLatestVersionInManifest(manifestFile)
|
||||||
|
: versionInput;
|
||||||
|
} else {
|
||||||
|
version =
|
||||||
|
versionInput === "latest"
|
||||||
|
? await getLatestVersion(githubToken)
|
||||||
|
: versionInput;
|
||||||
|
}
|
||||||
if (tc.isExplicitVersion(version)) {
|
if (tc.isExplicitVersion(version)) {
|
||||||
core.debug(`Version ${version} is an explicit version.`);
|
core.debug(`Version ${version} is an explicit version.`);
|
||||||
return version;
|
return version;
|
||||||
|
@ -87,7 +87,7 @@ async function setupUv(
|
|||||||
checkSum: string | undefined,
|
checkSum: string | undefined,
|
||||||
githubToken: string,
|
githubToken: string,
|
||||||
): Promise<{ uvDir: string; version: string }> {
|
): Promise<{ uvDir: string; version: string }> {
|
||||||
const resolvedVersion = await determineVersion();
|
const resolvedVersion = await determineVersion(manifestFile);
|
||||||
const toolCacheResult = tryGetFromToolCache(arch, resolvedVersion);
|
const toolCacheResult = tryGetFromToolCache(arch, resolvedVersion);
|
||||||
if (toolCacheResult.installedPath) {
|
if (toolCacheResult.installedPath) {
|
||||||
core.info(`Found uv in tool-cache for ${toolCacheResult.version}`);
|
core.info(`Found uv in tool-cache for ${toolCacheResult.version}`);
|
||||||
@ -127,9 +127,11 @@ async function setupUv(
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
async function determineVersion(): Promise<string> {
|
async function determineVersion(
|
||||||
|
manifestFile: string | undefined,
|
||||||
|
): Promise<string> {
|
||||||
if (versionInput !== "") {
|
if (versionInput !== "") {
|
||||||
return await resolveVersion(versionInput, githubToken);
|
return await resolveVersion(versionInput, manifestFile, githubToken);
|
||||||
}
|
}
|
||||||
const versionFromUvToml = getUvVersionFromConfigFile(
|
const versionFromUvToml = getUvVersionFromConfigFile(
|
||||||
`${workingDirectory}${path.sep}uv.toml`,
|
`${workingDirectory}${path.sep}uv.toml`,
|
||||||
@ -144,6 +146,7 @@ async function determineVersion(): Promise<string> {
|
|||||||
}
|
}
|
||||||
return await resolveVersion(
|
return await resolveVersion(
|
||||||
versionFromUvToml || versionFromPyproject || "latest",
|
versionFromUvToml || versionFromPyproject || "latest",
|
||||||
|
manifestFile,
|
||||||
githubToken,
|
githubToken,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user