mirror of
https://github.com/astral-sh/setup-uv.git
synced 2025-12-23 11:01:03 +00:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
557e51de59 | ||
|
|
1b46e13ec8 | ||
|
|
26cf676705 | ||
|
|
4e1e303f7d |
86
__tests__/utils/inputs.test.ts
Normal file
86
__tests__/utils/inputs.test.ts
Normal file
@@ -0,0 +1,86 @@
|
|||||||
|
jest.mock("@actions/core", () => {
|
||||||
|
return {
|
||||||
|
debug: jest.fn(),
|
||||||
|
getBooleanInput: jest.fn(
|
||||||
|
(name: string) => (mockInputs[name] ?? "") === "true",
|
||||||
|
),
|
||||||
|
getInput: jest.fn((name: string) => mockInputs[name] ?? ""),
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
import {
|
||||||
|
afterEach,
|
||||||
|
beforeEach,
|
||||||
|
describe,
|
||||||
|
expect,
|
||||||
|
it,
|
||||||
|
jest,
|
||||||
|
} from "@jest/globals";
|
||||||
|
|
||||||
|
// Will be mutated per test before (re-)importing the module under test
|
||||||
|
let mockInputs: Record<string, string> = {};
|
||||||
|
const ORIGINAL_HOME = process.env.HOME;
|
||||||
|
|
||||||
|
describe("cacheDependencyGlob", () => {
|
||||||
|
beforeEach(() => {
|
||||||
|
jest.resetModules();
|
||||||
|
mockInputs = {};
|
||||||
|
process.env.HOME = "/home/testuser";
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
process.env.HOME = ORIGINAL_HOME;
|
||||||
|
});
|
||||||
|
|
||||||
|
it("returns empty string when input not provided", async () => {
|
||||||
|
mockInputs["working-directory"] = "/workspace";
|
||||||
|
const { cacheDependencyGlob } = await import("../../src/utils/inputs");
|
||||||
|
expect(cacheDependencyGlob).toBe("");
|
||||||
|
});
|
||||||
|
|
||||||
|
it("resolves a single relative path", async () => {
|
||||||
|
mockInputs["working-directory"] = "/workspace";
|
||||||
|
mockInputs["cache-dependency-glob"] = "requirements.txt";
|
||||||
|
const { cacheDependencyGlob } = await import("../../src/utils/inputs");
|
||||||
|
expect(cacheDependencyGlob).toBe("/workspace/requirements.txt");
|
||||||
|
});
|
||||||
|
|
||||||
|
it("strips leading ./ from relative path", async () => {
|
||||||
|
mockInputs["working-directory"] = "/workspace";
|
||||||
|
mockInputs["cache-dependency-glob"] = "./uv.lock";
|
||||||
|
const { cacheDependencyGlob } = await import("../../src/utils/inputs");
|
||||||
|
expect(cacheDependencyGlob).toBe("/workspace/uv.lock");
|
||||||
|
});
|
||||||
|
|
||||||
|
it("handles multiple lines, trimming whitespace, tilde expansion and absolute paths", async () => {
|
||||||
|
mockInputs["working-directory"] = "/workspace";
|
||||||
|
mockInputs["cache-dependency-glob"] =
|
||||||
|
" ~/.cache/file1\n ./rel/file2 \nfile3.txt";
|
||||||
|
const { cacheDependencyGlob } = await import("../../src/utils/inputs");
|
||||||
|
expect(cacheDependencyGlob).toBe(
|
||||||
|
[
|
||||||
|
"/home/testuser/.cache/file1", // expanded tilde, absolute path unchanged
|
||||||
|
"/workspace/rel/file2", // ./ stripped and resolved
|
||||||
|
"/workspace/file3.txt", // relative path resolved
|
||||||
|
].join("\n"),
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("keeps absolute path unchanged in multiline input", async () => {
|
||||||
|
mockInputs["working-directory"] = "/workspace";
|
||||||
|
mockInputs["cache-dependency-glob"] = "/abs/path.lock\nrelative.lock";
|
||||||
|
const { cacheDependencyGlob } = await import("../../src/utils/inputs");
|
||||||
|
expect(cacheDependencyGlob).toBe(
|
||||||
|
["/abs/path.lock", "/workspace/relative.lock"].join("\n"),
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("handles exclusions in relative paths correct", async () => {
|
||||||
|
mockInputs["working-directory"] = "/workspace";
|
||||||
|
mockInputs["cache-dependency-glob"] = "!/abs/path.lock\n!relative.lock";
|
||||||
|
const { cacheDependencyGlob } = await import("../../src/utils/inputs");
|
||||||
|
expect(cacheDependencyGlob).toBe(
|
||||||
|
["!/abs/path.lock", "!/workspace/relative.lock"].join("\n"),
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"$schema": "https://biomejs.dev/schemas/2.1.4/schema.json",
|
"$schema": "https://biomejs.dev/schemas/2.2.2/schema.json",
|
||||||
"assist": {
|
"assist": {
|
||||||
"actions": {
|
"actions": {
|
||||||
"source": {
|
"source": {
|
||||||
|
|||||||
98
dist/save-cache/index.js
generated
vendored
98
dist/save-cache/index.js
generated
vendored
@@ -48,6 +48,7 @@ const cacheTwirpClient = __importStar(__nccwpck_require__(6819));
|
|||||||
const config_1 = __nccwpck_require__(7606);
|
const config_1 = __nccwpck_require__(7606);
|
||||||
const tar_1 = __nccwpck_require__(5321);
|
const tar_1 = __nccwpck_require__(5321);
|
||||||
const constants_1 = __nccwpck_require__(8287);
|
const constants_1 = __nccwpck_require__(8287);
|
||||||
|
const http_client_1 = __nccwpck_require__(4844);
|
||||||
class ValidationError extends Error {
|
class ValidationError extends Error {
|
||||||
constructor(message) {
|
constructor(message) {
|
||||||
super(message);
|
super(message);
|
||||||
@@ -84,7 +85,17 @@ function checkKey(key) {
|
|||||||
* @returns boolean return true if Actions cache service feature is available, otherwise false
|
* @returns boolean return true if Actions cache service feature is available, otherwise false
|
||||||
*/
|
*/
|
||||||
function isFeatureAvailable() {
|
function isFeatureAvailable() {
|
||||||
return !!process.env['ACTIONS_CACHE_URL'];
|
const cacheServiceVersion = (0, config_1.getCacheServiceVersion)();
|
||||||
|
// Check availability based on cache service version
|
||||||
|
switch (cacheServiceVersion) {
|
||||||
|
case 'v2':
|
||||||
|
// For v2, we need ACTIONS_RESULTS_URL
|
||||||
|
return !!process.env['ACTIONS_RESULTS_URL'];
|
||||||
|
case 'v1':
|
||||||
|
default:
|
||||||
|
// For v1, we only need ACTIONS_CACHE_URL
|
||||||
|
return !!process.env['ACTIONS_CACHE_URL'];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
exports.isFeatureAvailable = isFeatureAvailable;
|
exports.isFeatureAvailable = isFeatureAvailable;
|
||||||
/**
|
/**
|
||||||
@@ -169,8 +180,16 @@ function restoreCacheV1(paths, primaryKey, restoreKeys, options, enableCrossOsAr
|
|||||||
throw error;
|
throw error;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// Supress all non-validation cache related errors because caching should be optional
|
// warn on cache restore failure and continue build
|
||||||
core.warning(`Failed to restore: ${error.message}`);
|
// Log server errors (5xx) as errors, all other errors as warnings
|
||||||
|
if (typedError instanceof http_client_1.HttpClientError &&
|
||||||
|
typeof typedError.statusCode === 'number' &&
|
||||||
|
typedError.statusCode >= 500) {
|
||||||
|
core.error(`Failed to restore: ${error.message}`);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
core.warning(`Failed to restore: ${error.message}`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
finally {
|
finally {
|
||||||
@@ -223,7 +242,13 @@ function restoreCacheV2(paths, primaryKey, restoreKeys, options, enableCrossOsAr
|
|||||||
core.debug(`Cache not found for version ${request.version} of keys: ${keys.join(', ')}`);
|
core.debug(`Cache not found for version ${request.version} of keys: ${keys.join(', ')}`);
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
core.info(`Cache hit for: ${request.key}`);
|
const isRestoreKeyMatch = request.key !== response.matchedKey;
|
||||||
|
if (isRestoreKeyMatch) {
|
||||||
|
core.info(`Cache hit for restore-key: ${response.matchedKey}`);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
core.info(`Cache hit for: ${response.matchedKey}`);
|
||||||
|
}
|
||||||
if (options === null || options === void 0 ? void 0 : options.lookupOnly) {
|
if (options === null || options === void 0 ? void 0 : options.lookupOnly) {
|
||||||
core.info('Lookup only - skipping download');
|
core.info('Lookup only - skipping download');
|
||||||
return response.matchedKey;
|
return response.matchedKey;
|
||||||
@@ -248,7 +273,15 @@ function restoreCacheV2(paths, primaryKey, restoreKeys, options, enableCrossOsAr
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// Supress all non-validation cache related errors because caching should be optional
|
// Supress all non-validation cache related errors because caching should be optional
|
||||||
core.warning(`Failed to restore: ${error.message}`);
|
// Log server errors (5xx) as errors, all other errors as warnings
|
||||||
|
if (typedError instanceof http_client_1.HttpClientError &&
|
||||||
|
typeof typedError.statusCode === 'number' &&
|
||||||
|
typedError.statusCode >= 500) {
|
||||||
|
core.error(`Failed to restore: ${error.message}`);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
core.warning(`Failed to restore: ${error.message}`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
finally {
|
finally {
|
||||||
@@ -351,7 +384,15 @@ function saveCacheV1(paths, key, options, enableCrossOsArchive = false) {
|
|||||||
core.info(`Failed to save: ${typedError.message}`);
|
core.info(`Failed to save: ${typedError.message}`);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
core.warning(`Failed to save: ${typedError.message}`);
|
// Log server errors (5xx) as errors, all other errors as warnings
|
||||||
|
if (typedError instanceof http_client_1.HttpClientError &&
|
||||||
|
typeof typedError.statusCode === 'number' &&
|
||||||
|
typedError.statusCode >= 500) {
|
||||||
|
core.error(`Failed to save: ${typedError.message}`);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
core.warning(`Failed to save: ${typedError.message}`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
finally {
|
finally {
|
||||||
@@ -447,7 +488,15 @@ function saveCacheV2(paths, key, options, enableCrossOsArchive = false) {
|
|||||||
core.info(`Failed to save: ${typedError.message}`);
|
core.info(`Failed to save: ${typedError.message}`);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
core.warning(`Failed to save: ${typedError.message}`);
|
// Log server errors (5xx) as errors, all other errors as warnings
|
||||||
|
if (typedError instanceof http_client_1.HttpClientError &&
|
||||||
|
typeof typedError.statusCode === 'number' &&
|
||||||
|
typedError.statusCode >= 500) {
|
||||||
|
core.error(`Failed to save: ${typedError.message}`);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
core.warning(`Failed to save: ${typedError.message}`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
finally {
|
finally {
|
||||||
@@ -71331,6 +71380,10 @@ class RpcOutputStreamController {
|
|||||||
cmp: [],
|
cmp: [],
|
||||||
};
|
};
|
||||||
this._closed = false;
|
this._closed = false;
|
||||||
|
// --- RpcOutputStream async iterator API
|
||||||
|
// iterator state.
|
||||||
|
// is undefined when no iterator has been acquired yet.
|
||||||
|
this._itState = { q: [] };
|
||||||
}
|
}
|
||||||
// --- RpcOutputStream callback API
|
// --- RpcOutputStream callback API
|
||||||
onNext(callback) {
|
onNext(callback) {
|
||||||
@@ -71430,10 +71483,6 @@ class RpcOutputStreamController {
|
|||||||
* messages are queued.
|
* messages are queued.
|
||||||
*/
|
*/
|
||||||
[Symbol.asyncIterator]() {
|
[Symbol.asyncIterator]() {
|
||||||
// init the iterator state, enabling pushIt()
|
|
||||||
if (!this._itState) {
|
|
||||||
this._itState = { q: [] };
|
|
||||||
}
|
|
||||||
// if we are closed, we are definitely not receiving any more messages.
|
// if we are closed, we are definitely not receiving any more messages.
|
||||||
// but we can't let the iterator get stuck. we want to either:
|
// but we can't let the iterator get stuck. we want to either:
|
||||||
// a) finish the new iterator immediately, because we are completed
|
// a) finish the new iterator immediately, because we are completed
|
||||||
@@ -71466,8 +71515,6 @@ class RpcOutputStreamController {
|
|||||||
// this either resolves a pending promise, or enqueues the result.
|
// this either resolves a pending promise, or enqueues the result.
|
||||||
pushIt(result) {
|
pushIt(result) {
|
||||||
let state = this._itState;
|
let state = this._itState;
|
||||||
if (!state)
|
|
||||||
return;
|
|
||||||
// is the consumer waiting for us?
|
// is the consumer waiting for us?
|
||||||
if (state.p) {
|
if (state.p) {
|
||||||
// yes, consumer is waiting for this promise.
|
// yes, consumer is waiting for this promise.
|
||||||
@@ -73379,6 +73426,7 @@ const reflection_equals_1 = __nccwpck_require__(4827);
|
|||||||
const binary_writer_1 = __nccwpck_require__(3957);
|
const binary_writer_1 = __nccwpck_require__(3957);
|
||||||
const binary_reader_1 = __nccwpck_require__(2889);
|
const binary_reader_1 = __nccwpck_require__(2889);
|
||||||
const baseDescriptors = Object.getOwnPropertyDescriptors(Object.getPrototypeOf({}));
|
const baseDescriptors = Object.getOwnPropertyDescriptors(Object.getPrototypeOf({}));
|
||||||
|
const messageTypeDescriptor = baseDescriptors[message_type_contract_1.MESSAGE_TYPE] = {};
|
||||||
/**
|
/**
|
||||||
* This standard message type provides reflection-based
|
* This standard message type provides reflection-based
|
||||||
* operations to work with a message.
|
* operations to work with a message.
|
||||||
@@ -73389,7 +73437,8 @@ class MessageType {
|
|||||||
this.typeName = name;
|
this.typeName = name;
|
||||||
this.fields = fields.map(reflection_info_1.normalizeFieldInfo);
|
this.fields = fields.map(reflection_info_1.normalizeFieldInfo);
|
||||||
this.options = options !== null && options !== void 0 ? options : {};
|
this.options = options !== null && options !== void 0 ? options : {};
|
||||||
this.messagePrototype = Object.create(null, Object.assign(Object.assign({}, baseDescriptors), { [message_type_contract_1.MESSAGE_TYPE]: { value: this } }));
|
messageTypeDescriptor.value = this;
|
||||||
|
this.messagePrototype = Object.create(null, baseDescriptors);
|
||||||
this.refTypeCheck = new reflection_type_check_1.ReflectionTypeCheck(this);
|
this.refTypeCheck = new reflection_type_check_1.ReflectionTypeCheck(this);
|
||||||
this.refJsonReader = new reflection_json_reader_1.ReflectionJsonReader(this);
|
this.refJsonReader = new reflection_json_reader_1.ReflectionJsonReader(this);
|
||||||
this.refJsonWriter = new reflection_json_writer_1.ReflectionJsonWriter(this);
|
this.refJsonWriter = new reflection_json_writer_1.ReflectionJsonWriter(this);
|
||||||
@@ -74906,12 +74955,16 @@ class ReflectionJsonReader {
|
|||||||
target[localName] = field.T().internalJsonRead(jsonValue, options, target[localName]);
|
target[localName] = field.T().internalJsonRead(jsonValue, options, target[localName]);
|
||||||
break;
|
break;
|
||||||
case "enum":
|
case "enum":
|
||||||
|
if (jsonValue === null)
|
||||||
|
continue;
|
||||||
let val = this.enum(field.T(), jsonValue, field.name, options.ignoreUnknownFields);
|
let val = this.enum(field.T(), jsonValue, field.name, options.ignoreUnknownFields);
|
||||||
if (val === false)
|
if (val === false)
|
||||||
continue;
|
continue;
|
||||||
target[localName] = val;
|
target[localName] = val;
|
||||||
break;
|
break;
|
||||||
case "scalar":
|
case "scalar":
|
||||||
|
if (jsonValue === null)
|
||||||
|
continue;
|
||||||
target[localName] = this.scalar(jsonValue, field.T, field.L, field.name);
|
target[localName] = this.scalar(jsonValue, field.T, field.L, field.name);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -90169,16 +90222,11 @@ function expandTilde(input) {
|
|||||||
return input;
|
return input;
|
||||||
}
|
}
|
||||||
function resolveRelativePath(inputPath) {
|
function resolveRelativePath(inputPath) {
|
||||||
if (node_path_1.default.isAbsolute(inputPath)) {
|
const hasNegation = inputPath.startsWith("!");
|
||||||
return inputPath;
|
const pathWithoutNegation = hasNegation ? inputPath.substring(1) : inputPath;
|
||||||
}
|
const resolvedPath = node_path_1.default.resolve(exports.workingDirectory, pathWithoutNegation);
|
||||||
let absolutePath = inputPath;
|
core.debug(`Resolving relative path ${inputPath} to ${hasNegation ? "!" : ""}${resolvedPath}`);
|
||||||
if (absolutePath.startsWith("./")) {
|
return hasNegation ? `!${resolvedPath}` : resolvedPath;
|
||||||
absolutePath = absolutePath.substring(2);
|
|
||||||
}
|
|
||||||
absolutePath = `${exports.workingDirectory}${node_path_1.default.sep}${absolutePath}`;
|
|
||||||
core.debug(`Resolving relative path ${inputPath} to ${absolutePath}`);
|
|
||||||
return absolutePath;
|
|
||||||
}
|
}
|
||||||
function getManifestFile() {
|
function getManifestFile() {
|
||||||
const manifestFileInput = core.getInput("manifest-file");
|
const manifestFileInput = core.getInput("manifest-file");
|
||||||
@@ -92202,7 +92250,7 @@ module.exports = parseParams
|
|||||||
/***/ ((module) => {
|
/***/ ((module) => {
|
||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
module.exports = /*#__PURE__*/JSON.parse('{"name":"@actions/cache","version":"4.0.3","preview":true,"description":"Actions cache lib","keywords":["github","actions","cache"],"homepage":"https://github.com/actions/toolkit/tree/main/packages/cache","license":"MIT","main":"lib/cache.js","types":"lib/cache.d.ts","directories":{"lib":"lib","test":"__tests__"},"files":["lib","!.DS_Store"],"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/actions/toolkit.git","directory":"packages/cache"},"scripts":{"audit-moderate":"npm install && npm audit --json --audit-level=moderate > audit.json","test":"echo \\"Error: run tests from root\\" && exit 1","tsc":"tsc"},"bugs":{"url":"https://github.com/actions/toolkit/issues"},"dependencies":{"@actions/core":"^1.11.1","@actions/exec":"^1.0.1","@actions/glob":"^0.1.0","@actions/http-client":"^2.1.1","@actions/io":"^1.0.1","@azure/abort-controller":"^1.1.0","@azure/ms-rest-js":"^2.6.0","@azure/storage-blob":"^12.13.0","@protobuf-ts/plugin":"^2.9.4","semver":"^6.3.1"},"devDependencies":{"@types/node":"^22.13.9","@types/semver":"^6.0.0","typescript":"^5.2.2"}}');
|
module.exports = /*#__PURE__*/JSON.parse('{"name":"@actions/cache","version":"4.0.5","preview":true,"description":"Actions cache lib","keywords":["github","actions","cache"],"homepage":"https://github.com/actions/toolkit/tree/main/packages/cache","license":"MIT","main":"lib/cache.js","types":"lib/cache.d.ts","directories":{"lib":"lib","test":"__tests__"},"files":["lib","!.DS_Store"],"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/actions/toolkit.git","directory":"packages/cache"},"scripts":{"audit-moderate":"npm install && npm audit --json --audit-level=moderate > audit.json","test":"echo \\"Error: run tests from root\\" && exit 1","tsc":"tsc"},"bugs":{"url":"https://github.com/actions/toolkit/issues"},"dependencies":{"@actions/core":"^1.11.1","@actions/exec":"^1.0.1","@actions/glob":"^0.1.0","@protobuf-ts/runtime-rpc":"^2.11.1","@actions/http-client":"^2.1.1","@actions/io":"^1.0.1","@azure/abort-controller":"^1.1.0","@azure/ms-rest-js":"^2.6.0","@azure/storage-blob":"^12.13.0","semver":"^6.3.1"},"devDependencies":{"@types/node":"^22.13.9","@types/semver":"^6.0.0","@protobuf-ts/plugin":"^2.9.4","typescript":"^5.2.2"}}');
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
|
|||||||
1062
dist/setup/index.js
generated
vendored
1062
dist/setup/index.js
generated
vendored
File diff suppressed because one or more lines are too long
964
dist/update-known-versions/index.js
generated
vendored
964
dist/update-known-versions/index.js
generated
vendored
File diff suppressed because one or more lines are too long
1257
package-lock.json
generated
1257
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -21,7 +21,7 @@
|
|||||||
"author": "@eifinger",
|
"author": "@eifinger",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/cache": "^4.0.3",
|
"@actions/cache": "^4.0.5",
|
||||||
"@actions/core": "^1.11.1",
|
"@actions/core": "^1.11.1",
|
||||||
"@actions/exec": "^1.1.1",
|
"@actions/exec": "^1.1.1",
|
||||||
"@actions/glob": "^0.5.0",
|
"@actions/glob": "^0.5.0",
|
||||||
@@ -32,15 +32,15 @@
|
|||||||
"@octokit/plugin-rest-endpoint-methods": "^16.0.0",
|
"@octokit/plugin-rest-endpoint-methods": "^16.0.0",
|
||||||
"@renovatebot/pep440": "^4.2.0",
|
"@renovatebot/pep440": "^4.2.0",
|
||||||
"smol-toml": "^1.4.2",
|
"smol-toml": "^1.4.2",
|
||||||
"undici": "^7.14.0"
|
"undici": "^7.15.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@biomejs/biome": "2.1.4",
|
"@biomejs/biome": "2.2.2",
|
||||||
"@types/js-yaml": "^4.0.9",
|
"@types/js-yaml": "^4.0.9",
|
||||||
"@types/node": "^24.3.0",
|
"@types/node": "^24.3.0",
|
||||||
"@types/semver": "^7.7.0",
|
"@types/semver": "^7.7.0",
|
||||||
"@vercel/ncc": "^0.38.3",
|
"@vercel/ncc": "^0.38.3",
|
||||||
"jest": "^30.0.5",
|
"jest": "^30.1.1",
|
||||||
"js-yaml": "^4.1.0",
|
"js-yaml": "^4.1.0",
|
||||||
"ts-jest": "^29.4.1",
|
"ts-jest": "^29.4.1",
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.2"
|
||||||
|
|||||||
@@ -1,5 +1,77 @@
|
|||||||
// AUTOGENERATED_DO_NOT_EDIT
|
// AUTOGENERATED_DO_NOT_EDIT
|
||||||
export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||||
|
"aarch64-apple-darwin-0.8.14":
|
||||||
|
"281ea18a5778099f7edeee0a7b20671d14918782de153604c939486f2b8a2791",
|
||||||
|
"aarch64-pc-windows-msvc-0.8.14":
|
||||||
|
"d7fef1d1d0b0f8e0aa94391376fe5fb95f0e213ef7ee1c498c287fe0ea76f886",
|
||||||
|
"aarch64-unknown-linux-gnu-0.8.14":
|
||||||
|
"69616218470b2ad053617efb9e7027b1518ea38918d933c2791e113d99cec507",
|
||||||
|
"aarch64-unknown-linux-musl-0.8.14":
|
||||||
|
"d492d433d8ea87a4051c3f071ed04f13f8f001aa782e2e8192eaa5143e9a6f39",
|
||||||
|
"arm-unknown-linux-musleabihf-0.8.14":
|
||||||
|
"ef6a51cc1808de75969e2719420464d494bb5932d18ebf3ac07df7a5ab27b16a",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.8.14":
|
||||||
|
"75c77b40c39dd526f88f5119d686e44d95c10cece436e4306f0db32b94d91716",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.8.14":
|
||||||
|
"33a15d40d407323a516edabdc4eb33bbefc04e17d40769a04bfc15605d2eee1e",
|
||||||
|
"i686-pc-windows-msvc-0.8.14":
|
||||||
|
"b43c5703cdfb15c019b04cad2ef19034a91e8a0872ae2d674d366dfc0a755124",
|
||||||
|
"i686-unknown-linux-gnu-0.8.14":
|
||||||
|
"d49a796d569b010d43eeb8d9259f1a12fa910176b076c04c13609648973f428e",
|
||||||
|
"i686-unknown-linux-musl-0.8.14":
|
||||||
|
"cee58d8fe55f59a0869039f83875ee44a4a12b3b3f1f1f5a2bdc68968e449f54",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.8.14":
|
||||||
|
"f118e642a7e360384a0277980986cea4857cc2d90364d58865d941c6b8abfcd1",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.8.14":
|
||||||
|
"c411e63edd125283641420bb4be830872be269451756de2095aebc3ca8b0277a",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.8.14":
|
||||||
|
"1bb13f9d1a3e55dcea09f3b99b35ec0fbd3428276311b068268b07cd07c5b067",
|
||||||
|
"s390x-unknown-linux-gnu-0.8.14":
|
||||||
|
"8643d6ab3513ab4adc3ffb56c39813651725d047ee6af5de3ae1fd0e4975c364",
|
||||||
|
"x86_64-apple-darwin-0.8.14":
|
||||||
|
"567d98b0c541a68df8aaa2c3214242c4070068b2edaea1be376a4c0fa348bdf1",
|
||||||
|
"x86_64-pc-windows-msvc-0.8.14":
|
||||||
|
"3f68ab95d2856e6b238e0e3f4255a723ccdc2cf1d4b8e53f5a4f5a47b645dc72",
|
||||||
|
"x86_64-unknown-linux-gnu-0.8.14":
|
||||||
|
"954add045f29f93191523175e4aea066996840e86c1b6339dee25f48b15b5ddb",
|
||||||
|
"x86_64-unknown-linux-musl-0.8.14":
|
||||||
|
"e018287fb321c3c633df2b622c2cf53042caa5c4c43a4ca6431bcb38e0685fa4",
|
||||||
|
"aarch64-apple-darwin-0.8.13":
|
||||||
|
"c3eddc0e314abb8588f1cdf312f0b060d79e1906eff8f43b64a05ff5e2727872",
|
||||||
|
"aarch64-pc-windows-msvc-0.8.13":
|
||||||
|
"5b3a80d385d26fb9f63579a0712d020ec413ada38a6900e88fdfd41b58795b7e",
|
||||||
|
"aarch64-unknown-linux-gnu-0.8.13":
|
||||||
|
"3bb77b764618f65a969da063d1c4a507d8de5360ca2858f771cab109fa879a4d",
|
||||||
|
"aarch64-unknown-linux-musl-0.8.13":
|
||||||
|
"40ba6e62de35820e8460eacee2b5b8f4add70a834d3859f7a60cdfc6b19ab599",
|
||||||
|
"arm-unknown-linux-musleabihf-0.8.13":
|
||||||
|
"f108a49a17b0700d7121b0215575f96c46a203774ed80ef40544005d7af74a67",
|
||||||
|
"armv7-unknown-linux-gnueabihf-0.8.13":
|
||||||
|
"730d8ef57f221ecc572d47b227ecbd8261be08157efb351311f7bc1f6c1c944a",
|
||||||
|
"armv7-unknown-linux-musleabihf-0.8.13":
|
||||||
|
"b78dacab7c2fb352301d8997c0c705c3959a4e44d7b3afe670aee2397a2c9ab3",
|
||||||
|
"i686-pc-windows-msvc-0.8.13":
|
||||||
|
"08482edef8b077e12e73f76e6b4bb0300c054b8009cfac5cc354297f47d24623",
|
||||||
|
"i686-unknown-linux-gnu-0.8.13":
|
||||||
|
"0ce384911d4af9007576ceba2557c5d474a953ced34602ee4e09bd888cee13c0",
|
||||||
|
"i686-unknown-linux-musl-0.8.13":
|
||||||
|
"b6462dc8190c7a1eafa74287d8ff213764baa49e098aeeb522fa479d29e1c0bf",
|
||||||
|
"powerpc64-unknown-linux-gnu-0.8.13":
|
||||||
|
"9a8e8a8927df9fa39af79214ab1acfc227dba9d9e690a424cef1dc17296161a8",
|
||||||
|
"powerpc64le-unknown-linux-gnu-0.8.13":
|
||||||
|
"4880a8e2ba5086e7ed4bd3aecfdae5e353da569ddaac02cd3db598b4c8e77193",
|
||||||
|
"riscv64gc-unknown-linux-gnu-0.8.13":
|
||||||
|
"0cd68055cedbc5b1194e7e7ab2b35ac7aa1d835c586fb3778c7acb0e8a8ac822",
|
||||||
|
"s390x-unknown-linux-gnu-0.8.13":
|
||||||
|
"8cc2e70bee35c9e437c2308f130b79acc0d7c43e710296990ed76e702e220912",
|
||||||
|
"x86_64-apple-darwin-0.8.13":
|
||||||
|
"b799253441726351bc60c2e91254a821001e5e2e22a0e2b077d8983f583e8139",
|
||||||
|
"x86_64-pc-windows-msvc-0.8.13":
|
||||||
|
"60870fa18d438737088e533ed06617549e42531c522cc9a8fe4455d8e745dc29",
|
||||||
|
"x86_64-unknown-linux-gnu-0.8.13":
|
||||||
|
"8ca3db7b2a3199171cfc0870be1f819cb853ddcec29a5fa28dae30278922b7ba",
|
||||||
|
"x86_64-unknown-linux-musl-0.8.13":
|
||||||
|
"38ade73396b48fce89d9d1cb8a7e8f02b6e18a2d87467525ee8fb7e09899f70d",
|
||||||
"aarch64-apple-darwin-0.8.12":
|
"aarch64-apple-darwin-0.8.12":
|
||||||
"a3f78d20465c6d18f7072f118ce1c61b164b98698fdc37357e72958c7d1b68fd",
|
"a3f78d20465c6d18f7072f118ce1c61b164b98698fdc37357e72958c7d1b68fd",
|
||||||
"aarch64-pc-windows-msvc-0.8.12":
|
"aarch64-pc-windows-msvc-0.8.12":
|
||||||
|
|||||||
@@ -116,16 +116,15 @@ function expandTilde(input: string): string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function resolveRelativePath(inputPath: string): string {
|
function resolveRelativePath(inputPath: string): string {
|
||||||
if (path.isAbsolute(inputPath)) {
|
const hasNegation = inputPath.startsWith("!");
|
||||||
return inputPath;
|
const pathWithoutNegation = hasNegation ? inputPath.substring(1) : inputPath;
|
||||||
}
|
|
||||||
let absolutePath = inputPath;
|
const resolvedPath = path.resolve(workingDirectory, pathWithoutNegation);
|
||||||
if (absolutePath.startsWith("./")) {
|
|
||||||
absolutePath = absolutePath.substring(2);
|
core.debug(
|
||||||
}
|
`Resolving relative path ${inputPath} to ${hasNegation ? "!" : ""}${resolvedPath}`,
|
||||||
absolutePath = `${workingDirectory}${path.sep}${absolutePath}`;
|
);
|
||||||
core.debug(`Resolving relative path ${inputPath} to ${absolutePath}`);
|
return hasNegation ? `!${resolvedPath}` : resolvedPath;
|
||||||
return absolutePath;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function getManifestFile(): string | undefined {
|
function getManifestFile(): string | undefined {
|
||||||
|
|||||||
@@ -1,4 +1,256 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-apple-darwin.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.8.14/uv-aarch64-apple-darwin.tar.gz",
|
||||||
|
"platform": "apple-darwin",
|
||||||
|
"version": "0.8.14"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-pc-windows-msvc.zip",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.8.14/uv-aarch64-pc-windows-msvc.zip",
|
||||||
|
"platform": "pc-windows-msvc",
|
||||||
|
"version": "0.8.14"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.8.14/uv-aarch64-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.8.14"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-unknown-linux-musl.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.8.14/uv-aarch64-unknown-linux-musl.tar.gz",
|
||||||
|
"platform": "unknown-linux-musl",
|
||||||
|
"version": "0.8.14"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "arm",
|
||||||
|
"artifactName": "uv-arm-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.8.14/uv-arm-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"platform": "unknown-linux-musleabihf",
|
||||||
|
"version": "0.8.14"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "armv7",
|
||||||
|
"artifactName": "uv-armv7-unknown-linux-gnueabihf.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.8.14/uv-armv7-unknown-linux-gnueabihf.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnueabihf",
|
||||||
|
"version": "0.8.14"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "armv7",
|
||||||
|
"artifactName": "uv-armv7-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.8.14/uv-armv7-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"platform": "unknown-linux-musleabihf",
|
||||||
|
"version": "0.8.14"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "i686",
|
||||||
|
"artifactName": "uv-i686-pc-windows-msvc.zip",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.8.14/uv-i686-pc-windows-msvc.zip",
|
||||||
|
"platform": "pc-windows-msvc",
|
||||||
|
"version": "0.8.14"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "i686",
|
||||||
|
"artifactName": "uv-i686-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.8.14/uv-i686-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.8.14"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "i686",
|
||||||
|
"artifactName": "uv-i686-unknown-linux-musl.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.8.14/uv-i686-unknown-linux-musl.tar.gz",
|
||||||
|
"platform": "unknown-linux-musl",
|
||||||
|
"version": "0.8.14"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "powerpc64",
|
||||||
|
"artifactName": "uv-powerpc64-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.8.14/uv-powerpc64-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.8.14"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "powerpc64le",
|
||||||
|
"artifactName": "uv-powerpc64le-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.8.14/uv-powerpc64le-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.8.14"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "riscv64gc",
|
||||||
|
"artifactName": "uv-riscv64gc-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.8.14/uv-riscv64gc-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.8.14"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "s390x",
|
||||||
|
"artifactName": "uv-s390x-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.8.14/uv-s390x-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.8.14"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-apple-darwin.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.8.14/uv-x86_64-apple-darwin.tar.gz",
|
||||||
|
"platform": "apple-darwin",
|
||||||
|
"version": "0.8.14"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-pc-windows-msvc.zip",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.8.14/uv-x86_64-pc-windows-msvc.zip",
|
||||||
|
"platform": "pc-windows-msvc",
|
||||||
|
"version": "0.8.14"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.8.14/uv-x86_64-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.8.14"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-unknown-linux-musl.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.8.14/uv-x86_64-unknown-linux-musl.tar.gz",
|
||||||
|
"platform": "unknown-linux-musl",
|
||||||
|
"version": "0.8.14"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-apple-darwin.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.8.13/uv-aarch64-apple-darwin.tar.gz",
|
||||||
|
"platform": "apple-darwin",
|
||||||
|
"version": "0.8.13"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-pc-windows-msvc.zip",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.8.13/uv-aarch64-pc-windows-msvc.zip",
|
||||||
|
"platform": "pc-windows-msvc",
|
||||||
|
"version": "0.8.13"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.8.13/uv-aarch64-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.8.13"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "aarch64",
|
||||||
|
"artifactName": "uv-aarch64-unknown-linux-musl.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.8.13/uv-aarch64-unknown-linux-musl.tar.gz",
|
||||||
|
"platform": "unknown-linux-musl",
|
||||||
|
"version": "0.8.13"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "arm",
|
||||||
|
"artifactName": "uv-arm-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.8.13/uv-arm-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"platform": "unknown-linux-musleabihf",
|
||||||
|
"version": "0.8.13"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "armv7",
|
||||||
|
"artifactName": "uv-armv7-unknown-linux-gnueabihf.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.8.13/uv-armv7-unknown-linux-gnueabihf.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnueabihf",
|
||||||
|
"version": "0.8.13"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "armv7",
|
||||||
|
"artifactName": "uv-armv7-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.8.13/uv-armv7-unknown-linux-musleabihf.tar.gz",
|
||||||
|
"platform": "unknown-linux-musleabihf",
|
||||||
|
"version": "0.8.13"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "i686",
|
||||||
|
"artifactName": "uv-i686-pc-windows-msvc.zip",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.8.13/uv-i686-pc-windows-msvc.zip",
|
||||||
|
"platform": "pc-windows-msvc",
|
||||||
|
"version": "0.8.13"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "i686",
|
||||||
|
"artifactName": "uv-i686-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.8.13/uv-i686-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.8.13"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "i686",
|
||||||
|
"artifactName": "uv-i686-unknown-linux-musl.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.8.13/uv-i686-unknown-linux-musl.tar.gz",
|
||||||
|
"platform": "unknown-linux-musl",
|
||||||
|
"version": "0.8.13"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "powerpc64",
|
||||||
|
"artifactName": "uv-powerpc64-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.8.13/uv-powerpc64-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.8.13"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "powerpc64le",
|
||||||
|
"artifactName": "uv-powerpc64le-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.8.13/uv-powerpc64le-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.8.13"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "riscv64gc",
|
||||||
|
"artifactName": "uv-riscv64gc-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.8.13/uv-riscv64gc-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.8.13"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "s390x",
|
||||||
|
"artifactName": "uv-s390x-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.8.13/uv-s390x-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.8.13"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-apple-darwin.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.8.13/uv-x86_64-apple-darwin.tar.gz",
|
||||||
|
"platform": "apple-darwin",
|
||||||
|
"version": "0.8.13"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-pc-windows-msvc.zip",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.8.13/uv-x86_64-pc-windows-msvc.zip",
|
||||||
|
"platform": "pc-windows-msvc",
|
||||||
|
"version": "0.8.13"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-unknown-linux-gnu.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.8.13/uv-x86_64-unknown-linux-gnu.tar.gz",
|
||||||
|
"platform": "unknown-linux-gnu",
|
||||||
|
"version": "0.8.13"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arch": "x86_64",
|
||||||
|
"artifactName": "uv-x86_64-unknown-linux-musl.tar.gz",
|
||||||
|
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.8.13/uv-x86_64-unknown-linux-musl.tar.gz",
|
||||||
|
"platform": "unknown-linux-musl",
|
||||||
|
"version": "0.8.13"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"arch": "aarch64",
|
"arch": "aarch64",
|
||||||
"artifactName": "uv-aarch64-apple-darwin.tar.gz",
|
"artifactName": "uv-aarch64-apple-darwin.tar.gz",
|
||||||
|
|||||||
Reference in New Issue
Block a user