mirror of
https://github.com/astral-sh/setup-uv.git
synced 2025-12-15 11:07:14 +00:00
Compare commits
23 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c9aa747934 | ||
|
|
97dc6041e9 | ||
|
|
c11f8674f8 | ||
|
|
023eb7875f | ||
|
|
315da29189 | ||
|
|
4cda7d7332 | ||
|
|
8114e5e81b | ||
|
|
7ee921e18a | ||
|
|
8c3a35e468 | ||
|
|
abac0ce7b0 | ||
|
|
03e245b158 | ||
|
|
aeb46491c7 | ||
|
|
dbb680fbd2 | ||
|
|
8de9ba90a2 | ||
|
|
118bd876d2 | ||
|
|
adcf5c892e | ||
|
|
0c326cbd51 | ||
|
|
8205eab75b | ||
|
|
ce0062aac7 | ||
|
|
8e09161b4b | ||
|
|
bf2778f5d6 | ||
|
|
223591d242 | ||
|
|
79fb68ebfe |
@@ -1,4 +0,0 @@
|
||||
dist/
|
||||
lib/
|
||||
node_modules/
|
||||
jest.config.js
|
||||
@@ -1,61 +0,0 @@
|
||||
{
|
||||
"plugins": ["jest", "@typescript-eslint"],
|
||||
"extends": ["plugin:github/recommended"],
|
||||
"parser": "@typescript-eslint/parser",
|
||||
"parserOptions": {
|
||||
"ecmaVersion": 9,
|
||||
"sourceType": "module",
|
||||
"project": "./tsconfig.json"
|
||||
},
|
||||
"rules": {
|
||||
"no-shadow": "off",
|
||||
"@typescript-eslint/no-shadow": ["error"],
|
||||
"i18n-text/no-en": "off",
|
||||
"eslint-comments/no-use": "off",
|
||||
"import/no-namespace": "off",
|
||||
"no-unused-vars": "off",
|
||||
"@typescript-eslint/no-unused-vars": "error",
|
||||
"@typescript-eslint/explicit-member-accessibility": [
|
||||
"error",
|
||||
{ "accessibility": "no-public" }
|
||||
],
|
||||
"@typescript-eslint/no-require-imports": "error",
|
||||
"@typescript-eslint/array-type": "error",
|
||||
"@typescript-eslint/await-thenable": "error",
|
||||
"@typescript-eslint/ban-ts-comment": "error",
|
||||
"camelcase": "off",
|
||||
"@typescript-eslint/consistent-type-assertions": "error",
|
||||
"@typescript-eslint/explicit-function-return-type": [
|
||||
"error",
|
||||
{ "allowExpressions": true }
|
||||
],
|
||||
"@typescript-eslint/func-call-spacing": ["error", "never"],
|
||||
"@typescript-eslint/no-array-constructor": "error",
|
||||
"@typescript-eslint/no-empty-interface": "error",
|
||||
"@typescript-eslint/no-explicit-any": "error",
|
||||
"@typescript-eslint/no-extraneous-class": "error",
|
||||
"@typescript-eslint/no-for-in-array": "error",
|
||||
"@typescript-eslint/no-inferrable-types": "error",
|
||||
"@typescript-eslint/no-misused-new": "error",
|
||||
"@typescript-eslint/no-namespace": "error",
|
||||
"@typescript-eslint/no-non-null-assertion": "warn",
|
||||
"@typescript-eslint/no-unnecessary-qualifier": "error",
|
||||
"@typescript-eslint/no-unnecessary-type-assertion": "error",
|
||||
"@typescript-eslint/no-useless-constructor": "error",
|
||||
"@typescript-eslint/no-var-requires": "error",
|
||||
"@typescript-eslint/prefer-for-of": "warn",
|
||||
"@typescript-eslint/prefer-function-type": "warn",
|
||||
"@typescript-eslint/prefer-includes": "error",
|
||||
"@typescript-eslint/prefer-string-starts-ends-with": "error",
|
||||
"@typescript-eslint/promise-function-async": "error",
|
||||
"@typescript-eslint/require-array-sort-compare": "error",
|
||||
"@typescript-eslint/restrict-plus-operands": "error",
|
||||
"@typescript-eslint/type-annotation-spacing": "error",
|
||||
"@typescript-eslint/unbound-method": "error"
|
||||
},
|
||||
"env": {
|
||||
"node": true,
|
||||
"es6": true,
|
||||
"jest/globals": true
|
||||
}
|
||||
}
|
||||
4
.github/workflows/test-cache.yml
vendored
4
.github/workflows/test-cache.yml
vendored
@@ -89,7 +89,7 @@ jobs:
|
||||
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
||||
|
||||
test-setup-cache-local:
|
||||
runs-on: oracle-aarch64
|
||||
runs-on: selfhosted-ubuntu-arm64
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup with cache
|
||||
@@ -101,7 +101,7 @@ jobs:
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
test-restore-cache-local:
|
||||
runs-on: oracle-aarch64
|
||||
runs-on: selfhosted-ubuntu-arm64
|
||||
needs: test-setup-cache-local
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
49
.github/workflows/test.yml
vendored
49
.github/workflows/test.yml
vendored
@@ -28,7 +28,7 @@ jobs:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-latest, macos-latest, macos-14, oracle-aarch64]
|
||||
os: [ubuntu-latest, macos-latest, macos-14, selfhosted-ubuntu-arm64]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install default version
|
||||
@@ -39,8 +39,8 @@ jobs:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-latest, macos-latest, macos-14, oracle-aarch64]
|
||||
uv-version: ["latest", "0.3.0", "0.3.2"]
|
||||
os: [ubuntu-latest, macos-latest, macos-14, selfhosted-ubuntu-arm64]
|
||||
uv-version: ["latest", "0.3.0", "0.3.2", "0.3", "0.3.x", ">=0.3.0"]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install version ${{ matrix.uv-version }}
|
||||
@@ -49,18 +49,37 @@ jobs:
|
||||
version: ${{ matrix.uv-version }}
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
test-semver-range:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-latest, selfhosted-ubuntu-arm64]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install version 0.3
|
||||
id: setup-uv
|
||||
uses: ./
|
||||
with:
|
||||
version: "0.3"
|
||||
- name: Correct version gets installed
|
||||
run: |
|
||||
if [ "$UV_VERSION" != "0.3.5" ]; then
|
||||
exit 1
|
||||
fi
|
||||
env:
|
||||
UV_VERSION: ${{ steps.setup-uv.outputs.uv-version }}
|
||||
test-checksum:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-latest, oracle-aarch64]
|
||||
os: [ubuntu-latest, selfhosted-ubuntu-arm64]
|
||||
checksum:
|
||||
["4d9279ad5ca596b1e2d703901d508430eb07564dc4d8837de9e2fca9c90f8ecd"]
|
||||
exclude:
|
||||
- os: oracle-aarch64
|
||||
- os: selfhosted-ubuntu-arm64
|
||||
checksum: "4d9279ad5ca596b1e2d703901d508430eb07564dc4d8837de9e2fca9c90f8ecd"
|
||||
include:
|
||||
- os: oracle-aarch64
|
||||
- os: selfhosted-ubuntu-arm64
|
||||
checksum: "e11b01402ab645392c7ad6044db63d37e4fd1e745e015306993b07695ea5f9f8"
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
@@ -86,3 +105,21 @@ jobs:
|
||||
- name: Install default version
|
||||
uses: ./
|
||||
- run: uvx ruff --version
|
||||
test-tool-install:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
ubuntu-latest,
|
||||
macos-latest,
|
||||
macos-14,
|
||||
windows-latest,
|
||||
selfhosted-ubuntu-arm64,
|
||||
]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install default version
|
||||
uses: ./
|
||||
- run: uv tool install ruff
|
||||
- run: ruff --version
|
||||
|
||||
2
.github/workflows/update-known-checksums.yml
vendored
2
.github/workflows/update-known-checksums.yml
vendored
@@ -17,7 +17,7 @@ jobs:
|
||||
src/download/checksum/known-checksums.ts ${{ secrets.GITHUB_TOKEN }}
|
||||
- run: npm install && npm run all
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@6cd32fd93684475c31847837f87bb135d40a2b79 # v7.0.3
|
||||
uses: peter-evans/create-pull-request@5e914681df9dc83aa4e4905692ca88beb2f9e91f # v7.0.5
|
||||
with:
|
||||
commit-message: "chore: update known checksums"
|
||||
title:
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
dist/
|
||||
lib/
|
||||
node_modules/
|
||||
@@ -1,4 +0,0 @@
|
||||
{
|
||||
"trailingComma": "all",
|
||||
"proseWrap": "always"
|
||||
}
|
||||
95
README.md
95
README.md
@@ -13,11 +13,14 @@ Set up your GitHub Actions workflow with a specific version of [uv](https://docs
|
||||
- [Usage](#usage)
|
||||
- [Install the latest version (default)](#install-the-latest-version-default)
|
||||
- [Install a specific version](#install-a-specific-version)
|
||||
- [Install a version by supplying a semver range](#install-a-version-by-supplying-a-semver-range)
|
||||
- [Validate checksum](#validate-checksum)
|
||||
- [Enable Caching](#enable-caching)
|
||||
- [Cache dependency glob](#cache-dependency-glob)
|
||||
- [Local cache path](#local-cache-path)
|
||||
- [GitHub authentication token](#github-authentication-token)
|
||||
- [UV_TOOL_DIR](#uv_tool_dir)
|
||||
- [UV_TOOL_BIN_DIR](#uv_tool_bin_dir)
|
||||
- [How it works](#how-it-works)
|
||||
- [FAQ](#faq)
|
||||
|
||||
@@ -27,7 +30,7 @@ Set up your GitHub Actions workflow with a specific version of [uv](https://docs
|
||||
|
||||
```yaml
|
||||
- name: Install the latest version of uv
|
||||
uses: astral-sh/setup-uv@v2
|
||||
uses: astral-sh/setup-uv@v3
|
||||
with:
|
||||
version: "latest"
|
||||
```
|
||||
@@ -45,20 +48,39 @@ For an example workflow, see
|
||||
|
||||
```yaml
|
||||
- name: Install a specific version of uv
|
||||
uses: astral-sh/setup-uv@v2
|
||||
uses: astral-sh/setup-uv@v3
|
||||
with:
|
||||
version: "0.4.4"
|
||||
```
|
||||
|
||||
### Install a version by supplying a semver range
|
||||
|
||||
You can also specify a [semver range](https://github.com/npm/node-semver?tab=readme-ov-file#ranges)
|
||||
to install the latest version that satisfies the range.
|
||||
|
||||
```yaml
|
||||
- name: Install a semver range of uv
|
||||
uses: astral-sh/setup-uv@v3
|
||||
with:
|
||||
version: ">=0.3.0"
|
||||
```
|
||||
|
||||
```yaml
|
||||
- name: Pinning a minor version of uv
|
||||
uses: astral-sh/setup-uv@v3
|
||||
with:
|
||||
version: "0.3.x"
|
||||
```
|
||||
|
||||
### Validate checksum
|
||||
|
||||
You can also specify a checksum to validate the downloaded file. Checksums up to the default version
|
||||
are automatically verified by this action. The sha265 hashes can be found on the
|
||||
are automatically verified by this action. The sha256 hashes can be found on the
|
||||
[releases page](https://github.com/astral-sh/uv/releases) of the uv repo.
|
||||
|
||||
```yaml
|
||||
- name: Install a specific version and validate the checksum
|
||||
uses: astral-sh/setup-uv@v2
|
||||
uses: astral-sh/setup-uv@v3
|
||||
with:
|
||||
version: "0.3.1"
|
||||
checksum: "e11b01402ab645392c7ad6044db63d37e4fd1e745e015306993b07695ea5f9f8"
|
||||
@@ -79,7 +101,7 @@ You can optionally define a custom cache key suffix.
|
||||
```yaml
|
||||
- name: Enable caching and define a custom cache key suffix
|
||||
id: setup-uv
|
||||
uses: astral-sh/setup-uv@v2
|
||||
uses: astral-sh/setup-uv@v3
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-suffix: "optional-suffix"
|
||||
@@ -100,11 +122,13 @@ If you want to control when the cache is invalidated, specify a glob pattern wit
|
||||
`cache-dependency-glob` input. The cache will be invalidated if any file matching the glob pattern
|
||||
changes. The glob matches files relative to the repository root.
|
||||
|
||||
> [!NOTE] The default is `**/uv.lock`.
|
||||
> [!NOTE]
|
||||
>
|
||||
> The default is `**/uv.lock`.
|
||||
|
||||
```yaml
|
||||
- name: Define a cache dependency glob
|
||||
uses: astral-sh/setup-uv@v2
|
||||
uses: astral-sh/setup-uv@v3
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-dependency-glob: "**/requirements*.txt"
|
||||
@@ -112,7 +136,7 @@ changes. The glob matches files relative to the repository root.
|
||||
|
||||
```yaml
|
||||
- name: Define a list of cache dependency globs
|
||||
uses: astral-sh/setup-uv@v2
|
||||
uses: astral-sh/setup-uv@v3
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-dependency-glob: |
|
||||
@@ -122,7 +146,7 @@ changes. The glob matches files relative to the repository root.
|
||||
|
||||
```yaml
|
||||
- name: Never invalidate the cache
|
||||
uses: astral-sh/setup-uv@v2
|
||||
uses: astral-sh/setup-uv@v3
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-dependency-glob: ""
|
||||
@@ -130,12 +154,14 @@ changes. The glob matches files relative to the repository root.
|
||||
|
||||
### Local cache path
|
||||
|
||||
This action controls where uv stores its cache on the runner's filesystem. You can change the
|
||||
default (`/tmp/setup-uv-cache`) by specifying the path with the `cache-local-path` input.
|
||||
This action controls where uv stores its cache on the runner's filesystem by setting `UV_CACHE_DIR`.
|
||||
It defaults to `setup-uv-cache` in the `TMP` dir, `D:\a\_temp\uv-tool-dir` on Windows and
|
||||
`/tmp/setup-uv-cache` on Linux/macOS. You can change the default by specifying the path with the
|
||||
`cache-local-path` input.
|
||||
|
||||
```yaml
|
||||
- name: Define a custom uv cache path
|
||||
uses: astral-sh/setup-uv@v2
|
||||
uses: astral-sh/setup-uv@v3
|
||||
with:
|
||||
cache-local-path: "/path/to/cache"
|
||||
```
|
||||
@@ -152,11 +178,48 @@ are not sufficient, you can provide a custom GitHub token with the necessary per
|
||||
|
||||
```yaml
|
||||
- name: Install the latest version of uv with a custom GitHub token
|
||||
uses: astral-sh/setup-uv@v2
|
||||
uses: astral-sh/setup-uv@v3
|
||||
with:
|
||||
github-token: ${{ secrets.CUSTOM_GITHUB_TOKEN }}
|
||||
```
|
||||
|
||||
### UV_TOOL_DIR
|
||||
|
||||
On Windows `UV_TOOL_DIR` is set to `uv-tool-dir` in the `TMP` dir (e.g. `D:\a\_temp\uv-tool-dir`).
|
||||
On GitHub hosted runners this is on the much faster `D:` drive.
|
||||
|
||||
On all other platforms the tool environments are placed in the
|
||||
[default location](https://docs.astral.sh/uv/concepts/tools/#tools-directory).
|
||||
|
||||
If you want to change this behaviour (especially on self-hosted runners) you can use the `tool-dir`
|
||||
input:
|
||||
|
||||
```yaml
|
||||
- name: Install the latest version of uv with a custom tool dir
|
||||
uses: astral-sh/setup-uv@v3
|
||||
with:
|
||||
tool-dir: "/path/to/tool/dir"
|
||||
```
|
||||
|
||||
### UV_TOOL_BIN_DIR
|
||||
|
||||
On Windows `UV_TOOL_BIN_DIR` is set to `uv-tool-bin-dir` in the `TMP` dir (e.g.
|
||||
`D:\a\_temp\uv-tool-bin-dir`). On GitHub hosted runners this is on the much faster `D:` drive. This
|
||||
path is also automatically added to the PATH.
|
||||
|
||||
On all other platforms the tool binaries get installed to the
|
||||
[default location](https://docs.astral.sh/uv/concepts/tools/#the-bin-directory).
|
||||
|
||||
If you want to change this behaviour (especially on self-hosted runners) you can use the
|
||||
`tool-bin-dir` input:
|
||||
|
||||
```yaml
|
||||
- name: Install the latest version of uv with a custom tool bin dir
|
||||
uses: astral-sh/setup-uv@v3
|
||||
with:
|
||||
tool-bin-dir: "/path/to/tool-bin/dir"
|
||||
```
|
||||
|
||||
## How it works
|
||||
|
||||
This action downloads uv from the uv repo's official
|
||||
@@ -181,7 +244,7 @@ For example:
|
||||
- name: Checkout the repository
|
||||
uses: actions/checkout@main
|
||||
- name: Install the latest version of uv
|
||||
uses: astral-sh/setup-uv@v2
|
||||
uses: astral-sh/setup-uv@v3
|
||||
with:
|
||||
enable-cache: true
|
||||
- name: Test
|
||||
@@ -193,7 +256,7 @@ To install a specific version of Python, use
|
||||
|
||||
```yaml
|
||||
- name: Install the latest version of uv
|
||||
uses: astral-sh/setup-uv@v2
|
||||
uses: astral-sh/setup-uv@v3
|
||||
with:
|
||||
enable-cache: true
|
||||
- name: Install Python 3.12
|
||||
@@ -212,7 +275,7 @@ output:
|
||||
uses: actions/checkout@main
|
||||
- name: Install the default version of uv
|
||||
id: setup-uv
|
||||
uses: astral-sh/setup-uv@v2
|
||||
uses: astral-sh/setup-uv@v3
|
||||
- name: Print the installed version
|
||||
run: echo "Installed uv version is ${{ steps.setup-uv.outputs.uv-version }}"
|
||||
```
|
||||
|
||||
15
action.yml
15
action.yml
@@ -1,6 +1,7 @@
|
||||
name: "Python setup uv"
|
||||
description: "Set up your GitHub Actions workflow with a specific version of uv"
|
||||
author: "eifinger"
|
||||
name: "astral-sh/setup-uv"
|
||||
description:
|
||||
"Set up your GitHub Actions workflow with a specific version of uv."
|
||||
author: "astral-sh"
|
||||
inputs:
|
||||
version:
|
||||
description: "The version of uv to install"
|
||||
@@ -28,6 +29,12 @@ inputs:
|
||||
cache-local-path:
|
||||
description: "Local path to store the cache."
|
||||
default: ""
|
||||
tool-dir:
|
||||
description: "Custom path to set UV_TOOL_DIR to."
|
||||
required: false
|
||||
tool-bin-dir:
|
||||
description: "Custom path to set UV_TOOL_BIN_DIR to."
|
||||
required: false
|
||||
outputs:
|
||||
uv-version:
|
||||
description: "The installed uv version. Useful when using latest."
|
||||
@@ -40,4 +47,4 @@ runs:
|
||||
post-if: success()
|
||||
branding:
|
||||
icon: "package"
|
||||
color: "blue"
|
||||
color: "black"
|
||||
|
||||
31
biome.json
Normal file
31
biome.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"$schema": "https://biomejs.dev/schemas/1.9.2/schema.json",
|
||||
"vcs": {
|
||||
"enabled": true,
|
||||
"clientKind": "git",
|
||||
"useIgnoreFile": false
|
||||
},
|
||||
"files": {
|
||||
"ignoreUnknown": false,
|
||||
"ignore": ["dist", "lib", "node_modules"]
|
||||
},
|
||||
"formatter": {
|
||||
"enabled": true,
|
||||
"indentStyle": "space"
|
||||
},
|
||||
"organizeImports": {
|
||||
"enabled": true
|
||||
},
|
||||
"linter": {
|
||||
"enabled": true,
|
||||
"rules": {
|
||||
"recommended": true
|
||||
}
|
||||
},
|
||||
"javascript": {
|
||||
"formatter": {
|
||||
"quoteStyle": "double",
|
||||
"trailingCommas": "all"
|
||||
}
|
||||
}
|
||||
}
|
||||
51
dist/save-cache/index.js
generated
vendored
51
dist/save-cache/index.js
generated
vendored
@@ -82951,7 +82951,7 @@ function saveCache() {
|
||||
core.warning("Error retrieving cache key from state.");
|
||||
return;
|
||||
}
|
||||
else if (matchedKey === cacheKey) {
|
||||
if (matchedKey === cacheKey) {
|
||||
core.info(`Cache hit occurred on key ${cacheKey}, not saving cache.`);
|
||||
return;
|
||||
}
|
||||
@@ -83008,28 +83008,53 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.cacheDependencyGlob = exports.githubToken = exports.cacheLocalPath = exports.cacheSuffix = exports.enableCache = exports.checkSum = exports.version = void 0;
|
||||
exports.githubToken = exports.toolDir = exports.toolBinDir = exports.cacheDependencyGlob = exports.cacheLocalPath = exports.cacheSuffix = exports.enableCache = exports.checkSum = exports.version = void 0;
|
||||
const core = __importStar(__nccwpck_require__(2186));
|
||||
const path_1 = __importDefault(__nccwpck_require__(1017));
|
||||
const node_path_1 = __importDefault(__nccwpck_require__(9411));
|
||||
exports.version = core.getInput("version");
|
||||
exports.checkSum = core.getInput("checksum");
|
||||
exports.enableCache = core.getInput("enable-cache") === "true";
|
||||
exports.cacheSuffix = core.getInput("cache-suffix") || "";
|
||||
exports.cacheLocalPath = getCacheLocalPath();
|
||||
exports.githubToken = core.getInput("github-token");
|
||||
exports.cacheDependencyGlob = core.getInput("cache-dependency-glob");
|
||||
exports.toolBinDir = getToolBinDir();
|
||||
exports.toolDir = getToolDir();
|
||||
exports.githubToken = core.getInput("github-token");
|
||||
function getToolBinDir() {
|
||||
const toolBinDirInput = core.getInput("tool-bin-dir");
|
||||
if (toolBinDirInput !== "") {
|
||||
return toolBinDirInput;
|
||||
}
|
||||
if (process.platform === "win32") {
|
||||
if (process.env.RUNNER_TEMP !== undefined) {
|
||||
return `${process.env.RUNNER_TEMP}${node_path_1.default.sep}uv-tool-bin-dir`;
|
||||
}
|
||||
throw Error("Could not determine UV_TOOL_BIN_DIR. Please make sure RUNNER_TEMP is set or provide the tool-bin-dir input");
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
function getToolDir() {
|
||||
const toolDirInput = core.getInput("tool-dir");
|
||||
if (toolDirInput !== "") {
|
||||
return toolDirInput;
|
||||
}
|
||||
if (process.platform === "win32") {
|
||||
if (process.env.RUNNER_TEMP !== undefined) {
|
||||
return `${process.env.RUNNER_TEMP}${node_path_1.default.sep}uv-tool-dir`;
|
||||
}
|
||||
throw Error("Could not determine UV_TOOL_DIR. Please make sure RUNNER_TEMP is set or provide the tool-dir input");
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
function getCacheLocalPath() {
|
||||
const cacheLocalPathInput = core.getInput("cache-local-path");
|
||||
if (cacheLocalPathInput !== "") {
|
||||
return cacheLocalPathInput;
|
||||
}
|
||||
if (process.env.RUNNER_TEMP !== undefined) {
|
||||
return `${process.env.RUNNER_TEMP}${path_1.default.sep}setup-uv-cache`;
|
||||
return `${process.env.RUNNER_TEMP}${node_path_1.default.sep}setup-uv-cache`;
|
||||
}
|
||||
if (process.platform === "win32") {
|
||||
return "D:\\a\\_temp\\setup-uv-cache";
|
||||
}
|
||||
return "/tmp/setup-uv-cache";
|
||||
throw Error("Could not determine UV_CACHE_DIR. Please make sure RUNNER_TEMP is set or provide the cache-local-path input");
|
||||
}
|
||||
|
||||
|
||||
@@ -83189,6 +83214,14 @@ module.exports = require("node:events");
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 9411:
|
||||
/***/ ((module) => {
|
||||
|
||||
"use strict";
|
||||
module.exports = require("node:path");
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 4492:
|
||||
/***/ ((module) => {
|
||||
|
||||
|
||||
4428
dist/setup/index.js
generated
vendored
4428
dist/setup/index.js
generated
vendored
File diff suppressed because it is too large
Load Diff
22
dist/update-known-checksums/index.js
generated
vendored
22
dist/update-known-checksums/index.js
generated
vendored
@@ -32708,24 +32708,24 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||
exports.updateChecksums = updateChecksums;
|
||||
const fs_1 = __nccwpck_require__(7147);
|
||||
const node_fs_1 = __nccwpck_require__(7561);
|
||||
const tc = __importStar(__nccwpck_require__(7784));
|
||||
function updateChecksums(filePath, downloadUrls) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
yield fs_1.promises.rm(filePath);
|
||||
yield fs_1.promises.appendFile(filePath, "// AUTOGENERATED_DO_NOT_EDIT\nexport const KNOWN_CHECKSUMS: {[key: string]: string} = {\n");
|
||||
yield node_fs_1.promises.rm(filePath);
|
||||
yield node_fs_1.promises.appendFile(filePath, "// AUTOGENERATED_DO_NOT_EDIT\nexport const KNOWN_CHECKSUMS: {[key: string]: string} = {\n");
|
||||
let firstLine = true;
|
||||
for (const downloadUrl of downloadUrls) {
|
||||
const content = yield downloadAssetContent(downloadUrl);
|
||||
const checksum = content.split(" ")[0].trim();
|
||||
const key = getKey(downloadUrl);
|
||||
if (!firstLine) {
|
||||
yield fs_1.promises.appendFile(filePath, ",\n");
|
||||
yield node_fs_1.promises.appendFile(filePath, ",\n");
|
||||
}
|
||||
yield fs_1.promises.appendFile(filePath, ` '${key}':\n '${checksum}'`);
|
||||
yield node_fs_1.promises.appendFile(filePath, ` '${key}':\n '${checksum}'`);
|
||||
firstLine = false;
|
||||
}
|
||||
yield fs_1.promises.appendFile(filePath, "}\n");
|
||||
yield node_fs_1.promises.appendFile(filePath, "}\n");
|
||||
});
|
||||
}
|
||||
function getKey(downloadUrl) {
|
||||
@@ -32739,7 +32739,7 @@ function getKey(downloadUrl) {
|
||||
function downloadAssetContent(downloadUrl) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const downloadPath = yield tc.downloadTool(downloadUrl);
|
||||
const content = yield fs_1.promises.readFile(downloadPath, "utf8");
|
||||
const content = yield node_fs_1.promises.readFile(downloadPath, "utf8");
|
||||
return content;
|
||||
});
|
||||
}
|
||||
@@ -32940,6 +32940,14 @@ module.exports = require("node:events");
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 7561:
|
||||
/***/ ((module) => {
|
||||
|
||||
"use strict";
|
||||
module.exports = require("node:fs");
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 4492:
|
||||
/***/ ((module) => {
|
||||
|
||||
|
||||
5871
package-lock.json
generated
5871
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
24
package.json
24
package.json
@@ -6,9 +6,9 @@
|
||||
"main": "dist/index.js",
|
||||
"scripts": {
|
||||
"build": "tsc",
|
||||
"format": "prettier --write .",
|
||||
"format-check": "prettier --check .",
|
||||
"lint": "eslint src/**/*.ts --fix",
|
||||
"format": "biome format --fix",
|
||||
"format-check": "biome format",
|
||||
"lint": "biome lint --fix",
|
||||
"package": "ncc build -o dist/setup src/setup-uv.ts && ncc build -o dist/save-cache src/save-cache.ts && ncc build -o dist/update-known-checksums src/update-known-checksums.ts",
|
||||
"test": "jest",
|
||||
"act": "act pull_request -W .github/workflows/test.yml --container-architecture linux/amd64 -s GITHUB_TOKEN=\"$(gh auth token)\"",
|
||||
@@ -19,12 +19,7 @@
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/astral-sh/setup-uv.git"
|
||||
},
|
||||
"keywords": [
|
||||
"actions",
|
||||
"python",
|
||||
"setup",
|
||||
"uv"
|
||||
],
|
||||
"keywords": ["actions", "python", "setup", "uv"],
|
||||
"author": "@eifinger",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -38,19 +33,12 @@
|
||||
"@octokit/rest": "^21.0.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^22.5.5",
|
||||
"@biomejs/biome": "1.9.2",
|
||||
"@types/node": "^22.7.4",
|
||||
"@types/semver": "^7.5.8",
|
||||
"@typescript-eslint/eslint-plugin": "^7.15.0",
|
||||
"@typescript-eslint/parser": "^7.18.0",
|
||||
"@vercel/ncc": "^0.38.1",
|
||||
"eslint": "^8.57.0",
|
||||
"eslint-plugin-github": "^5.0.2",
|
||||
"eslint-plugin-import": "^2.30.0",
|
||||
"eslint-plugin-jest": "^28.8.3",
|
||||
"eslint-plugin-prettier": "^5.2.1",
|
||||
"jest": "^29.7.0",
|
||||
"js-yaml": "^4.1.0",
|
||||
"prettier": "^3.3.3",
|
||||
"ts-jest": "^29.2.5",
|
||||
"typescript": "^5.6.2"
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import * as fs from "fs";
|
||||
import * as crypto from "crypto";
|
||||
import * as fs from "node:fs";
|
||||
import * as crypto from "node:crypto";
|
||||
|
||||
import * as core from "@actions/core";
|
||||
import { KNOWN_CHECKSUMS } from "./known-checksums";
|
||||
import { Architecture, Platform } from "../../utils/platforms";
|
||||
import type { Architecture, Platform } from "../../utils/platforms";
|
||||
|
||||
export async function validateChecksum(
|
||||
checkSum: string | undefined,
|
||||
@@ -12,11 +12,11 @@ export async function validateChecksum(
|
||||
platform: Platform,
|
||||
version: string,
|
||||
): Promise<void> {
|
||||
let isValid = true;
|
||||
let isValid: boolean | undefined = undefined;
|
||||
if (checkSum !== undefined && checkSum !== "") {
|
||||
isValid = await validateFileCheckSum(downloadPath, checkSum);
|
||||
} else {
|
||||
core.debug(`Checksum not provided. Checking known checksums.`);
|
||||
core.debug("Checksum not provided. Checking known checksums.");
|
||||
const key = `${arch}-${platform}-${version}`;
|
||||
if (key in KNOWN_CHECKSUMS) {
|
||||
const knownChecksum = KNOWN_CHECKSUMS[`${arch}-${platform}-${version}`];
|
||||
@@ -27,10 +27,12 @@ export async function validateChecksum(
|
||||
}
|
||||
}
|
||||
|
||||
if (!isValid) {
|
||||
if (isValid === false) {
|
||||
throw new Error(`Checksum for ${downloadPath} did not match ${checkSum}.`);
|
||||
}
|
||||
core.debug(`Checksum for ${downloadPath} is valid.`);
|
||||
if (isValid === true) {
|
||||
core.debug(`Checksum for ${downloadPath} is valid.`);
|
||||
}
|
||||
}
|
||||
|
||||
async function validateFileCheckSum(
|
||||
|
||||
@@ -1,5 +1,293 @@
|
||||
// AUTOGENERATED_DO_NOT_EDIT
|
||||
export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"undefined-0.4.18":
|
||||
"9b2ae8c5a8db7b0106f636510b76cf21273ead5cb1162c19c7b2a5d1b1b6782e",
|
||||
"aarch64-apple-darwin-0.4.18":
|
||||
"49929e29bad25dfdb2f4ec49973c2265fbb538ddef3b1fa46fdb20245fa7a605",
|
||||
"aarch64-unknown-linux-gnu-0.4.18":
|
||||
"6a949b7230ea5c557faf1a2974940036b1b732d2fd073ef35b665fccc11fa34b",
|
||||
"aarch64-unknown-linux-musl-0.4.18":
|
||||
"59d50976e32d18ea94210dcd8da4eea3306690e3edc1cb5a40342ca1f7db2c47",
|
||||
"arm-unknown-linux-musleabihf-0.4.18":
|
||||
"13a232efd19792802831e13137efae692cb467eb17e53118e4f4dbf65fa37def",
|
||||
"armv7-unknown-linux-gnueabihf-0.4.18":
|
||||
"15665159b7f5d27b45eb833f3448714b9069472ccd165af5b9c26ae24306a013",
|
||||
"armv7-unknown-linux-musleabihf-0.4.18":
|
||||
"714a63650fddc889053ad27f41ee513f2a736fbecf3fd5ba5051b7a13564d0aa",
|
||||
"i686-pc-windows-msvc-0.4.18":
|
||||
"acc6e07df1b96e42d8e3becea4aa70110c921e6f77f69b521f7477222651bc75",
|
||||
"i686-unknown-linux-gnu-0.4.18":
|
||||
"908df3634d34f90e49b2e5e67fb627b0a4d8c0571719c60edf28e1a1ee277154",
|
||||
"i686-unknown-linux-musl-0.4.18":
|
||||
"48aad5171df7e21d22438bf3af3fbe6cdae409e09cee3842d5782dfd11428003",
|
||||
"powerpc64-unknown-linux-gnu-0.4.18":
|
||||
"0f500d33f5c52addf735329ce6818c8b9226ed379dc63593b0a6a51ef5274c04",
|
||||
"powerpc64le-unknown-linux-gnu-0.4.18":
|
||||
"8991bddaaad0c06305dd5c4a91e3ece36016de816eeb75f6ee1e3ff9148f65b3",
|
||||
"powerpc64le-unknown-linux-musl-0.4.18":
|
||||
"0f12157dab6cd370a5f71d9c6d83d5875a3e11ea91977e4f189115ed9f56805d",
|
||||
"s390x-unknown-linux-gnu-0.4.18":
|
||||
"5c4c101fdf5d29677a4b7ed2bb54d0a7b5c3cfa7abadb8d9ef58f02f68703e38",
|
||||
"x86_64-apple-darwin-0.4.18":
|
||||
"a99d009f16b6681825ab8a672f83bcf838e851a8914c497ccf65f310b5be17b9",
|
||||
"x86_64-pc-windows-msvc-0.4.18":
|
||||
"f6cffb80499da1e3ca0a3bb4710cb3601f6933315f5568ce4b785c664d65c644",
|
||||
"x86_64-unknown-linux-gnu-0.4.18":
|
||||
"946243fa93da15d33e2d2bb59cf9bc622806b5bf5776da8b0e27562e608ad8a1",
|
||||
"x86_64-unknown-linux-musl-0.4.18":
|
||||
"f0cc269adcad633f06ad50755af38d8f5bf745fbe7e4edafa35cfbb286706397",
|
||||
"undefined-0.4.17":
|
||||
"68ad7bf18029bcc9f0c8556e5fb96814fa30d8f67b3ccbc5db19e38b487c9326",
|
||||
"aarch64-apple-darwin-0.4.17":
|
||||
"af8e68a0e831e8b482d9e2f5443af63d24d003b0c53e0d5f921c2bcb5eed1644",
|
||||
"aarch64-unknown-linux-gnu-0.4.17":
|
||||
"5b7c0269aa15aca1f6171e06db39e24a5ec81f1b484ab382a8db218424afc5b4",
|
||||
"aarch64-unknown-linux-musl-0.4.17":
|
||||
"7dc33d60655e7a78bf13ad68bff89da6233b24484cd01a668d72a4ca88c7e70d",
|
||||
"arm-unknown-linux-musleabihf-0.4.17":
|
||||
"1e409703fa3639ac01d5c2b277763987b3b6e856097bb7c59dec168861ad9d9b",
|
||||
"armv7-unknown-linux-gnueabihf-0.4.17":
|
||||
"b14484ed08fe0073db869ed73c12f2ca1d45f22daabba241e2aa12086793ba51",
|
||||
"armv7-unknown-linux-musleabihf-0.4.17":
|
||||
"6920000627deb6f101dd6a144f1930f4649550d9bf2eb9189fa7d38270d85900",
|
||||
"i686-pc-windows-msvc-0.4.17":
|
||||
"c8a2c21e23694e4d8079693d8d980642ceabad7589a8da5d5c112844cd9a1530",
|
||||
"i686-unknown-linux-gnu-0.4.17":
|
||||
"67d1ed2af42d7f355eb08325645013e24fc3797f33cfa9d5aca18f74a98c4885",
|
||||
"i686-unknown-linux-musl-0.4.17":
|
||||
"771dbc2b9bda1653029018eb6b7e98d83935df26595a2194bc7f57251bdd9caf",
|
||||
"powerpc64-unknown-linux-gnu-0.4.17":
|
||||
"f2c4ea4bed0f4f42686742bc1078761a232b1ce51532169f17bd99ebb2595ec3",
|
||||
"powerpc64le-unknown-linux-gnu-0.4.17":
|
||||
"915a06db243c43cc88f96bf271dd25a3f564ebdda097b79b6d0ee3a6835fc6e2",
|
||||
"powerpc64le-unknown-linux-musl-0.4.17":
|
||||
"faaefdc9ed84ab263d0be277b4cccd0a7cd0870fb3bc77a50e293a5d2d74d207",
|
||||
"s390x-unknown-linux-gnu-0.4.17":
|
||||
"a49de0293c8177367bd90c527dc88c105e100d04a866ed15898a2f9778e1c648",
|
||||
"x86_64-apple-darwin-0.4.17":
|
||||
"7ed2445e83cb919525535774004e294061a8c79253367490647c6aab0e9d06b8",
|
||||
"x86_64-pc-windows-msvc-0.4.17":
|
||||
"929407c72ec63c54502c3aef61a2195c2b6a145d6d4b15fd9a0528475cc5cd50",
|
||||
"x86_64-unknown-linux-gnu-0.4.17":
|
||||
"9282496b24585c54f4cb71c1cb1dbdecd650f2311237f71ddf217f8756136f79",
|
||||
"x86_64-unknown-linux-musl-0.4.17":
|
||||
"6f703368f2d5d4c974e3ece239f64815fb0c6e040eba078ffc87c421a9375deb",
|
||||
"undefined-0.4.16":
|
||||
"942296098d4738db464ea170c654d61281f35cd98fc1ecc6c6df784ba9373bb3",
|
||||
"aarch64-apple-darwin-0.4.16":
|
||||
"cbfb46932ced7319e0b90cff87bfff759bc319e719cca369ace476906b178f25",
|
||||
"aarch64-unknown-linux-gnu-0.4.16":
|
||||
"c5f4f0a7acdbcb6273d117ac9a72767406e2a8da3cc2c72b5818ca08165e90c9",
|
||||
"aarch64-unknown-linux-musl-0.4.16":
|
||||
"7f093031e442181b7504fd55e9d0211358646b4fead1317d45aba44efcab719e",
|
||||
"arm-unknown-linux-musleabihf-0.4.16":
|
||||
"ec9ca782be4eabb583423539fd335cc1ff9edcbcca8f73cd4cc4a6cdc433023a",
|
||||
"armv7-unknown-linux-gnueabihf-0.4.16":
|
||||
"ee55becb4a3e861fdc25eb42fb9fd224625bc6cb06391894aa2b064aa00682d0",
|
||||
"armv7-unknown-linux-musleabihf-0.4.16":
|
||||
"5c8dc9de0130004b63ac0b104b460f93bbccc47bc2274294c27ad922142f8d8a",
|
||||
"i686-pc-windows-msvc-0.4.16":
|
||||
"44e1d1cb1bb87b18ef6a106585e6860cbe4cda7cd9475cd20eb68b741d4d9293",
|
||||
"i686-unknown-linux-gnu-0.4.16":
|
||||
"72799882d18ea4b8ad7cf8b12768c35311d25f6c4eb241a12d44d52b2b02efc3",
|
||||
"i686-unknown-linux-musl-0.4.16":
|
||||
"0bb65ab130e6cad00c4d28c8c4f359157bf752ec92145ca44769e66a1143804b",
|
||||
"powerpc64-unknown-linux-gnu-0.4.16":
|
||||
"5699b114794b83b42753f4ddeefd00c902e10564733879efeb45b60dd25b04f5",
|
||||
"powerpc64le-unknown-linux-gnu-0.4.16":
|
||||
"65f61fc69579d7f6a7238bd180588481ea4b20ff5d45ee62ce590229d53dbb3d",
|
||||
"powerpc64le-unknown-linux-musl-0.4.16":
|
||||
"48c83cf9ce5b3e4ecce2fe305aa3f4f8fc0a633f8a0398c7f59f501e8db61fb6",
|
||||
"s390x-unknown-linux-gnu-0.4.16":
|
||||
"112e6dea4ddbc6c0dbf416bc7d5dff79fcacd3e0f7fa52772f7647b8cd26ca25",
|
||||
"x86_64-apple-darwin-0.4.16":
|
||||
"ecf035262115b216f6cc709917418df9dbafe47d49b8048c465faa406face032",
|
||||
"x86_64-pc-windows-msvc-0.4.16":
|
||||
"93a6df8f8225fb73dda275d06455fe5026f00c42e8dccc787812841c0c104291",
|
||||
"x86_64-unknown-linux-gnu-0.4.16":
|
||||
"f4f4de434206fb610ecb2dbc3fc44c62adb6b61e8d1237d858a10b407a2737c4",
|
||||
"x86_64-unknown-linux-musl-0.4.16":
|
||||
"aab3a3ef8e4ffa641210b1ed374eebd08b5e612b1a928c291a543d3b624d46d1",
|
||||
"undefined-0.4.15":
|
||||
"22b605c86cfcb8db9922387151fd8e79d3d2a1caf6f2a03a238ca7ebe058853f",
|
||||
"aarch64-apple-darwin-0.4.15":
|
||||
"32f6ad64b9dcf164fa75efef73e0e9a9b769073e6bfe844560329a3176b39b9b",
|
||||
"aarch64-unknown-linux-gnu-0.4.15":
|
||||
"cf3f9f98642bd2a7e9d6fa27d880bdbdccc16b6a525b240013789d3048c02348",
|
||||
"aarch64-unknown-linux-musl-0.4.15":
|
||||
"fbc0433275134fc50d25ce3c291b3e7a53ffb70b447741398c31d6c4deeba4b8",
|
||||
"arm-unknown-linux-musleabihf-0.4.15":
|
||||
"4cc15f1cd1bf5b3508886baa005c6dd51ae7cf995e8699c100ee5a32da70f13b",
|
||||
"armv7-unknown-linux-gnueabihf-0.4.15":
|
||||
"380366651e5c924239f1e085fade96ec04d1a312c8a9db7a9f383fcf87e073d1",
|
||||
"armv7-unknown-linux-musleabihf-0.4.15":
|
||||
"50eb304472f7b6b02c4fed987e0931f02a0b5e7c1620559f0246416e725297f5",
|
||||
"i686-pc-windows-msvc-0.4.15":
|
||||
"3ad9d42a4308adc69dd7061b0ba9451b26d118032d3937dd92e3acef4aa62a40",
|
||||
"i686-unknown-linux-gnu-0.4.15":
|
||||
"2e90ee238cba49c5f096c8b0648c7fc531a75dcf0c26eb0cde4d9ce5447d8d82",
|
||||
"i686-unknown-linux-musl-0.4.15":
|
||||
"0120dfe81ebc98d20dec01f8ce7a8c571673155dbd67ab08a6cf4000de85df65",
|
||||
"powerpc64-unknown-linux-gnu-0.4.15":
|
||||
"ef10cefd6db62ea6c4ae082457b720332927e86ad3e1dc404da75961d9bd987c",
|
||||
"powerpc64le-unknown-linux-gnu-0.4.15":
|
||||
"e58fa6d325e81bd845265c980f3dc7ffcd6ae6b912c525bc165938964bc2b0c0",
|
||||
"powerpc64le-unknown-linux-musl-0.4.15":
|
||||
"c64194823946c45640990c1616f2043bda63e05a2fcfdcc33fd64bbadcc6408b",
|
||||
"s390x-unknown-linux-gnu-0.4.15":
|
||||
"662f0bee11f330a80b002eb3b6d74f574832b1ceee6943a6bdc0486dabde3514",
|
||||
"x86_64-apple-darwin-0.4.15":
|
||||
"ab91ee8c6461e9ac385a2f96d23d77e027b4e4274e983d0aedf1d64abfb6353b",
|
||||
"x86_64-pc-windows-msvc-0.4.15":
|
||||
"17e7ecb448c8b507bb08347df6aa974f58a7536b6fbe21f0ce57372509e409a0",
|
||||
"x86_64-unknown-linux-gnu-0.4.15":
|
||||
"f590376432bcb26c2aff86b6ec495d55ba2384d068c62dca477f498902721674",
|
||||
"x86_64-unknown-linux-musl-0.4.15":
|
||||
"70e331be83d97f42fd355f18cb1f8b3f4cadc4973b29fec659109fad4a053a8f",
|
||||
"undefined-0.4.14":
|
||||
"d73771243ecb8f38a925f16894126644aec95da7557eef22d7c161d9b8af69e9",
|
||||
"aarch64-apple-darwin-0.4.14":
|
||||
"e7368a2ffe19cc39e4b733c0b5ddced9952da85fad5d5eb55c75c4a67c7e4747",
|
||||
"aarch64-unknown-linux-gnu-0.4.14":
|
||||
"3647ba1da46b7b2dde959c03e3dfd54ad63e7fefe3de7789e1d88931712da1c1",
|
||||
"aarch64-unknown-linux-musl-0.4.14":
|
||||
"11a871df0ca91843e09871e7ee8f5d000a3df73f8dd6d7d1ebf0f237feaa18c8",
|
||||
"arm-unknown-linux-musleabihf-0.4.14":
|
||||
"8aaf34ca8078db54597173961788f7a9f292ce473629e0b684f7c7b346fb5a68",
|
||||
"armv7-unknown-linux-gnueabihf-0.4.14":
|
||||
"6a59fc0794760c20f01dac7594a7559f871d8428b5440303a9e450ae72a53c96",
|
||||
"armv7-unknown-linux-musleabihf-0.4.14":
|
||||
"099db2dc91ea868864c55e0820bfa1c279af07259aee4ccfe151e2f3a208aaf4",
|
||||
"i686-pc-windows-msvc-0.4.14":
|
||||
"a6d255d229d2447a259d8affe9e537aadb12079852c1bc9097664371e2406a82",
|
||||
"i686-unknown-linux-gnu-0.4.14":
|
||||
"6389b5000e256b150f8c185ff3fb28c6bfc4116ad35f07b7b49088675d7c9ceb",
|
||||
"i686-unknown-linux-musl-0.4.14":
|
||||
"2307c79f88b9302b4ec2db9d500a240b0710f9e011548e776dfbd15fa1c084e7",
|
||||
"powerpc64-unknown-linux-gnu-0.4.14":
|
||||
"01d94b9de93a424781d5a4b4890b6f4e5f5ea59d98363415d4f90fa75ee80426",
|
||||
"powerpc64le-unknown-linux-gnu-0.4.14":
|
||||
"0ab4524a49d201368da79ff3d69a01b780cefcec7115acc1448d4a3b71fa3c24",
|
||||
"powerpc64le-unknown-linux-musl-0.4.14":
|
||||
"51cc5cbb145f09e60a4a739a8e664657fd0b3d81053b2973ac133513aa43aae2",
|
||||
"s390x-unknown-linux-gnu-0.4.14":
|
||||
"f30bb00682299ca9e10e98f387178f839e136414b66ab99f2e28b6f160258315",
|
||||
"x86_64-apple-darwin-0.4.14":
|
||||
"442b93a10d3d5d5422c615f73bb13bd491ee88bc2ea913185728940a31c51b35",
|
||||
"x86_64-pc-windows-msvc-0.4.14":
|
||||
"dbde8853a1d7c005e34dee03ec1bfc337374c111c86b26701c403bba6076254c",
|
||||
"x86_64-unknown-linux-gnu-0.4.14":
|
||||
"873b4b95c5d3d49ae1306122256cb0b116b5c725e068db8100a76efb13d7669d",
|
||||
"x86_64-unknown-linux-musl-0.4.14":
|
||||
"1985046d3e36acd02395c704dcd9d1aff03114afe13fdc166754675bae8ad294",
|
||||
"undefined-0.4.13":
|
||||
"1164572b6a4700821bd3cb72594f7421aafa414c8d1a94e9570e530ca7a5c635",
|
||||
"aarch64-apple-darwin-0.4.13":
|
||||
"32d73e0257dab4371254d26bd9328de4e43b7817ee154d7c77e879df130b15c4",
|
||||
"aarch64-unknown-linux-gnu-0.4.13":
|
||||
"0f653d8ece44da59056dd2fda6bddc7e274ed4d6431787bd7aa26ae7e02a66d3",
|
||||
"aarch64-unknown-linux-musl-0.4.13":
|
||||
"c24306c2cfc3bcaeab57f866c2501f07e21098fa03db7c1e5961280d44404443",
|
||||
"arm-unknown-linux-musleabihf-0.4.13":
|
||||
"f8b9375a7ff918e6b4ec2fbaa4fbac0707b85d9a391ab82a888ec07f4d7ae813",
|
||||
"armv7-unknown-linux-gnueabihf-0.4.13":
|
||||
"ab59e9586b89d11ee043aff7410712fa2bc178b6aa83eb70173b81d6f2ef93b5",
|
||||
"armv7-unknown-linux-musleabihf-0.4.13":
|
||||
"bdb133e0ecfe889661910bb52f77c54268b82161fdb8af2b1f6c867537626a39",
|
||||
"i686-pc-windows-msvc-0.4.13":
|
||||
"b4a92170b85d63ee9d7ac3a9b07fa444e4257e3dfb91a22774c1f76f94a06ddb",
|
||||
"i686-unknown-linux-gnu-0.4.13":
|
||||
"a4f2dc1eb9526ae9f1a617fddfc8e565817540ee06b022cc85a31f8915b8130e",
|
||||
"i686-unknown-linux-musl-0.4.13":
|
||||
"0f72e2a16e55b57feb8741f86f3e968f3e080868da6c848f6a115149b7d63652",
|
||||
"powerpc64-unknown-linux-gnu-0.4.13":
|
||||
"44471a861399b11870b41f8c0e4b8080490803b2c6be5ebf906a09ac0e67b5c9",
|
||||
"powerpc64le-unknown-linux-gnu-0.4.13":
|
||||
"4a95260671f6578f773c70aab21da55f1995dde7dbd38794e510a6b5b0fd0c1e",
|
||||
"powerpc64le-unknown-linux-musl-0.4.13":
|
||||
"bf3fef07eeb29f1bd79b677afcc52deb1f594fd13bfe25c0d4f05c171957d717",
|
||||
"s390x-unknown-linux-gnu-0.4.13":
|
||||
"548e6cfb8ac09cf422d6fef9886ed8ba73bda8333f69ae420aab2cd5f676d7cc",
|
||||
"x86_64-apple-darwin-0.4.13":
|
||||
"fb58d588c237218c275f63b6b77eda9477d2c1e1007605e10207c2504ae2a6d5",
|
||||
"x86_64-pc-windows-msvc-0.4.13":
|
||||
"888e73d16bc7c67ee2e369e4660249ec107efaf998583cce68dbcd942b76d047",
|
||||
"x86_64-unknown-linux-gnu-0.4.13":
|
||||
"0f955f51eaa3ccf56215ace06dab2e9b78437e22002eabc2cedcfcf541d997b2",
|
||||
"x86_64-unknown-linux-musl-0.4.13":
|
||||
"c8f73e30407a6e15eea7334f7067ac84ae1526a1ae7f4420dc873492bdfe626e",
|
||||
"undefined-0.4.12":
|
||||
"335861d17540501e2c5f82f5b8955b07034c450edb292fd2d628a837f52e0054",
|
||||
"aarch64-apple-darwin-0.4.12":
|
||||
"507aeb4efbb4a2b97654df8333aaa9d78109c55e3c3d5959f50cf0d93baa0263",
|
||||
"aarch64-unknown-linux-gnu-0.4.12":
|
||||
"73c6f84462895eb924b6fddc2cfef6b9fde0e0c15ff45a0eb882ec5275f5a2f7",
|
||||
"aarch64-unknown-linux-musl-0.4.12":
|
||||
"7329992bee100397b3520f1e93512804aa47ea01404c05609aedd181311cdf3b",
|
||||
"arm-unknown-linux-musleabihf-0.4.12":
|
||||
"21e4bcaf22259b4a473912403e9a89debd7f8f052e2f5d7d52f350539adade9e",
|
||||
"armv7-unknown-linux-gnueabihf-0.4.12":
|
||||
"7a0433a46595b40d9e50eb9a8aeb193b18eb5d545a677a646f86760b716f4b6e",
|
||||
"armv7-unknown-linux-musleabihf-0.4.12":
|
||||
"3803d4ef65fea709940bd897c9d27123cd60ca1f72b173eadad69a9949bf1e69",
|
||||
"i686-pc-windows-msvc-0.4.12":
|
||||
"e0550b4db9d9074560cdff66e81298288ddeb75347585514601c598ea46df54f",
|
||||
"i686-unknown-linux-gnu-0.4.12":
|
||||
"4c0a025f4b1f40a4248435410cbc1c6df0656ccee02f145aecedefac0efac392",
|
||||
"i686-unknown-linux-musl-0.4.12":
|
||||
"a0572decd32eb5917bb80bc8d1de0351be362b6a06423ae36bd03c745292c1f7",
|
||||
"powerpc64-unknown-linux-gnu-0.4.12":
|
||||
"51e624d5317e4ac6bcd67d1cae49e092c0186cab3dab4f7fa15c2e32066e16f8",
|
||||
"powerpc64le-unknown-linux-gnu-0.4.12":
|
||||
"5eafc18d05671ad38488f1b1d48712e829f4eb7f0d25eac423be79e7d8834cdf",
|
||||
"powerpc64le-unknown-linux-musl-0.4.12":
|
||||
"926d3caff745f4b4c376ff4328cf5129b8f61af6671d84614270ed8fa05816ca",
|
||||
"s390x-unknown-linux-gnu-0.4.12":
|
||||
"810cd900581925ee16e7d606e30fa39912123f9d96a740dbc1f4f9aa3d7e9760",
|
||||
"x86_64-apple-darwin-0.4.12":
|
||||
"d2934f4afba1f33d4078cbde301e780db132df6d33f2f5b27df466775e01b236",
|
||||
"x86_64-pc-windows-msvc-0.4.12":
|
||||
"4dc5e08f2f69245859b8ff57c7e6f844ebd1a65df12ae13f66a068268af17389",
|
||||
"x86_64-unknown-linux-gnu-0.4.12":
|
||||
"db44453ec57d6e3a35b7af2bb7938b47bdc9e7ca397269e978c53dd3065b1195",
|
||||
"x86_64-unknown-linux-musl-0.4.12":
|
||||
"ef9551ecf6f0efd51264f8a6a683b8b0210789aeaeab664863a90535a553b985",
|
||||
"undefined-0.4.11":
|
||||
"e6e38118aaa7436d31d3aed0f4b0beb188c273c137bd3185e8b4ebdb301682aa",
|
||||
"aarch64-apple-darwin-0.4.11":
|
||||
"b988bce29ca19fa229f088f982b66ef9dbf8571cc45eb98b00370a817cfe383a",
|
||||
"aarch64-unknown-linux-gnu-0.4.11":
|
||||
"865feeea66be67497506b76925949f97eb1f6da7dda2583a6558bed972f5de13",
|
||||
"aarch64-unknown-linux-musl-0.4.11":
|
||||
"db1b16b5e8d943a296667d176e474739c652660cbf56ee5e9157aa7e267442fb",
|
||||
"arm-unknown-linux-musleabihf-0.4.11":
|
||||
"9a141516deb4c966d4ae5a4d14dfef0f3c7880817823645760c09fb4cc580ce3",
|
||||
"armv7-unknown-linux-gnueabihf-0.4.11":
|
||||
"4748f81c391e0040eb489056677f6caee5886e5c15ef85448db51f11ea9b90df",
|
||||
"armv7-unknown-linux-musleabihf-0.4.11":
|
||||
"b564fb4631b6b668d891ec2ce91af10fda1f4374bd846eab24a85abb6fd77b25",
|
||||
"i686-pc-windows-msvc-0.4.11":
|
||||
"f1c0c12a40097949aa793f870f811ac8ffcc349228f0d3cae246bd93108e62da",
|
||||
"i686-unknown-linux-gnu-0.4.11":
|
||||
"c894193d37fa6cedb3b6c76d85bcca6031a5ef051adb046d583b7f078edc3872",
|
||||
"i686-unknown-linux-musl-0.4.11":
|
||||
"c80a63db7be49971b91417fdd5b9327803c38e23998d88d2a3489a2d9fa32de2",
|
||||
"powerpc64-unknown-linux-gnu-0.4.11":
|
||||
"f5ecc0461d1b9a8f56804abf5b2200aa22c08b89f404845a9f684817d0824521",
|
||||
"powerpc64le-unknown-linux-gnu-0.4.11":
|
||||
"862c8cdc587d435e09aaa0645440d1a8d72e23c68050cd978d4e5d11aede6a6b",
|
||||
"powerpc64le-unknown-linux-musl-0.4.11":
|
||||
"82bfb567ab6f2412706f157a998925fd49a491a4eaffb2bf8c09ca512be51a2f",
|
||||
"s390x-unknown-linux-gnu-0.4.11":
|
||||
"4b3cacd593aaecbaf193633f3105851ba7fe6627ed567bc3133e48a398e7c947",
|
||||
"x86_64-apple-darwin-0.4.11":
|
||||
"1db522b0eebb16cc08094b558f76048834a4d25878d74e07c5b4b7320239a5ab",
|
||||
"x86_64-pc-windows-msvc-0.4.11":
|
||||
"b9d43ddca9affbf03c048e34112c470a37af8d8e04c3ff2b79933a073f48e34d",
|
||||
"x86_64-unknown-linux-gnu-0.4.11":
|
||||
"3fc34d56857f24c7065309593a5df05ce953f1736f0cf32965b91f69adb66c46",
|
||||
"x86_64-unknown-linux-musl-0.4.11":
|
||||
"c3c6eb97198a29c6ca51bed673941ffbe7d97d481e74eec034fd8ad8d59b187c",
|
||||
"undefined-0.4.10":
|
||||
"53751ecdbad6aa09b13986e73e1ba1990b348b1793f313fdecaf3bd464311d28",
|
||||
"aarch64-apple-darwin-0.4.10":
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { promises as fs } from "fs";
|
||||
import { promises as fs } from "node:fs";
|
||||
import * as tc from "@actions/tool-cache";
|
||||
export async function updateChecksums(
|
||||
filePath: string,
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import * as core from "@actions/core";
|
||||
import * as tc from "@actions/tool-cache";
|
||||
import * as exec from "@actions/exec";
|
||||
import * as path from "path";
|
||||
import { Architecture, Platform } from "../utils/platforms";
|
||||
import * as path from "node:path";
|
||||
import type { Architecture, Platform } from "../utils/platforms";
|
||||
import { validateChecksum } from "./checksum/checksum";
|
||||
import { OWNER, REPO, TOOL_CACHE_NAME } from "../utils/constants";
|
||||
|
||||
|
||||
@@ -1,18 +1,24 @@
|
||||
import * as core from "@actions/core";
|
||||
import * as tc from "@actions/tool-cache";
|
||||
import * as path from "path";
|
||||
import * as path from "node:path";
|
||||
import { OWNER, REPO, TOOL_CACHE_NAME } from "../utils/constants";
|
||||
import { Architecture, Platform } from "../utils/platforms";
|
||||
import type { Architecture, Platform } from "../utils/platforms";
|
||||
import { validateChecksum } from "./checksum/checksum";
|
||||
import * as github from "@actions/github";
|
||||
|
||||
export function tryGetFromToolCache(
|
||||
arch: Architecture,
|
||||
version: string,
|
||||
): string | undefined {
|
||||
): { version: string; installedPath: string | undefined } {
|
||||
core.debug(`Trying to get uv from tool cache for ${version}...`);
|
||||
const cachedVersions = tc.findAllVersions(TOOL_CACHE_NAME, arch);
|
||||
core.debug(`Cached versions: ${cachedVersions}`);
|
||||
return tc.find(TOOL_CACHE_NAME, version, arch);
|
||||
let resolvedVersion = tc.evaluateVersions(cachedVersions, version);
|
||||
if (resolvedVersion === "") {
|
||||
resolvedVersion = version;
|
||||
}
|
||||
const installedPath = tc.find(TOOL_CACHE_NAME, resolvedVersion, arch);
|
||||
return { version: resolvedVersion, installedPath };
|
||||
}
|
||||
|
||||
export async function downloadVersion(
|
||||
@@ -20,10 +26,11 @@ export async function downloadVersion(
|
||||
arch: Architecture,
|
||||
version: string,
|
||||
checkSum: string | undefined,
|
||||
githubToken: string | undefined,
|
||||
): Promise<string> {
|
||||
githubToken: string,
|
||||
): Promise<{ version: string; cachedToolDir: string }> {
|
||||
const resolvedVersion = await resolveVersion(version, githubToken);
|
||||
const artifact = `uv-${arch}-${platform}`;
|
||||
let downloadUrl = `https://github.com/${OWNER}/${REPO}/releases/download/${version}/${artifact}`;
|
||||
let downloadUrl = `https://github.com/${OWNER}/${REPO}/releases/download/${resolvedVersion}/${artifact}`;
|
||||
if (platform === "pc-windows-msvc") {
|
||||
downloadUrl += ".zip";
|
||||
} else {
|
||||
@@ -36,7 +43,13 @@ export async function downloadVersion(
|
||||
undefined,
|
||||
githubToken,
|
||||
);
|
||||
await validateChecksum(checkSum, downloadPath, arch, platform, version);
|
||||
await validateChecksum(
|
||||
checkSum,
|
||||
downloadPath,
|
||||
arch,
|
||||
platform,
|
||||
resolvedVersion,
|
||||
);
|
||||
|
||||
let uvDir: string;
|
||||
if (platform === "pc-windows-msvc") {
|
||||
@@ -46,6 +59,37 @@ export async function downloadVersion(
|
||||
const extractedDir = await tc.extractTar(downloadPath);
|
||||
uvDir = path.join(extractedDir, artifact);
|
||||
}
|
||||
|
||||
return await tc.cacheDir(uvDir, TOOL_CACHE_NAME, version, arch);
|
||||
const cachedToolDir = await tc.cacheDir(
|
||||
uvDir,
|
||||
TOOL_CACHE_NAME,
|
||||
resolvedVersion,
|
||||
arch,
|
||||
);
|
||||
return { version: resolvedVersion, cachedToolDir };
|
||||
}
|
||||
|
||||
async function resolveVersion(
|
||||
version: string,
|
||||
githubToken: string,
|
||||
): Promise<string> {
|
||||
if (tc.isExplicitVersion(version)) {
|
||||
core.debug(`Version ${version} is an explicit version.`);
|
||||
return version;
|
||||
}
|
||||
const availableVersions = await getAvailableVersions(githubToken);
|
||||
const resolvedVersion = tc.evaluateVersions(availableVersions, version);
|
||||
if (resolvedVersion === "") {
|
||||
throw new Error(`No version found for ${version}`);
|
||||
}
|
||||
return resolvedVersion;
|
||||
}
|
||||
|
||||
async function getAvailableVersions(githubToken: string): Promise<string[]> {
|
||||
const octokit = github.getOctokit(githubToken);
|
||||
|
||||
const response = await octokit.paginate(octokit.rest.repos.listReleases, {
|
||||
owner: OWNER,
|
||||
repo: REPO,
|
||||
});
|
||||
return response.map((release) => release.tag_name);
|
||||
}
|
||||
|
||||
@@ -26,7 +26,8 @@ async function saveCache(): Promise<void> {
|
||||
if (!cacheKey) {
|
||||
core.warning("Error retrieving cache key from state.");
|
||||
return;
|
||||
} else if (matchedKey === cacheKey) {
|
||||
}
|
||||
if (matchedKey === cacheKey) {
|
||||
core.info(`Cache hit occurred on key ${cacheKey}, not saving cache.`);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import * as core from "@actions/core";
|
||||
import * as path from "path";
|
||||
import * as path from "node:path";
|
||||
import {
|
||||
downloadVersion,
|
||||
tryGetFromToolCache,
|
||||
@@ -8,16 +8,18 @@ import { restoreCache } from "./cache/restore-cache";
|
||||
|
||||
import { downloadLatest } from "./download/download-latest";
|
||||
import {
|
||||
Architecture,
|
||||
type Architecture,
|
||||
getArch,
|
||||
getPlatform,
|
||||
Platform,
|
||||
type Platform,
|
||||
} from "./utils/platforms";
|
||||
import {
|
||||
cacheLocalPath,
|
||||
checkSum,
|
||||
enableCache,
|
||||
githubToken,
|
||||
toolBinDir,
|
||||
toolDir,
|
||||
version,
|
||||
} from "./utils/inputs";
|
||||
|
||||
@@ -41,8 +43,10 @@ async function run(): Promise<void> {
|
||||
);
|
||||
|
||||
addUvToPath(setupResult.uvDir);
|
||||
core.setOutput("uv-version", version);
|
||||
core.info(`Successfully installed uv version ${version}`);
|
||||
addToolBinToPath();
|
||||
setToolDir();
|
||||
core.setOutput("uv-version", setupResult.version);
|
||||
core.info(`Successfully installed uv version ${setupResult.version}`);
|
||||
|
||||
addMatchers();
|
||||
setCacheDir(cacheLocalPath);
|
||||
@@ -50,10 +54,10 @@ async function run(): Promise<void> {
|
||||
if (enableCache) {
|
||||
await restoreCache(setupResult.version);
|
||||
}
|
||||
process.exit(0);
|
||||
} catch (err) {
|
||||
core.setFailed((err as Error).message);
|
||||
}
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
async function setupUv(
|
||||
@@ -61,29 +65,37 @@ async function setupUv(
|
||||
arch: Architecture,
|
||||
versionInput: string,
|
||||
checkSum: string | undefined,
|
||||
githubToken: string | undefined,
|
||||
githubToken: string,
|
||||
): Promise<{ uvDir: string; version: string }> {
|
||||
let installedPath: string | undefined;
|
||||
let cachedToolDir: string;
|
||||
let version: string;
|
||||
if (versionInput === "latest") {
|
||||
const result = await downloadLatest(platform, arch, checkSum, githubToken);
|
||||
version = result.version;
|
||||
cachedToolDir = result.cachedToolDir;
|
||||
const latestResult = await downloadLatest(
|
||||
platform,
|
||||
arch,
|
||||
checkSum,
|
||||
githubToken,
|
||||
);
|
||||
version = latestResult.version;
|
||||
cachedToolDir = latestResult.cachedToolDir;
|
||||
} else {
|
||||
version = versionInput;
|
||||
installedPath = tryGetFromToolCache(arch, versionInput);
|
||||
const toolCacheResult = tryGetFromToolCache(arch, versionInput);
|
||||
version = toolCacheResult.version;
|
||||
installedPath = toolCacheResult.installedPath;
|
||||
if (installedPath) {
|
||||
core.info(`Found uv in tool-cache for ${versionInput}`);
|
||||
return { uvDir: installedPath, version };
|
||||
}
|
||||
cachedToolDir = await downloadVersion(
|
||||
const versionResult = await downloadVersion(
|
||||
platform,
|
||||
arch,
|
||||
versionInput,
|
||||
checkSum,
|
||||
githubToken,
|
||||
);
|
||||
cachedToolDir = versionResult.cachedToolDir;
|
||||
version = versionResult.version;
|
||||
}
|
||||
|
||||
return { uvDir: cachedToolDir, version };
|
||||
@@ -94,6 +106,33 @@ function addUvToPath(cachedPath: string): void {
|
||||
core.info(`Added ${cachedPath} to the path`);
|
||||
}
|
||||
|
||||
function addToolBinToPath(): void {
|
||||
if (toolBinDir !== undefined) {
|
||||
core.exportVariable("UV_TOOL_BIN_DIR", toolBinDir);
|
||||
core.info(`Set UV_TOOL_BIN_DIR to ${toolBinDir}`);
|
||||
core.addPath(toolBinDir);
|
||||
core.info(`Added ${toolBinDir} to the path`);
|
||||
} else {
|
||||
if (process.env.XDG_BIN_HOME !== undefined) {
|
||||
core.addPath(process.env.XDG_BIN_HOME);
|
||||
core.info(`Added ${process.env.XDG_BIN_HOME} to the path`);
|
||||
} else if (process.env.XDG_DATA_HOME !== undefined) {
|
||||
core.addPath(`${process.env.XDG_DATA_HOME}/../bin`);
|
||||
core.info(`Added ${process.env.XDG_DATA_HOME}/../bin to the path`);
|
||||
} else {
|
||||
core.addPath(`${process.env.HOME}/.local/bin`);
|
||||
core.info(`Added ${process.env.HOME}/.local/bin to the path`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function setToolDir(): void {
|
||||
if (toolDir !== undefined) {
|
||||
core.exportVariable("UV_TOOL_DIR", toolDir);
|
||||
core.info(`Set UV_TOOL_DIR to ${toolDir}`);
|
||||
}
|
||||
}
|
||||
|
||||
function setCacheDir(cacheLocalPath: string): void {
|
||||
core.exportVariable("UV_CACHE_DIR", cacheLocalPath);
|
||||
core.info(`Set UV_CACHE_DIR to ${cacheLocalPath}`);
|
||||
|
||||
@@ -1,13 +1,47 @@
|
||||
import * as core from "@actions/core";
|
||||
import path from "path";
|
||||
import path from "node:path";
|
||||
|
||||
export const version = core.getInput("version");
|
||||
export const checkSum = core.getInput("checksum");
|
||||
export const enableCache = core.getInput("enable-cache") === "true";
|
||||
export const cacheSuffix = core.getInput("cache-suffix") || "";
|
||||
export const cacheLocalPath = getCacheLocalPath();
|
||||
export const githubToken = core.getInput("github-token");
|
||||
export const cacheDependencyGlob = core.getInput("cache-dependency-glob");
|
||||
export const toolBinDir = getToolBinDir();
|
||||
export const toolDir = getToolDir();
|
||||
export const githubToken = core.getInput("github-token");
|
||||
|
||||
function getToolBinDir(): string | undefined {
|
||||
const toolBinDirInput = core.getInput("tool-bin-dir");
|
||||
if (toolBinDirInput !== "") {
|
||||
return toolBinDirInput;
|
||||
}
|
||||
if (process.platform === "win32") {
|
||||
if (process.env.RUNNER_TEMP !== undefined) {
|
||||
return `${process.env.RUNNER_TEMP}${path.sep}uv-tool-bin-dir`;
|
||||
}
|
||||
throw Error(
|
||||
"Could not determine UV_TOOL_BIN_DIR. Please make sure RUNNER_TEMP is set or provide the tool-bin-dir input",
|
||||
);
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
|
||||
function getToolDir(): string | undefined {
|
||||
const toolDirInput = core.getInput("tool-dir");
|
||||
if (toolDirInput !== "") {
|
||||
return toolDirInput;
|
||||
}
|
||||
if (process.platform === "win32") {
|
||||
if (process.env.RUNNER_TEMP !== undefined) {
|
||||
return `${process.env.RUNNER_TEMP}${path.sep}uv-tool-dir`;
|
||||
}
|
||||
throw Error(
|
||||
"Could not determine UV_TOOL_DIR. Please make sure RUNNER_TEMP is set or provide the tool-dir input",
|
||||
);
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
|
||||
function getCacheLocalPath(): string {
|
||||
const cacheLocalPathInput = core.getInput("cache-local-path");
|
||||
@@ -17,8 +51,7 @@ function getCacheLocalPath(): string {
|
||||
if (process.env.RUNNER_TEMP !== undefined) {
|
||||
return `${process.env.RUNNER_TEMP}${path.sep}setup-uv-cache`;
|
||||
}
|
||||
if (process.platform === "win32") {
|
||||
return "D:\\a\\_temp\\setup-uv-cache";
|
||||
}
|
||||
return "/tmp/setup-uv-cache";
|
||||
throw Error(
|
||||
"Could not determine UV_CACHE_DIR. Please make sure RUNNER_TEMP is set or provide the cache-local-path input",
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user