mirror of
https://github.com/astral-sh/setup-uv.git
synced 2026-03-29 00:39:27 +00:00
Shortcircuit latest version from manifest (#828)
Some checks are pending
CodeQL / Analyze (push) Waiting to run
Release Drafter / ✏️ Draft release (push) Waiting to run
test / lint (push) Waiting to run
test / test-default-version (macos-14) (push) Waiting to run
test / test-default-version (macos-latest) (push) Waiting to run
test / test-default-version (ubuntu-latest) (push) Waiting to run
test / test-default-version (windows-latest) (push) Waiting to run
test / test-uv-no-modify-path (push) Waiting to run
test / test-specific-version (map[expected-version:0.1.0 resolution-strategy:lowest version-input:>=0.1.0,<0.2]) (push) Waiting to run
test / test-specific-version (map[expected-version:0.1.45 resolution-strategy:highest version-input:>=0.1,<0.2]) (push) Waiting to run
test / test-specific-version (map[expected-version:0.3.0 version-input:0.3.0]) (push) Waiting to run
test / test-specific-version (map[expected-version:0.3.2 version-input:0.3.2]) (push) Waiting to run
test / test-specific-version (map[expected-version:0.3.5 version-input:0.3.x]) (push) Waiting to run
test / test-specific-version (map[expected-version:0.3.5 version-input:0.3]) (push) Waiting to run
test / test-specific-version (map[expected-version:0.4.25 resolution-strategy:lowest version-input:>=0.4.25,<0.5]) (push) Waiting to run
test / test-specific-version (map[expected-version:0.4.25 resolution-strategy:lowest version-input:>=0.4.25]) (push) Waiting to run
test / test-specific-version (map[expected-version:0.4.30 version-input:>=0.4.25,<0.5]) (push) Waiting to run
test / test-latest-version (>=0.8) (push) Waiting to run
test / test-latest-version (latest) (push) Waiting to run
test / test-from-working-directory-version (map[expected-version:0.5.14 working-directory:__tests__/fixtures/pyproject-toml-project]) (push) Waiting to run
test / test-from-working-directory-version (map[expected-version:0.5.15 working-directory:__tests__/fixtures/uv-toml-project]) (push) Waiting to run
test / test-version-file-version (map[expected-version:0.5.15 version-file:__tests__/fixtures/.tool-versions]) (push) Waiting to run
test / test-version-file-version (map[expected-version:0.6.17 version-file:__tests__/fixtures/uv-in-requirements-txt-project/requirements.txt]) (push) Waiting to run
test / test-version-file-version (map[expected-version:0.8.3 version-file:__tests__/fixtures/uv-in-requirements-hash-txt-project/requirements.txt]) (push) Waiting to run
test / test-malformed-pyproject-file-fallback (push) Waiting to run
test / test-checksum (map[checksum:4d9279ad5ca596b1e2d703901d508430eb07564dc4d8837de9e2fca9c90f8ecd os:ubuntu-latest]) (push) Waiting to run
test / test-checksum (map[checksum:a70cbfbf3bb5c08b2f84963b4f12c94e08fbb2468ba418a3bfe1066fbe9e7218 os:macos-latest]) (push) Waiting to run
test / test-with-explicit-token (push) Waiting to run
test / test-uvx (push) Waiting to run
test / test-tool-install (macos-14) (push) Waiting to run
test / test-tool-install (macos-latest) (push) Waiting to run
test / test-tool-install (ubuntu-latest) (push) Waiting to run
test / test-tool-install (windows-latest) (push) Waiting to run
test / test-python-version (macos-latest) (push) Waiting to run
test / test-python-version (ubuntu-latest) (push) Waiting to run
test / test-python-version (windows-latest) (push) Waiting to run
test / test-activate-environment (macos-latest) (push) Waiting to run
test / test-activate-environment (ubuntu-latest) (push) Waiting to run
test / test-activate-environment (windows-latest) (push) Waiting to run
test / test-activate-environment-custom-path (macos-latest) (push) Waiting to run
test / test-activate-environment-custom-path (ubuntu-latest) (push) Waiting to run
test / test-activate-environment-custom-path (windows-latest) (push) Waiting to run
test / test-debian-unstable (push) Waiting to run
test / test-musl (push) Waiting to run
test / test-cache-key-os-version (macos-14, macos-14) (push) Waiting to run
test / test-cache-key-os-version (macos-15, macos-15) (push) Waiting to run
test / test-cache-key-os-version (ubuntu-22.04, ubuntu-22.04) (push) Waiting to run
test / test-cache-key-os-version (ubuntu-24.04, ubuntu-24.04) (push) Waiting to run
test / test-cache-key-os-version (windows-2022, windows-2022) (push) Waiting to run
test / test-cache-key-os-version (windows-2025, windows-2025) (push) Waiting to run
test / test-setup-cache (auto, ubuntu-latest) (push) Waiting to run
test / test-setup-cache (auto, windows-latest) (push) Waiting to run
test / test-setup-cache (false, ubuntu-latest) (push) Waiting to run
test / test-setup-cache (false, windows-latest) (push) Waiting to run
test / test-setup-cache (true, ubuntu-latest) (push) Waiting to run
test / test-setup-cache (true, windows-latest) (push) Waiting to run
test / test-restore-cache (auto, ubuntu-latest) (push) Blocked by required conditions
test / test-restore-cache (auto, windows-latest) (push) Blocked by required conditions
test / test-restore-cache (false, ubuntu-latest) (push) Blocked by required conditions
test / test-restore-cache (false, windows-latest) (push) Blocked by required conditions
test / test-restore-cache (true, ubuntu-latest) (push) Blocked by required conditions
test / test-restore-cache (true, windows-latest) (push) Blocked by required conditions
test / test-setup-cache-requirements-txt (push) Waiting to run
test / test-restore-cache-requirements-txt (push) Blocked by required conditions
test / test-setup-cache-dependency-glob (push) Waiting to run
test / test-restore-cache-dependency-glob (push) Blocked by required conditions
test / test-setup-cache-save-cache-false (push) Waiting to run
test / test-restore-cache-save-cache-false (push) Blocked by required conditions
test / test-setup-cache-restore-cache-false (push) Waiting to run
test / test-restore-cache-restore-cache-false (push) Blocked by required conditions
test / test-cache-local (map[expected-cache-dir:/home/runner/work/_temp/setup-uv-cache os:ubuntu-latest]) (push) Waiting to run
test / test-cache-local (map[expected-cache-dir:D:\a\_temp\setup-uv-cache os:windows-latest]) (push) Waiting to run
test / test-cache-local-cache-disabled (push) Waiting to run
test / test-cache-local-cache-disabled-but-explicit-path (push) Waiting to run
test / test-no-python-version (push) Waiting to run
test / test-custom-manifest-file (push) Waiting to run
test / test-absolute-path (push) Waiting to run
test / test-relative-path (push) Waiting to run
test / test-cache-prune-force (push) Waiting to run
test / test-cache-dir-from-file (push) Waiting to run
test / test-cache-python-missing-managed-install-dir (push) Waiting to run
test / test-cache-python-installs (push) Waiting to run
test / test-restore-python-installs (push) Blocked by required conditions
test / test-python-install-dir (map[expected-python-dir:/home/runner/work/_temp/uv-python-dir os:ubuntu-latest]) (push) Waiting to run
test / test-python-install-dir (map[expected-python-dir:D:\a\_temp\uv-python-dir os:windows-latest]) (push) Waiting to run
test / test-act (push) Waiting to run
test / validate-typings (push) Waiting to run
test / all-tests-passed (push) Blocked by required conditions
Some checks are pending
CodeQL / Analyze (push) Waiting to run
Release Drafter / ✏️ Draft release (push) Waiting to run
test / lint (push) Waiting to run
test / test-default-version (macos-14) (push) Waiting to run
test / test-default-version (macos-latest) (push) Waiting to run
test / test-default-version (ubuntu-latest) (push) Waiting to run
test / test-default-version (windows-latest) (push) Waiting to run
test / test-uv-no-modify-path (push) Waiting to run
test / test-specific-version (map[expected-version:0.1.0 resolution-strategy:lowest version-input:>=0.1.0,<0.2]) (push) Waiting to run
test / test-specific-version (map[expected-version:0.1.45 resolution-strategy:highest version-input:>=0.1,<0.2]) (push) Waiting to run
test / test-specific-version (map[expected-version:0.3.0 version-input:0.3.0]) (push) Waiting to run
test / test-specific-version (map[expected-version:0.3.2 version-input:0.3.2]) (push) Waiting to run
test / test-specific-version (map[expected-version:0.3.5 version-input:0.3.x]) (push) Waiting to run
test / test-specific-version (map[expected-version:0.3.5 version-input:0.3]) (push) Waiting to run
test / test-specific-version (map[expected-version:0.4.25 resolution-strategy:lowest version-input:>=0.4.25,<0.5]) (push) Waiting to run
test / test-specific-version (map[expected-version:0.4.25 resolution-strategy:lowest version-input:>=0.4.25]) (push) Waiting to run
test / test-specific-version (map[expected-version:0.4.30 version-input:>=0.4.25,<0.5]) (push) Waiting to run
test / test-latest-version (>=0.8) (push) Waiting to run
test / test-latest-version (latest) (push) Waiting to run
test / test-from-working-directory-version (map[expected-version:0.5.14 working-directory:__tests__/fixtures/pyproject-toml-project]) (push) Waiting to run
test / test-from-working-directory-version (map[expected-version:0.5.15 working-directory:__tests__/fixtures/uv-toml-project]) (push) Waiting to run
test / test-version-file-version (map[expected-version:0.5.15 version-file:__tests__/fixtures/.tool-versions]) (push) Waiting to run
test / test-version-file-version (map[expected-version:0.6.17 version-file:__tests__/fixtures/uv-in-requirements-txt-project/requirements.txt]) (push) Waiting to run
test / test-version-file-version (map[expected-version:0.8.3 version-file:__tests__/fixtures/uv-in-requirements-hash-txt-project/requirements.txt]) (push) Waiting to run
test / test-malformed-pyproject-file-fallback (push) Waiting to run
test / test-checksum (map[checksum:4d9279ad5ca596b1e2d703901d508430eb07564dc4d8837de9e2fca9c90f8ecd os:ubuntu-latest]) (push) Waiting to run
test / test-checksum (map[checksum:a70cbfbf3bb5c08b2f84963b4f12c94e08fbb2468ba418a3bfe1066fbe9e7218 os:macos-latest]) (push) Waiting to run
test / test-with-explicit-token (push) Waiting to run
test / test-uvx (push) Waiting to run
test / test-tool-install (macos-14) (push) Waiting to run
test / test-tool-install (macos-latest) (push) Waiting to run
test / test-tool-install (ubuntu-latest) (push) Waiting to run
test / test-tool-install (windows-latest) (push) Waiting to run
test / test-python-version (macos-latest) (push) Waiting to run
test / test-python-version (ubuntu-latest) (push) Waiting to run
test / test-python-version (windows-latest) (push) Waiting to run
test / test-activate-environment (macos-latest) (push) Waiting to run
test / test-activate-environment (ubuntu-latest) (push) Waiting to run
test / test-activate-environment (windows-latest) (push) Waiting to run
test / test-activate-environment-custom-path (macos-latest) (push) Waiting to run
test / test-activate-environment-custom-path (ubuntu-latest) (push) Waiting to run
test / test-activate-environment-custom-path (windows-latest) (push) Waiting to run
test / test-debian-unstable (push) Waiting to run
test / test-musl (push) Waiting to run
test / test-cache-key-os-version (macos-14, macos-14) (push) Waiting to run
test / test-cache-key-os-version (macos-15, macos-15) (push) Waiting to run
test / test-cache-key-os-version (ubuntu-22.04, ubuntu-22.04) (push) Waiting to run
test / test-cache-key-os-version (ubuntu-24.04, ubuntu-24.04) (push) Waiting to run
test / test-cache-key-os-version (windows-2022, windows-2022) (push) Waiting to run
test / test-cache-key-os-version (windows-2025, windows-2025) (push) Waiting to run
test / test-setup-cache (auto, ubuntu-latest) (push) Waiting to run
test / test-setup-cache (auto, windows-latest) (push) Waiting to run
test / test-setup-cache (false, ubuntu-latest) (push) Waiting to run
test / test-setup-cache (false, windows-latest) (push) Waiting to run
test / test-setup-cache (true, ubuntu-latest) (push) Waiting to run
test / test-setup-cache (true, windows-latest) (push) Waiting to run
test / test-restore-cache (auto, ubuntu-latest) (push) Blocked by required conditions
test / test-restore-cache (auto, windows-latest) (push) Blocked by required conditions
test / test-restore-cache (false, ubuntu-latest) (push) Blocked by required conditions
test / test-restore-cache (false, windows-latest) (push) Blocked by required conditions
test / test-restore-cache (true, ubuntu-latest) (push) Blocked by required conditions
test / test-restore-cache (true, windows-latest) (push) Blocked by required conditions
test / test-setup-cache-requirements-txt (push) Waiting to run
test / test-restore-cache-requirements-txt (push) Blocked by required conditions
test / test-setup-cache-dependency-glob (push) Waiting to run
test / test-restore-cache-dependency-glob (push) Blocked by required conditions
test / test-setup-cache-save-cache-false (push) Waiting to run
test / test-restore-cache-save-cache-false (push) Blocked by required conditions
test / test-setup-cache-restore-cache-false (push) Waiting to run
test / test-restore-cache-restore-cache-false (push) Blocked by required conditions
test / test-cache-local (map[expected-cache-dir:/home/runner/work/_temp/setup-uv-cache os:ubuntu-latest]) (push) Waiting to run
test / test-cache-local (map[expected-cache-dir:D:\a\_temp\setup-uv-cache os:windows-latest]) (push) Waiting to run
test / test-cache-local-cache-disabled (push) Waiting to run
test / test-cache-local-cache-disabled-but-explicit-path (push) Waiting to run
test / test-no-python-version (push) Waiting to run
test / test-custom-manifest-file (push) Waiting to run
test / test-absolute-path (push) Waiting to run
test / test-relative-path (push) Waiting to run
test / test-cache-prune-force (push) Waiting to run
test / test-cache-dir-from-file (push) Waiting to run
test / test-cache-python-missing-managed-install-dir (push) Waiting to run
test / test-cache-python-installs (push) Waiting to run
test / test-restore-python-installs (push) Blocked by required conditions
test / test-python-install-dir (map[expected-python-dir:/home/runner/work/_temp/uv-python-dir os:ubuntu-latest]) (push) Waiting to run
test / test-python-install-dir (map[expected-python-dir:D:\a\_temp\uv-python-dir os:windows-latest]) (push) Waiting to run
test / test-act (push) Waiting to run
test / validate-typings (push) Waiting to run
test / all-tests-passed (push) Blocked by required conditions
The first version is guaranteed to be the latest
This commit is contained in:
parent
4dd8ab4520
commit
cec208311d
4 changed files with 98 additions and 114 deletions
|
|
@ -17,11 +17,12 @@ const {
|
|||
fetchManifest,
|
||||
getAllVersions,
|
||||
getArtifact,
|
||||
getLatestVersion,
|
||||
parseManifest,
|
||||
} = await import("../../src/download/manifest");
|
||||
|
||||
const sampleManifestResponse = `{"version":"0.9.25","artifacts":[{"platform":"aarch64-apple-darwin","variant":"default","url":"https://github.com/astral-sh/uv/releases/download/0.9.25/uv-aarch64-apple-darwin.tar.gz","archive_format":"tar.gz","sha256":"606b3c6949d971709f2526fa0d9f0fd23ccf60e09f117999b406b424af18a6a6"}]}
|
||||
{"version":"0.9.26","artifacts":[{"platform":"aarch64-apple-darwin","variant":"default","url":"https://github.com/astral-sh/uv/releases/download/0.9.26/uv-aarch64-apple-darwin.tar.gz","archive_format":"tar.gz","sha256":"fcf0a9ea6599c6ae28a4c854ac6da76f2c889354d7c36ce136ef071f7ab9721f"},{"platform":"x86_64-pc-windows-msvc","variant":"default","url":"https://github.com/astral-sh/uv/releases/download/0.9.26/uv-x86_64-pc-windows-msvc.zip","archive_format":"zip","sha256":"eb02fd95d8e0eed462b4a67ecdd320d865b38c560bffcda9a0b87ec944bdf036"}]}`;
|
||||
const sampleManifestResponse = `{"version":"0.9.26","artifacts":[{"platform":"aarch64-apple-darwin","variant":"default","url":"https://github.com/astral-sh/uv/releases/download/0.9.26/uv-aarch64-apple-darwin.tar.gz","archive_format":"tar.gz","sha256":"fcf0a9ea6599c6ae28a4c854ac6da76f2c889354d7c36ce136ef071f7ab9721f"},{"platform":"x86_64-pc-windows-msvc","variant":"default","url":"https://github.com/astral-sh/uv/releases/download/0.9.26/uv-x86_64-pc-windows-msvc.zip","archive_format":"zip","sha256":"eb02fd95d8e0eed462b4a67ecdd320d865b38c560bffcda9a0b87ec944bdf036"}]}
|
||||
{"version":"0.9.25","artifacts":[{"platform":"aarch64-apple-darwin","variant":"default","url":"https://github.com/astral-sh/uv/releases/download/0.9.25/uv-aarch64-apple-darwin.tar.gz","archive_format":"tar.gz","sha256":"606b3c6949d971709f2526fa0d9f0fd23ccf60e09f117999b406b424af18a6a6"}]}`;
|
||||
|
||||
const multiVariantManifestResponse = `{"version":"0.9.26","artifacts":[{"platform":"aarch64-apple-darwin","variant":"python-managed","url":"https://github.com/astral-sh/uv/releases/download/0.9.26/uv-aarch64-apple-darwin-managed.tar.gz","archive_format":"tar.gz","sha256":"managed-checksum"},{"platform":"aarch64-apple-darwin","variant":"default","url":"https://github.com/astral-sh/uv/releases/download/0.9.26/uv-aarch64-apple-darwin.zip","archive_format":"zip","sha256":"default-checksum"}]}`;
|
||||
|
||||
|
|
@ -54,8 +55,8 @@ describe("manifest", () => {
|
|||
const versions = await fetchManifest();
|
||||
|
||||
expect(versions).toHaveLength(2);
|
||||
expect(versions[0]?.version).toBe("0.9.25");
|
||||
expect(versions[1]?.version).toBe("0.9.26");
|
||||
expect(versions[0]?.version).toBe("0.9.26");
|
||||
expect(versions[1]?.version).toBe("0.9.25");
|
||||
});
|
||||
|
||||
it("throws on a failed fetch", async () => {
|
||||
|
|
@ -90,7 +91,19 @@ describe("manifest", () => {
|
|||
"https://example.com/custom.ndjson",
|
||||
);
|
||||
|
||||
expect(versions).toEqual(["0.9.25", "0.9.26"]);
|
||||
expect(versions).toEqual(["0.9.26", "0.9.25"]);
|
||||
});
|
||||
});
|
||||
|
||||
describe("getLatestVersion", () => {
|
||||
it("returns the first version string", async () => {
|
||||
mockFetch.mockResolvedValue(
|
||||
createMockResponse(true, 200, "OK", sampleManifestResponse),
|
||||
);
|
||||
|
||||
await expect(
|
||||
getLatestVersion("https://example.com/custom.ndjson"),
|
||||
).resolves.toBe("0.9.26");
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
|||
144
dist/setup/index.cjs
generated
vendored
144
dist/setup/index.cjs
generated
vendored
|
|
@ -20058,8 +20058,8 @@ var require_gt = __commonJS({
|
|||
"node_modules/@actions/cache/node_modules/semver/functions/gt.js"(exports2, module2) {
|
||||
"use strict";
|
||||
var compare = require_compare();
|
||||
var gt3 = (a, b, loose) => compare(a, b, loose) > 0;
|
||||
module2.exports = gt3;
|
||||
var gt2 = (a, b, loose) => compare(a, b, loose) > 0;
|
||||
module2.exports = gt2;
|
||||
}
|
||||
});
|
||||
|
||||
|
|
@ -20119,7 +20119,7 @@ var require_cmp = __commonJS({
|
|||
"use strict";
|
||||
var eq = require_eq();
|
||||
var neq = require_neq();
|
||||
var gt3 = require_gt();
|
||||
var gt2 = require_gt();
|
||||
var gte = require_gte();
|
||||
var lt = require_lt();
|
||||
var lte = require_lte();
|
||||
|
|
@ -20148,7 +20148,7 @@ var require_cmp = __commonJS({
|
|||
case "!=":
|
||||
return neq(a, b, loose);
|
||||
case ">":
|
||||
return gt3(a, b, loose);
|
||||
return gt2(a, b, loose);
|
||||
case ">=":
|
||||
return gte(a, b, loose);
|
||||
case "<":
|
||||
|
|
@ -20828,7 +20828,7 @@ var require_min_version = __commonJS({
|
|||
"use strict";
|
||||
var SemVer = require_semver();
|
||||
var Range = require_range();
|
||||
var gt3 = require_gt();
|
||||
var gt2 = require_gt();
|
||||
var minVersion = (range2, loose) => {
|
||||
range2 = new Range(range2, loose);
|
||||
let minver = new SemVer("0.0.0");
|
||||
|
|
@ -20856,7 +20856,7 @@ var require_min_version = __commonJS({
|
|||
/* fallthrough */
|
||||
case "":
|
||||
case ">=":
|
||||
if (!setMin || gt3(compver, setMin)) {
|
||||
if (!setMin || gt2(compver, setMin)) {
|
||||
setMin = compver;
|
||||
}
|
||||
break;
|
||||
|
|
@ -20868,7 +20868,7 @@ var require_min_version = __commonJS({
|
|||
throw new Error(`Unexpected operation: ${comparator.operator}`);
|
||||
}
|
||||
});
|
||||
if (setMin && (!minver || gt3(minver, setMin))) {
|
||||
if (setMin && (!minver || gt2(minver, setMin))) {
|
||||
minver = setMin;
|
||||
}
|
||||
}
|
||||
|
|
@ -20906,7 +20906,7 @@ var require_outside = __commonJS({
|
|||
var { ANY } = Comparator;
|
||||
var Range = require_range();
|
||||
var satisfies4 = require_satisfies();
|
||||
var gt3 = require_gt();
|
||||
var gt2 = require_gt();
|
||||
var lt = require_lt();
|
||||
var lte = require_lte();
|
||||
var gte = require_gte();
|
||||
|
|
@ -20916,7 +20916,7 @@ var require_outside = __commonJS({
|
|||
let gtfn, ltefn, ltfn, comp26, ecomp;
|
||||
switch (hilo) {
|
||||
case ">":
|
||||
gtfn = gt3;
|
||||
gtfn = gt2;
|
||||
ltefn = lte;
|
||||
ltfn = lt;
|
||||
comp26 = ">";
|
||||
|
|
@ -20925,7 +20925,7 @@ var require_outside = __commonJS({
|
|||
case "<":
|
||||
gtfn = lt;
|
||||
ltefn = gte;
|
||||
ltfn = gt3;
|
||||
ltfn = gt2;
|
||||
comp26 = "<";
|
||||
ecomp = "<=";
|
||||
break;
|
||||
|
|
@ -21103,10 +21103,10 @@ var require_subset = __commonJS({
|
|||
}
|
||||
}
|
||||
const eqSet = /* @__PURE__ */ new Set();
|
||||
let gt3, lt;
|
||||
let gt2, lt;
|
||||
for (const c of sub) {
|
||||
if (c.operator === ">" || c.operator === ">=") {
|
||||
gt3 = higherGT(gt3, c, options);
|
||||
gt2 = higherGT(gt2, c, options);
|
||||
} else if (c.operator === "<" || c.operator === "<=") {
|
||||
lt = lowerLT(lt, c, options);
|
||||
} else {
|
||||
|
|
@ -21117,16 +21117,16 @@ var require_subset = __commonJS({
|
|||
return null;
|
||||
}
|
||||
let gtltComp;
|
||||
if (gt3 && lt) {
|
||||
gtltComp = compare(gt3.semver, lt.semver, options);
|
||||
if (gt2 && lt) {
|
||||
gtltComp = compare(gt2.semver, lt.semver, options);
|
||||
if (gtltComp > 0) {
|
||||
return null;
|
||||
} else if (gtltComp === 0 && (gt3.operator !== ">=" || lt.operator !== "<=")) {
|
||||
} else if (gtltComp === 0 && (gt2.operator !== ">=" || lt.operator !== "<=")) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
for (const eq of eqSet) {
|
||||
if (gt3 && !satisfies4(eq, String(gt3), options)) {
|
||||
if (gt2 && !satisfies4(eq, String(gt2), options)) {
|
||||
return null;
|
||||
}
|
||||
if (lt && !satisfies4(eq, String(lt), options)) {
|
||||
|
|
@ -21142,25 +21142,25 @@ var require_subset = __commonJS({
|
|||
let higher, lower;
|
||||
let hasDomLT, hasDomGT;
|
||||
let needDomLTPre = lt && !options.includePrerelease && lt.semver.prerelease.length ? lt.semver : false;
|
||||
let needDomGTPre = gt3 && !options.includePrerelease && gt3.semver.prerelease.length ? gt3.semver : false;
|
||||
let needDomGTPre = gt2 && !options.includePrerelease && gt2.semver.prerelease.length ? gt2.semver : false;
|
||||
if (needDomLTPre && needDomLTPre.prerelease.length === 1 && lt.operator === "<" && needDomLTPre.prerelease[0] === 0) {
|
||||
needDomLTPre = false;
|
||||
}
|
||||
for (const c of dom) {
|
||||
hasDomGT = hasDomGT || c.operator === ">" || c.operator === ">=";
|
||||
hasDomLT = hasDomLT || c.operator === "<" || c.operator === "<=";
|
||||
if (gt3) {
|
||||
if (gt2) {
|
||||
if (needDomGTPre) {
|
||||
if (c.semver.prerelease && c.semver.prerelease.length && c.semver.major === needDomGTPre.major && c.semver.minor === needDomGTPre.minor && c.semver.patch === needDomGTPre.patch) {
|
||||
needDomGTPre = false;
|
||||
}
|
||||
}
|
||||
if (c.operator === ">" || c.operator === ">=") {
|
||||
higher = higherGT(gt3, c, options);
|
||||
if (higher === c && higher !== gt3) {
|
||||
higher = higherGT(gt2, c, options);
|
||||
if (higher === c && higher !== gt2) {
|
||||
return false;
|
||||
}
|
||||
} else if (gt3.operator === ">=" && !satisfies4(gt3.semver, String(c), options)) {
|
||||
} else if (gt2.operator === ">=" && !satisfies4(gt2.semver, String(c), options)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
@ -21179,14 +21179,14 @@ var require_subset = __commonJS({
|
|||
return false;
|
||||
}
|
||||
}
|
||||
if (!c.operator && (lt || gt3) && gtltComp !== 0) {
|
||||
if (!c.operator && (lt || gt2) && gtltComp !== 0) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (gt3 && hasDomLT && !lt && gtltComp !== 0) {
|
||||
if (gt2 && hasDomLT && !lt && gtltComp !== 0) {
|
||||
return false;
|
||||
}
|
||||
if (lt && hasDomGT && !gt3 && gtltComp !== 0) {
|
||||
if (lt && hasDomGT && !gt2 && gtltComp !== 0) {
|
||||
return false;
|
||||
}
|
||||
if (needDomGTPre || needDomLTPre) {
|
||||
|
|
@ -21235,7 +21235,7 @@ var require_semver2 = __commonJS({
|
|||
var compareBuild = require_compare_build();
|
||||
var sort = require_sort();
|
||||
var rsort = require_rsort();
|
||||
var gt3 = require_gt();
|
||||
var gt2 = require_gt();
|
||||
var lt = require_lt();
|
||||
var eq = require_eq();
|
||||
var neq = require_neq();
|
||||
|
|
@ -21273,7 +21273,7 @@ var require_semver2 = __commonJS({
|
|||
compareBuild,
|
||||
sort,
|
||||
rsort,
|
||||
gt: gt3,
|
||||
gt: gt2,
|
||||
lt,
|
||||
eq,
|
||||
neq,
|
||||
|
|
@ -27668,8 +27668,8 @@ var require_gt2 = __commonJS({
|
|||
"node_modules/@actions/tool-cache/node_modules/semver/functions/gt.js"(exports2, module2) {
|
||||
"use strict";
|
||||
var compare = require_compare2();
|
||||
var gt3 = (a, b, loose) => compare(a, b, loose) > 0;
|
||||
module2.exports = gt3;
|
||||
var gt2 = (a, b, loose) => compare(a, b, loose) > 0;
|
||||
module2.exports = gt2;
|
||||
}
|
||||
});
|
||||
|
||||
|
|
@ -27729,7 +27729,7 @@ var require_cmp2 = __commonJS({
|
|||
"use strict";
|
||||
var eq = require_eq2();
|
||||
var neq = require_neq2();
|
||||
var gt3 = require_gt2();
|
||||
var gt2 = require_gt2();
|
||||
var gte = require_gte2();
|
||||
var lt = require_lt2();
|
||||
var lte = require_lte2();
|
||||
|
|
@ -27758,7 +27758,7 @@ var require_cmp2 = __commonJS({
|
|||
case "!=":
|
||||
return neq(a, b, loose);
|
||||
case ">":
|
||||
return gt3(a, b, loose);
|
||||
return gt2(a, b, loose);
|
||||
case ">=":
|
||||
return gte(a, b, loose);
|
||||
case "<":
|
||||
|
|
@ -28438,7 +28438,7 @@ var require_min_version2 = __commonJS({
|
|||
"use strict";
|
||||
var SemVer = require_semver3();
|
||||
var Range = require_range2();
|
||||
var gt3 = require_gt2();
|
||||
var gt2 = require_gt2();
|
||||
var minVersion = (range2, loose) => {
|
||||
range2 = new Range(range2, loose);
|
||||
let minver = new SemVer("0.0.0");
|
||||
|
|
@ -28466,7 +28466,7 @@ var require_min_version2 = __commonJS({
|
|||
/* fallthrough */
|
||||
case "":
|
||||
case ">=":
|
||||
if (!setMin || gt3(compver, setMin)) {
|
||||
if (!setMin || gt2(compver, setMin)) {
|
||||
setMin = compver;
|
||||
}
|
||||
break;
|
||||
|
|
@ -28478,7 +28478,7 @@ var require_min_version2 = __commonJS({
|
|||
throw new Error(`Unexpected operation: ${comparator.operator}`);
|
||||
}
|
||||
});
|
||||
if (setMin && (!minver || gt3(minver, setMin))) {
|
||||
if (setMin && (!minver || gt2(minver, setMin))) {
|
||||
minver = setMin;
|
||||
}
|
||||
}
|
||||
|
|
@ -28516,7 +28516,7 @@ var require_outside2 = __commonJS({
|
|||
var { ANY } = Comparator;
|
||||
var Range = require_range2();
|
||||
var satisfies4 = require_satisfies2();
|
||||
var gt3 = require_gt2();
|
||||
var gt2 = require_gt2();
|
||||
var lt = require_lt2();
|
||||
var lte = require_lte2();
|
||||
var gte = require_gte2();
|
||||
|
|
@ -28526,7 +28526,7 @@ var require_outside2 = __commonJS({
|
|||
let gtfn, ltefn, ltfn, comp26, ecomp;
|
||||
switch (hilo) {
|
||||
case ">":
|
||||
gtfn = gt3;
|
||||
gtfn = gt2;
|
||||
ltefn = lte;
|
||||
ltfn = lt;
|
||||
comp26 = ">";
|
||||
|
|
@ -28535,7 +28535,7 @@ var require_outside2 = __commonJS({
|
|||
case "<":
|
||||
gtfn = lt;
|
||||
ltefn = gte;
|
||||
ltfn = gt3;
|
||||
ltfn = gt2;
|
||||
comp26 = "<";
|
||||
ecomp = "<=";
|
||||
break;
|
||||
|
|
@ -28713,10 +28713,10 @@ var require_subset2 = __commonJS({
|
|||
}
|
||||
}
|
||||
const eqSet = /* @__PURE__ */ new Set();
|
||||
let gt3, lt;
|
||||
let gt2, lt;
|
||||
for (const c of sub) {
|
||||
if (c.operator === ">" || c.operator === ">=") {
|
||||
gt3 = higherGT(gt3, c, options);
|
||||
gt2 = higherGT(gt2, c, options);
|
||||
} else if (c.operator === "<" || c.operator === "<=") {
|
||||
lt = lowerLT(lt, c, options);
|
||||
} else {
|
||||
|
|
@ -28727,16 +28727,16 @@ var require_subset2 = __commonJS({
|
|||
return null;
|
||||
}
|
||||
let gtltComp;
|
||||
if (gt3 && lt) {
|
||||
gtltComp = compare(gt3.semver, lt.semver, options);
|
||||
if (gt2 && lt) {
|
||||
gtltComp = compare(gt2.semver, lt.semver, options);
|
||||
if (gtltComp > 0) {
|
||||
return null;
|
||||
} else if (gtltComp === 0 && (gt3.operator !== ">=" || lt.operator !== "<=")) {
|
||||
} else if (gtltComp === 0 && (gt2.operator !== ">=" || lt.operator !== "<=")) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
for (const eq of eqSet) {
|
||||
if (gt3 && !satisfies4(eq, String(gt3), options)) {
|
||||
if (gt2 && !satisfies4(eq, String(gt2), options)) {
|
||||
return null;
|
||||
}
|
||||
if (lt && !satisfies4(eq, String(lt), options)) {
|
||||
|
|
@ -28752,25 +28752,25 @@ var require_subset2 = __commonJS({
|
|||
let higher, lower;
|
||||
let hasDomLT, hasDomGT;
|
||||
let needDomLTPre = lt && !options.includePrerelease && lt.semver.prerelease.length ? lt.semver : false;
|
||||
let needDomGTPre = gt3 && !options.includePrerelease && gt3.semver.prerelease.length ? gt3.semver : false;
|
||||
let needDomGTPre = gt2 && !options.includePrerelease && gt2.semver.prerelease.length ? gt2.semver : false;
|
||||
if (needDomLTPre && needDomLTPre.prerelease.length === 1 && lt.operator === "<" && needDomLTPre.prerelease[0] === 0) {
|
||||
needDomLTPre = false;
|
||||
}
|
||||
for (const c of dom) {
|
||||
hasDomGT = hasDomGT || c.operator === ">" || c.operator === ">=";
|
||||
hasDomLT = hasDomLT || c.operator === "<" || c.operator === "<=";
|
||||
if (gt3) {
|
||||
if (gt2) {
|
||||
if (needDomGTPre) {
|
||||
if (c.semver.prerelease && c.semver.prerelease.length && c.semver.major === needDomGTPre.major && c.semver.minor === needDomGTPre.minor && c.semver.patch === needDomGTPre.patch) {
|
||||
needDomGTPre = false;
|
||||
}
|
||||
}
|
||||
if (c.operator === ">" || c.operator === ">=") {
|
||||
higher = higherGT(gt3, c, options);
|
||||
if (higher === c && higher !== gt3) {
|
||||
higher = higherGT(gt2, c, options);
|
||||
if (higher === c && higher !== gt2) {
|
||||
return false;
|
||||
}
|
||||
} else if (gt3.operator === ">=" && !satisfies4(gt3.semver, String(c), options)) {
|
||||
} else if (gt2.operator === ">=" && !satisfies4(gt2.semver, String(c), options)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
@ -28789,14 +28789,14 @@ var require_subset2 = __commonJS({
|
|||
return false;
|
||||
}
|
||||
}
|
||||
if (!c.operator && (lt || gt3) && gtltComp !== 0) {
|
||||
if (!c.operator && (lt || gt2) && gtltComp !== 0) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (gt3 && hasDomLT && !lt && gtltComp !== 0) {
|
||||
if (gt2 && hasDomLT && !lt && gtltComp !== 0) {
|
||||
return false;
|
||||
}
|
||||
if (lt && hasDomGT && !gt3 && gtltComp !== 0) {
|
||||
if (lt && hasDomGT && !gt2 && gtltComp !== 0) {
|
||||
return false;
|
||||
}
|
||||
if (needDomGTPre || needDomLTPre) {
|
||||
|
|
@ -28845,7 +28845,7 @@ var require_semver4 = __commonJS({
|
|||
var compareBuild = require_compare_build2();
|
||||
var sort = require_sort2();
|
||||
var rsort = require_rsort2();
|
||||
var gt3 = require_gt2();
|
||||
var gt2 = require_gt2();
|
||||
var lt = require_lt2();
|
||||
var eq = require_eq2();
|
||||
var neq = require_neq2();
|
||||
|
|
@ -28883,7 +28883,7 @@ var require_semver4 = __commonJS({
|
|||
compareBuild,
|
||||
sort,
|
||||
rsort,
|
||||
gt: gt3,
|
||||
gt: gt2,
|
||||
lt,
|
||||
eq,
|
||||
neq,
|
||||
|
|
@ -29114,13 +29114,13 @@ var require_operator = __commonJS({
|
|||
eq,
|
||||
ne,
|
||||
ge,
|
||||
gt: gt3,
|
||||
gt: gt2,
|
||||
"<": lt,
|
||||
"<=": le,
|
||||
"==": eq,
|
||||
"!=": ne,
|
||||
">=": ge,
|
||||
">": gt3,
|
||||
">": gt2,
|
||||
"===": arbitrary
|
||||
};
|
||||
function lt(version3, other) {
|
||||
|
|
@ -29138,7 +29138,7 @@ var require_operator = __commonJS({
|
|||
function ge(version3, other) {
|
||||
return compare(version3, other) >= 0;
|
||||
}
|
||||
function gt3(version3, other) {
|
||||
function gt2(version3, other) {
|
||||
return compare(version3, other) > 0;
|
||||
}
|
||||
function arbitrary(version3, other) {
|
||||
|
|
@ -29521,7 +29521,7 @@ var require_semantic = __commonJS({
|
|||
var require_pep440 = __commonJS({
|
||||
"node_modules/@renovatebot/pep440/index.js"(exports2, module2) {
|
||||
var { valid: valid2, clean: clean3, explain, parse: parse3 } = require_version();
|
||||
var { lt, le, eq, ne, ge, gt: gt3, compare, rcompare } = require_operator();
|
||||
var { lt, le, eq, ne, ge, gt: gt2, compare, rcompare } = require_operator();
|
||||
var {
|
||||
filter,
|
||||
maxSatisfying: maxSatisfying3,
|
||||
|
|
@ -29546,7 +29546,7 @@ var require_pep440 = __commonJS({
|
|||
neq: ne,
|
||||
ge,
|
||||
gte: ge,
|
||||
gt: gt3,
|
||||
gt: gt2,
|
||||
compare,
|
||||
rcompare,
|
||||
// range
|
||||
|
|
@ -30046,8 +30046,8 @@ var require_semver5 = __commonJS({
|
|||
return exports2.compareBuild(b, a, loose);
|
||||
});
|
||||
}
|
||||
exports2.gt = gt3;
|
||||
function gt3(a, b, loose) {
|
||||
exports2.gt = gt2;
|
||||
function gt2(a, b, loose) {
|
||||
return compare(a, b, loose) > 0;
|
||||
}
|
||||
exports2.lt = lt;
|
||||
|
|
@ -30092,7 +30092,7 @@ var require_semver5 = __commonJS({
|
|||
case "!=":
|
||||
return neq(a, b, loose);
|
||||
case ">":
|
||||
return gt3(a, b, loose);
|
||||
return gt2(a, b, loose);
|
||||
case ">=":
|
||||
return gte(a, b, loose);
|
||||
case "<":
|
||||
|
|
@ -30590,7 +30590,7 @@ var require_semver5 = __commonJS({
|
|||
/* fallthrough */
|
||||
case "":
|
||||
case ">=":
|
||||
if (!minver || gt3(minver, compver)) {
|
||||
if (!minver || gt2(minver, compver)) {
|
||||
minver = compver;
|
||||
}
|
||||
break;
|
||||
|
|
@ -30631,7 +30631,7 @@ var require_semver5 = __commonJS({
|
|||
var gtfn, ltefn, ltfn, comp26, ecomp;
|
||||
switch (hilo) {
|
||||
case ">":
|
||||
gtfn = gt3;
|
||||
gtfn = gt2;
|
||||
ltefn = lte;
|
||||
ltfn = lt;
|
||||
comp26 = ">";
|
||||
|
|
@ -30640,7 +30640,7 @@ var require_semver5 = __commonJS({
|
|||
case "<":
|
||||
gtfn = lt;
|
||||
ltefn = gte;
|
||||
ltfn = gt3;
|
||||
ltfn = gt2;
|
||||
comp26 = "<";
|
||||
ecomp = "<=";
|
||||
break;
|
||||
|
|
@ -90965,7 +90965,7 @@ function _getGlobal(key, defaultValue) {
|
|||
|
||||
// src/download/download-version.ts
|
||||
var pep440 = __toESM(require_pep440(), 1);
|
||||
var semver5 = __toESM(require_semver5(), 1);
|
||||
var semver4 = __toESM(require_semver5(), 1);
|
||||
|
||||
// src/utils/constants.ts
|
||||
var TOOL_CACHE_NAME = "uv";
|
||||
|
|
@ -95511,9 +95511,6 @@ async function validateFileCheckSum(filePath, expected) {
|
|||
});
|
||||
}
|
||||
|
||||
// src/download/manifest.ts
|
||||
var semver4 = __toESM(require_semver5(), 1);
|
||||
|
||||
// src/utils/fetch.ts
|
||||
var import_undici2 = __toESM(require_undici2(), 1);
|
||||
function getProxyAgent() {
|
||||
|
|
@ -95615,17 +95612,10 @@ function parseManifest(data, sourceDescription) {
|
|||
return versions;
|
||||
}
|
||||
async function getLatestVersion(manifestUrl = VERSIONS_MANIFEST_URL) {
|
||||
const versions = await fetchManifest(manifestUrl);
|
||||
const [firstVersion, ...remainingVersions] = versions.map(
|
||||
(versionData) => versionData.version
|
||||
);
|
||||
if (firstVersion === void 0) {
|
||||
const latestVersion = (await fetchManifest(manifestUrl))[0]?.version;
|
||||
if (latestVersion === void 0) {
|
||||
throw new Error("No versions found in manifest data");
|
||||
}
|
||||
const latestVersion = remainingVersions.reduce(
|
||||
(latest, current) => semver4.gt(current, latest) ? current : latest,
|
||||
firstVersion
|
||||
);
|
||||
debug(`Latest version from manifest: ${latestVersion}`);
|
||||
return latestVersion;
|
||||
}
|
||||
|
|
@ -95833,7 +95823,7 @@ function maxSatisfying2(versions, version3) {
|
|||
return void 0;
|
||||
}
|
||||
function minSatisfying3(versions, version3) {
|
||||
const minSemver = semver5.minSatisfying(versions, version3);
|
||||
const minSemver = semver4.minSatisfying(versions, version3);
|
||||
if (minSemver !== null) {
|
||||
debug(`Found a version that satisfies the semver range: ${minSemver}`);
|
||||
return minSemver;
|
||||
|
|
|
|||
32
dist/update-known-checksums/index.cjs
generated
vendored
32
dist/update-known-checksums/index.cjs
generated
vendored
|
|
@ -19064,8 +19064,8 @@ var require_semver = __commonJS({
|
|||
return exports2.compareBuild(b, a, loose);
|
||||
});
|
||||
}
|
||||
exports2.gt = gt2;
|
||||
function gt2(a, b, loose) {
|
||||
exports2.gt = gt;
|
||||
function gt(a, b, loose) {
|
||||
return compare(a, b, loose) > 0;
|
||||
}
|
||||
exports2.lt = lt;
|
||||
|
|
@ -19110,7 +19110,7 @@ var require_semver = __commonJS({
|
|||
case "!=":
|
||||
return neq(a, b, loose);
|
||||
case ">":
|
||||
return gt2(a, b, loose);
|
||||
return gt(a, b, loose);
|
||||
case ">=":
|
||||
return gte(a, b, loose);
|
||||
case "<":
|
||||
|
|
@ -19608,7 +19608,7 @@ var require_semver = __commonJS({
|
|||
/* fallthrough */
|
||||
case "":
|
||||
case ">=":
|
||||
if (!minver || gt2(minver, compver)) {
|
||||
if (!minver || gt(minver, compver)) {
|
||||
minver = compver;
|
||||
}
|
||||
break;
|
||||
|
|
@ -19649,7 +19649,7 @@ var require_semver = __commonJS({
|
|||
var gtfn, ltefn, ltfn, comp, ecomp;
|
||||
switch (hilo) {
|
||||
case ">":
|
||||
gtfn = gt2;
|
||||
gtfn = gt;
|
||||
ltefn = lte2;
|
||||
ltfn = lt;
|
||||
comp = ">";
|
||||
|
|
@ -19658,7 +19658,7 @@ var require_semver = __commonJS({
|
|||
case "<":
|
||||
gtfn = lt;
|
||||
ltefn = gte;
|
||||
ltfn = gt2;
|
||||
ltfn = gt;
|
||||
comp = "<";
|
||||
ecomp = "<=";
|
||||
break;
|
||||
|
|
@ -44945,7 +44945,7 @@ function info(message) {
|
|||
}
|
||||
|
||||
// src/update-known-checksums.ts
|
||||
var semver2 = __toESM(require_semver(), 1);
|
||||
var semver = __toESM(require_semver(), 1);
|
||||
|
||||
// src/download/checksum/known-checksums.ts
|
||||
var KNOWN_CHECKSUMS = {
|
||||
|
|
@ -49463,9 +49463,6 @@ async function updateChecksums(filePath, checksumEntries) {
|
|||
await import_node_fs.promises.writeFile(filePath, content);
|
||||
}
|
||||
|
||||
// src/download/manifest.ts
|
||||
var semver = __toESM(require_semver(), 1);
|
||||
|
||||
// src/utils/constants.ts
|
||||
var VERSIONS_MANIFEST_URL = "https://raw.githubusercontent.com/astral-sh/versions/main/v1/uv.ndjson";
|
||||
|
||||
|
|
@ -49544,17 +49541,10 @@ function parseManifest(data, sourceDescription) {
|
|||
return versions;
|
||||
}
|
||||
async function getLatestVersion(manifestUrl = VERSIONS_MANIFEST_URL) {
|
||||
const versions = await fetchManifest(manifestUrl);
|
||||
const [firstVersion, ...remainingVersions] = versions.map(
|
||||
(versionData) => versionData.version
|
||||
);
|
||||
if (firstVersion === void 0) {
|
||||
const latestVersion = (await fetchManifest(manifestUrl))[0]?.version;
|
||||
if (latestVersion === void 0) {
|
||||
throw new Error("No versions found in manifest data");
|
||||
}
|
||||
const latestVersion = remainingVersions.reduce(
|
||||
(latest, current) => semver.gt(current, latest) ? current : latest,
|
||||
firstVersion
|
||||
);
|
||||
debug(`Latest version from manifest: ${latestVersion}`);
|
||||
return latestVersion;
|
||||
}
|
||||
|
|
@ -49589,7 +49579,7 @@ async function run() {
|
|||
}
|
||||
const latestVersion = await getLatestVersion();
|
||||
const latestKnownVersion = getLatestKnownVersionFromChecksums();
|
||||
if (semver2.lte(latestVersion, latestKnownVersion)) {
|
||||
if (semver.lte(latestVersion, latestKnownVersion)) {
|
||||
info(
|
||||
`Latest release (${latestVersion}) is not newer than the latest known version (${latestKnownVersion}). Skipping update.`
|
||||
);
|
||||
|
|
@ -49608,7 +49598,7 @@ function getLatestKnownVersionFromChecksums() {
|
|||
versions.add(version);
|
||||
}
|
||||
}
|
||||
const latestVersion = [...versions].sort(semver2.rcompare)[0];
|
||||
const latestVersion = [...versions].sort(semver.rcompare)[0];
|
||||
if (!latestVersion) {
|
||||
throw new Error("Could not determine latest known version from checksums.");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
import * as core from "@actions/core";
|
||||
import * as semver from "semver";
|
||||
import { VERSIONS_MANIFEST_URL } from "../utils/constants";
|
||||
import { fetch } from "../utils/fetch";
|
||||
import { selectDefaultVariant } from "./variant-selection";
|
||||
|
|
@ -99,20 +98,12 @@ export function parseManifest(
|
|||
export async function getLatestVersion(
|
||||
manifestUrl: string = VERSIONS_MANIFEST_URL,
|
||||
): Promise<string> {
|
||||
const versions = await fetchManifest(manifestUrl);
|
||||
const [firstVersion, ...remainingVersions] = versions.map(
|
||||
(versionData) => versionData.version,
|
||||
);
|
||||
const latestVersion = (await fetchManifest(manifestUrl))[0]?.version;
|
||||
|
||||
if (firstVersion === undefined) {
|
||||
if (latestVersion === undefined) {
|
||||
throw new Error("No versions found in manifest data");
|
||||
}
|
||||
|
||||
const latestVersion = remainingVersions.reduce(
|
||||
(latest, current) => (semver.gt(current, latest) ? current : latest),
|
||||
firstVersion,
|
||||
);
|
||||
|
||||
core.debug(`Latest version from manifest: ${latestVersion}`);
|
||||
return latestVersion;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue