mirror of
https://github.com/astral-sh/setup-uv.git
synced 2025-12-15 11:07:14 +00:00
Compare commits
20 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
023eb7875f | ||
|
|
315da29189 | ||
|
|
4cda7d7332 | ||
|
|
8114e5e81b | ||
|
|
7ee921e18a | ||
|
|
8c3a35e468 | ||
|
|
abac0ce7b0 | ||
|
|
03e245b158 | ||
|
|
aeb46491c7 | ||
|
|
dbb680fbd2 | ||
|
|
8de9ba90a2 | ||
|
|
118bd876d2 | ||
|
|
adcf5c892e | ||
|
|
0c326cbd51 | ||
|
|
8205eab75b | ||
|
|
ce0062aac7 | ||
|
|
8e09161b4b | ||
|
|
bf2778f5d6 | ||
|
|
223591d242 | ||
|
|
79fb68ebfe |
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:
|
||||
|
||||
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"
|
||||
|
||||
37
dist/save-cache/index.js
generated
vendored
37
dist/save-cache/index.js
generated
vendored
@@ -83008,7 +83008,7 @@ 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));
|
||||
exports.version = core.getInput("version");
|
||||
@@ -83016,8 +83016,36 @@ 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}${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}${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 !== "") {
|
||||
@@ -83026,10 +83054,7 @@ function getCacheLocalPath() {
|
||||
if (process.env.RUNNER_TEMP !== undefined) {
|
||||
return `${process.env.RUNNER_TEMP}${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");
|
||||
}
|
||||
|
||||
|
||||
|
||||
4364
dist/setup/index.js
generated
vendored
4364
dist/setup/index.js
generated
vendored
File diff suppressed because it is too large
Load Diff
66
package-lock.json
generated
66
package-lock.json
generated
@@ -19,12 +19,12 @@
|
||||
"@octokit/rest": "^21.0.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^22.5.5",
|
||||
"@types/node": "^22.7.3",
|
||||
"@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": "^8.57.1",
|
||||
"eslint-plugin-github": "^5.0.2",
|
||||
"eslint-plugin-import": "^2.30.0",
|
||||
"eslint-plugin-jest": "^28.8.3",
|
||||
@@ -1062,9 +1062,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@eslint/js": {
|
||||
"version": "8.57.0",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
|
||||
"integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
|
||||
"version": "8.57.1",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz",
|
||||
"integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
||||
@@ -1085,12 +1085,13 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@humanwhocodes/config-array": {
|
||||
"version": "0.11.14",
|
||||
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
|
||||
"integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
|
||||
"version": "0.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz",
|
||||
"integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==",
|
||||
"deprecated": "Use @eslint/config-array instead",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@humanwhocodes/object-schema": "^2.0.2",
|
||||
"@humanwhocodes/object-schema": "^2.0.3",
|
||||
"debug": "^4.3.1",
|
||||
"minimatch": "^3.0.5"
|
||||
},
|
||||
@@ -1115,6 +1116,7 @@
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
|
||||
"integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
|
||||
"deprecated": "Use @eslint/object-schema instead",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@istanbuljs/load-nyc-config": {
|
||||
@@ -2099,9 +2101,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "22.5.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.5.tgz",
|
||||
"integrity": "sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA==",
|
||||
"version": "22.7.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.3.tgz",
|
||||
"integrity": "sha512-qXKfhXXqGTyBskvWEzJZPUxSslAiLaB6JGP1ic/XTH9ctGgzdgYguuLP1C601aRTSDNlLb0jbKqXjZ48GNraSA==",
|
||||
"dependencies": {
|
||||
"undici-types": "~6.19.2"
|
||||
}
|
||||
@@ -3621,16 +3623,16 @@
|
||||
}
|
||||
},
|
||||
"node_modules/eslint": {
|
||||
"version": "8.57.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
|
||||
"integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
|
||||
"version": "8.57.1",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz",
|
||||
"integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@eslint-community/eslint-utils": "^4.2.0",
|
||||
"@eslint-community/regexpp": "^4.6.1",
|
||||
"@eslint/eslintrc": "^2.1.4",
|
||||
"@eslint/js": "8.57.0",
|
||||
"@humanwhocodes/config-array": "^0.11.14",
|
||||
"@eslint/js": "8.57.1",
|
||||
"@humanwhocodes/config-array": "^0.13.0",
|
||||
"@humanwhocodes/module-importer": "^1.0.1",
|
||||
"@nodelib/fs.walk": "^1.2.8",
|
||||
"@ungap/structured-clone": "^1.2.0",
|
||||
@@ -8943,9 +8945,9 @@
|
||||
}
|
||||
},
|
||||
"@eslint/js": {
|
||||
"version": "8.57.0",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
|
||||
"integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
|
||||
"version": "8.57.1",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz",
|
||||
"integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==",
|
||||
"dev": true
|
||||
},
|
||||
"@fastify/busboy": {
|
||||
@@ -8960,12 +8962,12 @@
|
||||
"dev": true
|
||||
},
|
||||
"@humanwhocodes/config-array": {
|
||||
"version": "0.11.14",
|
||||
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
|
||||
"integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
|
||||
"version": "0.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz",
|
||||
"integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@humanwhocodes/object-schema": "^2.0.2",
|
||||
"@humanwhocodes/object-schema": "^2.0.3",
|
||||
"debug": "^4.3.1",
|
||||
"minimatch": "^3.0.5"
|
||||
}
|
||||
@@ -9785,9 +9787,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "22.5.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.5.tgz",
|
||||
"integrity": "sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA==",
|
||||
"version": "22.7.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.3.tgz",
|
||||
"integrity": "sha512-qXKfhXXqGTyBskvWEzJZPUxSslAiLaB6JGP1ic/XTH9ctGgzdgYguuLP1C601aRTSDNlLb0jbKqXjZ48GNraSA==",
|
||||
"requires": {
|
||||
"undici-types": "~6.19.2"
|
||||
}
|
||||
@@ -10856,16 +10858,16 @@
|
||||
"dev": true
|
||||
},
|
||||
"eslint": {
|
||||
"version": "8.57.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
|
||||
"integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
|
||||
"version": "8.57.1",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz",
|
||||
"integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@eslint-community/eslint-utils": "^4.2.0",
|
||||
"@eslint-community/regexpp": "^4.6.1",
|
||||
"@eslint/eslintrc": "^2.1.4",
|
||||
"@eslint/js": "8.57.0",
|
||||
"@humanwhocodes/config-array": "^0.11.14",
|
||||
"@eslint/js": "8.57.1",
|
||||
"@humanwhocodes/config-array": "^0.13.0",
|
||||
"@humanwhocodes/module-importer": "^1.0.1",
|
||||
"@nodelib/fs.walk": "^1.2.8",
|
||||
"@ungap/structured-clone": "^1.2.0",
|
||||
|
||||
@@ -38,12 +38,12 @@
|
||||
"@octokit/rest": "^21.0.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^22.5.5",
|
||||
"@types/node": "^22.7.3",
|
||||
"@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": "^8.57.1",
|
||||
"eslint-plugin-github": "^5.0.2",
|
||||
"eslint-plugin-import": "^2.30.0",
|
||||
"eslint-plugin-jest": "^28.8.3",
|
||||
|
||||
@@ -12,7 +12,7 @@ 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 {
|
||||
@@ -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,257 @@
|
||||
// AUTOGENERATED_DO_NOT_EDIT
|
||||
export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"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":
|
||||
|
||||
@@ -4,15 +4,21 @@ import * as path from "path";
|
||||
import { OWNER, REPO, TOOL_CACHE_NAME } from "../utils/constants";
|
||||
import { 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);
|
||||
}
|
||||
|
||||
@@ -18,6 +18,8 @@ import {
|
||||
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}`);
|
||||
|
||||
@@ -6,8 +6,42 @@ 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